DE3751426T2 - Busschnittstellenschaltung für digitalen Datenprozessor. - Google Patents

Busschnittstellenschaltung für digitalen Datenprozessor.

Info

Publication number
DE3751426T2
DE3751426T2 DE3751426T DE3751426T DE3751426T2 DE 3751426 T2 DE3751426 T2 DE 3751426T2 DE 3751426 T DE3751426 T DE 3751426T DE 3751426 T DE3751426 T DE 3751426T DE 3751426 T2 DE3751426 T2 DE 3751426T2
Authority
DE
Germany
Prior art keywords
memory
address
data
bus
signal
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 - Lifetime
Application number
DE3751426T
Other languages
English (en)
Other versions
DE3751426D1 (de
Inventor
Anil K Jain
Paul I Rubinfeld
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 DE3751426D1 publication Critical patent/DE3751426D1/de
Application granted granted Critical
Publication of DE3751426T2 publication Critical patent/DE3751426T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)
  • Microcomputers (AREA)
  • Non-Insulated Conductors (AREA)
  • Communication Cables (AREA)

Description

    1. Gebiet der Erfindung
  • Die Erfindung betrifft allgemein das Gebiet digitaler Datenverarbeitungssysteme.
  • 2. Beschreibung des Standes der Technik
  • Ein typisches digitales Datenverarbeitungssystem enthält drei Grundelemente, nämlich ein Prozessorelement, ein Speicherelement und ein Eingabe-/Ausgabeelement. 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 veranlaßt, daß Informationen vom Speicherelement zu ihm übertragen oder geholt werden und er die ankommenden Informationen entweder als Befehle oder Daten interpretiert und die Daten nach Maßgabe der Befehle verarbeitet. Die Ergebnisse werden dann in adressierten Stellen im Speicherelement gespeichert.
  • Das Eingabe-/Ausgabeelement kommuniziert auch mit dem Speicherelement, um Informationen in das System zu übertragen und die verarbeiteten Daten daraus zu erhalten. Einheiten, die das Eingabe-/Ausgabeelement aufweisen, arbeiten normalerweise in Übereinstimmung mit Steuerinformationen, die ihnen durch das Prozessorelement zugeführt werden. Die Steuerinformationen definieren jeweils die durch die Eingabe-/Ausgabeeinheit durchzuführende Operation. Wenigstens eine Klasse der durch eine Eingabe-/Ausgabeeinheit durchgeführten Operationen ist die Übertragung von Anwenderinformationen, d.h. von durch ein Anwenderprogramm verwendeten Informationen, zwischen der Eingabe-/Ausgabeeinheit und dem Speicherelement. Typische das Eingabe-/Ausgabeelement aufweisende Einheiten sind beispielsweise Drucker, Fernschreiber und Datensichtgeräte und können auch sekundäre Informations-Speichervorrichtungen wie beispielsweise Diskeuen- oder Band- Speichereinheiten sein.
  • Zusätzlich zum Arbeiten als Eingabe-/Ausgabevorrichtungen können Disketten- Speichereinheiten, und manchmal Band-Speichereinheiten, auch als Teil des Speicherelements arbeiten. Insbesondere enthält ein Speicherelement typischerweise einen Hauptspeicher, auf dessen Inhalte der Prozessor relativ schnell zugreifen kann, der aber im allgemeinen ein relativ teurer Speicher ist. Moderne Hauptspeicher sind typischerweise unter Verwendung der MOS- oder Bipolar- Halbleitertechnologie implementiert und können Speicherplatz in der Größenordnung eines Bruchteils eines Megabytes bis zu mehreren zehn Megabytes zur Verfügung stellen.
  • Ein bedeutenderer Engpaß beim Verarbeiten von Daten durch einen Prozessor besteht bei der Übertragung der Befehle und zu verarbeitender Daten zum Prozessor und der Übertragung der verarbeiteten Daten zu anderen Teilen im System. Übertragungen zwischen dem Prozessor und dem Speicherelement sind typischerweise Daten- und Befehlsübertragungen, und Übertragungen zwischen dem Prozessor und einem Eingabe-/Ausgabeelement sind typischerweise SteuerinformationsÜbertragungen zum Steuern der Operation des Eingabe-/Ausgabeelements, obwohl der Prozessor bei einigen Typen von Eingabe-/Ausgabeeinheiten auch Daten übertragen kann. Ein Prozessor in einem digitalen Datenverarbeitungssystem enthält eine Schnittstellenschaltung zur Übertragung von Informationen zwischen diesen Einheiten.
  • Ein Prozessor weist typischerweise mehrere funktionelle Teile aufweist, wie einen Cache-Speicher zum Speichern sofort gebrauchter Daten und/oder Befehle, Datenpfadschaltungen zum Durchführen primitiver Arithmetik- und Logikoperationen zum Verarbeiten der Befehle und Steuerschaltungen zum Interpretieren der Befehle, um zu ermöglichen, daß die Operanden oder zu verarbeitende Daten erhalten werden, um zu ermöglichen, daß der Datenpfad eine Reihe von Operationen durchführt, um zu ermöglichen, daß die durch einen Befehl identifizierte Operation durchgeführt wird, und um zu ermöglichen, daß die verarbeiteten Daten gespeichert werden. Die Übertragung von Informationen zwischen den verschiedenen internen funktionellen Teilen des Prozessors ist ziemlich kompliziert, und zwar insbesondere dann, wenn der Prozessor einen Cache-Speicher enthält und eine virtuelle Verarbeitung unterstützt und daher eine Umsetzung einer virtuellen in eine physikalische Adresse bieten muß.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung schafft einen neuen Prozessor zur Verwendung in einem digitalen Datenverarbeitungssystem.
  • Kurz zusammengefaßt enthält ein Prozessor zur Verwendung in einem digitalen Datenverarbeitungssystem eine Bus-Schnittstellenschaltung zum Übertragen von Daten zu und von anderen Einheiten im System und zum Steuern der Übertragung von Informationen im Prozessor über einen internen Bus. Die Bus- Schnittstellenschaltung enthält zwei Zustandsmaschinen, von denen eine zum Steuern der internen Übertragungen von Informationen und die andere zum Steuern der externen Übertragungen von Informationen dient. Die Zustandsmaschinen kommunizieren über Flags, die anzeigen, wann externe Operationen anhängig sind. Eine Vielzahl von (Zwischen-)Speichern ist zum Empfangen von Schreibdaten, einer Schreibadresse und einer Leseadresse von anderen Teilen des Prozessors vorgesehen, und ein Eingabe-(Zwischen-)Speicher empfängt Signale von anderen Einheiten im System, wodurch zugelassen wird, daß sowohl eine Schreiboperation als auch eine Leseoperation zur gleichen Zeit initiiert wird. Der Prozessor führt seine Operation fort, bis eine andere Operation benötigt wird.
  • Die Erfindung betrifft eine Bus-Schnittstellenschaltung, wie sie in den beigefügten Ansprüchen gezeigt ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese Erfindung ist ausführlich in den beigefügten Ansprüchen dargestellt. Die obigen und weitere Vorteile dieser Erfindung können durch Bezugnahme auf die folgende Beschreibung in Zusammenhang mit den beigefügten Zeichnungen besser verstanden werden, wobei:
  • Fig. 1A ein allgemeines Blockdiagramm eines digitalen Datenverarbeitungssystems ist, das die Erfindung enthält, und
  • Fig. 1B ein organisatorisches Blockdiagramm eines in dem in Fig. 1A gezeigten System verwendeten Prozessors ist;
  • Fig. 2 mit Fig. 2A bis Fig. 2D ein Zeitdiagramm ist, das zum Verstehen der Erfindung nützlich ist; und
  • Fig. 3 ein detailliertes Blockdiagramm eines Teils des in Fig. 1B gezeigten Prozessors ist, das insbesondere die Schaltungen zum Steuern von Übertragungen zu und von anderen Teilen des Systems betrifft.
  • DETAILLIERTE BESCHREIBUNG EINES VERANSCHAULICHENDEN AUSFÜHRUNGSBEISPIELS Allgemeine Beschreibung
  • In Fig. 1 enthält ein die Erfindung enthaltendes Datenverarbeitungssystem als Grundelemente eine zentrale Prozessoreinheit (CPU) 10, einen Speicher 11 und ein oder mehrere Eingabe-/Ausgabe-Untersysteme 12 (in Fig. 1 ist ein einziges Eingabe-/Ausgabe-Untersystem gezeigt). Ein Bus 13 verbindet die CPU 10, den Speicher 11 und die Eingabe-/Ausgabe-Untersysteme 12 in Parallelschaltung.Die CPU 10 führt Befehle aus, die in adressierbaren Speicherstellen in dem Speicher 11 gespeichert sind. Die Befehle identifizieren Operationen, die an Operanden durchzuführen sind, die auch in adressierbaren Stellen in der Speichereinheit gespeichert sind. Die Befehle und Operanden werden durch die CPU 10 geholt, wenn sie benötigt werden, und verarbeitete Daten werden zur Speicherung im Speicher 11 zurückgebracht. Die CPU 10 überträgt auch Steuerinformationen zu den Eingabe-/Ausgabe- Untersystemen 12, was diesen ermöglicht, ausgewählte Operationen durchzuführen, wie beispielsweise ein Übertragen von Daten oder ein Wiedergewinnen von Daten aus dem Speicher 11. Solche Daten können Befehle oder Operanden enthalten, die zum Speicher 11 übertragen werden können, oder verarbeitete Daten, die zur Speicherung oder Anzeige aus dem Speicher 11 wiedergewonnen werden.
  • Eine Bedienerkonsole 14 dient als Bediener-Schnittstelle. Sie läßt zu, daß der Bediener Daten untersucht und ablegt, die Operation der CPU 10 anhält oder die CPU 10 eine Folge von Befehlen durchlaufen läßt und die Antworten der CPU 10 in Antwort darauf bestimmt. Sie ermöglicht einem Bediener auch, das System durch eine Hochfahrprozedur zu initialisieren und verschiedene Diagnosetests an dem gesamten Datenverarbeitungssystem durchzuführen.
  • Das Datenverarbeitungssystem kann mehrere Typen von Eingabe-/Ausgabeeinheiten 20 enthalten, einschließlich sekundärer Speichereinheiten vom Disketten- und Bandtyp, Zeilendruckern, Telefon- und Computer- Netzwerkeinheiten und ähnlichem. Alle diese Einheiten kommunizieren mit dem Bus 13 über einen Vorrichtungsbus 21 durch eine oder mehrere Steuereinheiten 22. Eine Steuereinheit 22, der Vorrichtungsbus 21, an den die angeschlossen ist, und die mit der Steuereinheit kommunizierenden Eingabe-/Ausgabeeinheiten 20 definieren ein Eingabe-/Ausgabe-Untersystem 12.
  • Der Speicher 11 enthält eine Speichersteuereinheit 15, die direkt an den Bus 13 und an eine Vielzahl von (Speicher-)Feldern 17 angeschlossen ist. Die Felder 17 enthalten eine Vielzahl adressierbarer Speicherstellen, in denen Informationen gespeichert sind. Die Speichersteuereinheit 15 empfängt Übertragungsanfragen von der CPU 10 oder von einem Eingabe-/Ausgabe-Untersystem 12 über den Bus 13. Mehrere Typen von Übertragungsanfragen können über den Bus 13 übertragen werden, die in zwei allgemeine Kategorien fallen. In einer Kategorie werden Informationen in eine Speicherstelle geschrieben oder gespeichert, und in der anderen Kategorie werden Informationen aus einer Speicherzelle wiedergewonnen oder gelesen.
  • Das in Fig. 1 gezeigte System enthält auch einen Schreibpuffer 23, der an den Bus 13 und die Speichersteuereinheit 15 angeschlossen ist und SchreibÜbertragungsanfragen abfängt, die von der CPU 10 zum Speicher 11 gerichtet sind. In jenem System antwortet die Speichersteuereinheit 15 nicht auf über den Bus 13 durch entweder die CPU 10 oder die Eingabe-/Ausgabesteuereinheit 22 übertragene Schreibanfragen. Insbesondere puffert der Schreibpuffer 11 die Schreibinformationen mit sowohl den zu schreibenden Daten als auch den zugehörigen Adressen, die die Stellen in den Feldern 17 identifizieren, in die die Daten zu speichern sind. Wenn die Speichersteuereinheit eine Schreiboperation annehmen kann, sendet der Schreibpuffer die Adresse und die zugehörigen Daten über einen privaten Bus 24 zur Speichersteuereinheit 15, die fortfährt, den Feldern 17 zu ermöglichen, die Daten in der durch die Adresse identifizierte Stelle zu speichern. Somit kann, wenn die Senderate von Schreibdaten durch die CPU 10 über den Bus 13 zu groß dafür wird, daß der Speicher 11 sie annehmen kann, der Schreibpuffer 23 die Anfragen puffern, bis der Speicher 11 sie annehmen kann. Die Speichersteuereinheit 15 ist auch direkt an den Bus 13 angeschlossen, um auf Leseanfragen von der CPU 10 oder der Eingabe-/Ausgabesteuereinheit 22 zu antworten und Lesedaten dorthin zurückzubringen.
  • Es wird von Fachleuten angenommen, daß ein Schreibpuffer 23 in einem Einzelprozessorsystem, wie es in Fig. 1 gezeigt ist, vorteilhaft verwendet werden kann, aber er wird am vorteilhaftesten in einem Mehrprozessorsystem (nicht gezeigt) verwendet. In einem Mehrprozessorsystem empfängt der Speicher 11 Lese- und Schreibanfragen von einer Anzahl von CPUs und zugehörigen Eingabe-/Ausgabe- Untersystemen 12. Zum Vermeiden einer Verzögerung der Verarbeitung durch eine CPU 10, die darauf wartet, eine Schreiboperation durchzuführen, nimmt der Schreibpuffer 23 die Schreibadresse und die Schreibdaten auf, und die CPU 10 kann die Verarbeitung wiederaufnehmen.
  • Der Schreibpuffer enthält weiterhin Schaltungen zum Überwachen von Leseanfragen über den Bus 13 von der CPU 10. Wenn der Schreibpuffer 23 bestimmt, daß eine Leseanfrage über den Bus 13 übertragen worden ist, die Daten identifiziert, die er gerade puffert und die er noch nicht zum Speicher 11 übertragen hat, hält er über seinen privaten Bus 24 die Speichersteuereinheit vom Antworten auf die Anfrage ab. Staft dessen sendet der Schreibpuffer 23 die angefragten Daten über den Bus 13, um die Leseoperation zu beenden.
  • Das in Fig. 1 gezeigte System enthält auch eine System-Steuerungsschaltung 25, die unter Steuerung der CPU 10 Zuteilungsoperationen durchführt, um dadurch einen Zugriff der verschiedenen Eingabe-/Ausgabe-Untersysteme 12 auf den Bus 13 zu regeln, wenn im System mehr als einer vorhanden ist.
  • Die CPU 10 enthält einen Prozessor 30 und einen optionalen Gleitkomma- Prozessor 31. Typischerweise ist der Gleitkomma-Prozessor eine Option und muß nicht in einem digitalen Datenverarbeitungssystem oder der CPU 10 vorhanden sein, das bzw. die gemäß der Erfindung aufgebaut ist. Der Gleitkomma-Prozessor enthält Schaltungen, die zum Verarbeiten von Befehlen bezüglich ausgewählter Datentypen optimiert sind, nämlich Daten im Gleitkomma-Format. Typischerweise kann der Prozessor 30 diese Daten auch verarbeiten, aber er benötigt mehr Zeit zum Durchführen der Verarbeitung.
  • Ein detailliertes funktionales Blockdiagramm eines in dem System verwendeten Prozessors 30 ist in Fig. 1B gezeigt. In Fig. 1B enthält der Prozessor 30 eine Bus- Schnittstellenschaltung 33, die verschiedene Steuerleitungen des Busses 13 (die gemeinsam mit dem Bezugszeichen 13A bezeichnet sind) verbindet und Signale über die verschiedenen Leitungen des Busses sendet und empfängt, wie es nachfolgend beschrieben ist. Die Bus-Schnittstellenschaltung ist auch angeschlossen an einem internen IDAL-Bus 34 der Signale zu und von einem Cache 35 überträgt, an einen Datenpfad 36, an eine Speicherverwaltungseinheit 37 und an eine Prozessor- Steuerschaltung 40. Nachfolgend wird eine Bus-Schnittstellenschaltung 33 für ein Ausführungsbeispiel des Prozessors 30 in Verbindung mit Fig. 3 beschrieben.
  • Auch eine Anzahl von Registern ist an den internen IDAL-Bus 34 angeschlossen und überträgt unter Steuerung der Bus-Schnittstellenschaltung 33 Daten zwischen dem internen IDAL-Bus 34 und Leitungen DAL 50 des Busses 13. Genauer gesagt empfangen ein Schreibdatenregister 250 und ein Schreibadressenregister 251 unter Steuerung der Bus-Schnittstelleneinheit 33 jeweils Schreibdaten und die Adresse der Stelle im Speicher 11 oder in den Eingabe-/Ausgabeeinheiten 12, bei der die Schreibdaten zu speichern sind. Wie es unten beschrieben ist, ermöglicht die Bus- Schnittstelleneinheit 33 zu geeigneten Zeiten, daß die Inhalte dieser Register durch einen Multiplexer 253 auf die Leitungen DAL 50 gesendet werden, um eine Schreiboperation durchzuführen. Gleichermaßen empfängt ein Lesead ressenregister 252 unter Steuerung der Bus-Schniftstelleneinheit 33 eine Adresse einer Stelle, die zu lesende Daten enthält. Zu einer geeigneten Zeit ermöglicht die Bus- Schnittstelleneinheit 33, daß die Inhalte des Leseadressenregisters 252 durch den Multiplexer 253 auf die Leitungen DAL 50 gekoppelt werden, um eine Leseoperation durchzuführen. Die Lesedaten werden in einem Eingangsregister 254 (zwischen-)gespeichert, was auch unter Steuerung der Bus-Schnittstelleneinheit 33 erfolgt. Die Bus-Schnittstellenschaltung 33 kann ermöglichen, daß die Inhalte des Eingangsregisters 254 als empfangene Datensignale RCV DAT an den internen IDAL-Bus 34 gekoppelt werden.
  • Die Prozessor-Steuerschaltung 40 decodiert Programmbefehle, die vom Speicher 11 wiedergewonnen werden, und ermöglicht in aufeinanderfolgenden Verarbeitungszyklen, daß der Datenpfad 36 die Arithmetik- und Logik-Operationen durchführt, die zum Ausführen des Befehls erforderlich sind. Der Datenpfad 36 enthält eine Gruppe von Registern 255 zum Speichern von zu verarbeitenden Daten und Arithmetik- und Logik-Schaltungen 256 zum Durchführen der Verarbeitung.
  • Ein Ausführungsbeispiel des Prozessors 30 verwendet virtuelle Adressen und sieht Schaltungen 37 zum Umsetzen virtueller Adressen vor, die virtuelle in physikalische Adressen umsetzen. Die Schaltungen zum Umsetzen virtueller Adressen enthalten eine Gruppe von Quellenregistern 257, die die virtuellen Adressen von anderen Schaltungen im Prozessor 30, von denen der Datenpfad 36 am wichtigsten ist, empfangen, und einen Umsetzungspuffer 260, der Umsetzungsinformationen enthält. Umsetzungen werden dann, wenn sie nötig sind, unter Steuerung der Prozessor-Steuerschaltung 40 durchgeführt. Physikalische Adressen werden von den Umsetzungsschaltungen 37 durch einen Multiplexer 261 auf den internen IDAL-Bus 34 gekoppelt. Der Datenpfad 36 kann auch physikalische Adressen enthalten und stellt einen zweiten Quelleneingang für den Multiplexer 261 zur Verfügung. Die Prozessor-Steuerschaltung 40 steuert den Multiplexer 261.
  • Ein Cachespeicher 35 ist eine herkömmliche Informations-Speicherschaltung in einer CPU 10. Cachespeicher sind in K. Hwang und F. Briggs, Computer Architecture and Parallel Processing (McGraw-Hill, 1984), Abschnitt 2.4, S. 98 ff. und V. Hamacher, Computer Organization (McGraw-Hill, 1984), Abschnitt 8.6, S. 306 ff. beschrieben. Der Cachespeicher 35 enthält einen Datenspeicherbereich 38 mit einer Vielzahl von Speicherstellen. Der Datenspeicherbereich 38 ist in Blöcke aufgeteilt, wobei jeder Block zwei Speicherstellen enthält. Jede Speicherstelle speichert ein Informationswort, d.h. die Menge an Informationen, die gleichzeitig über den Bus 13 übertragen werden können. Bei einem spezifischen Ausführungsbeispiel entspricht ein Informationswort vier Informations-Bytes oder zweiunddreißig binären Informations-Ziffern. Somit kann jeder Block acht Informations-Bytes speichern.
  • Der Cache-Speicher 35 enthält Treffer-/Nichftreffer-Logikschaltungen 262, die bestimmen, wann eine durch die Schaltungen zur Umsetzung virtueller Adressen erzeugte physikalische Adresse einer Adresse im Cache-Speicher 35 entspricht. Der niederwertige Teil der virtuellen Adresse von den Quellenregistern 257, beim Ausführungsbeispiel die Signale VA SRCE (8:3), ist über einen Multiplexer 264 gekoppelt, um einen Block im Datenspeicherbereich und den zugehörigen Eintrag von (Etiketten-)Kennzeichen 41 auszuwählen. Die Treffer-/Nichttreffer-Logikschaltungen 262 bestimmen dann, ob die Inhalte des zugehörigen Eintrags der Kennzeichen 41 der umgesetzten physikalischen Adresse entspricht. Wenn es eine solche Entsprechung gibt, erzeugt die Treffer-/Nichttreffer-Logik ein aktiviertes Treffersignal HIT, das zur Bus-Schnittstelleneinheit 33 gesendet wird. Wenn die Bus- Schnittstelleneinheit 33 kein aktiviertes Treffersignal HIT empfängt ermöglicht sie auf herkömmliche Weise eine Operation über den Bus 13, um die Inhalte der adressierten Stelle wiederzugewinnen. Wenn das Treffersignal HIT aktiviert ist, ermöglicht die Bus-Schnittstelleneinheit 33 die Operation nicht über den Bus 13, sondern läßt statt dessen zu, daß Daten vom Cache-Datenspeicherbereich 38 über einen Multiplexer 263 über den internen IDAL-Bus 34 gesendet werden. Allgemein werden solche Daten zum Datenpfad 36 gesendet.
  • Wie es von Fachleuten auf dem Gebiet angenommen wird, sind die in einem Block im Cache-Speicher 35 gespeicherten Informationen, wenn sie von der Speichereinheit 11 empfangen werden, eine Kopie der in der Speichereinheit 11 gespeicherten Informationen. Jeder Block im Cache-Speicher 35 hat ein zugehöriges Kennzeichen 41, dessen Inhalte durch die Bus-Schnittstellenschaltung 36 gebildet sind, um die Stellen in der Speichereinheit 11 zu identifizieren, aus der die Informationen kopiert wurden. Zusätzlich enthält jeder Block ein altes Flag 42, das durch die Bus- Schnittstellenschaltung rückgesetzt oder gelöscht wird, um anzuzeigen, ob die Inhalte des Blocks tatsächlich Kopien der durch das Kennzeichen identifizierten Stellen sind oder nicht, d.h. ob die Inhalte des Blocks alt sind oder nicht.
  • Bei einem Ausführungsbeispiel des Cache-Speichers 35 sind der Datenspeicherbereich 38, die Kennzeichen 41 und die Flags 42 dynamische Speicher. Ein Auffrisch- Zähler 262 erzeugt unter Steuerung der Bus-Schnittstelleneinheit 33 Auffrisch- Adressen, die durch den Multiplexer 264 gekoppelt werden, um die dynamischen Speicher aufzufrischen.
  • Ein Befehl kann einen oder mehrere Operanden-Spezifizierer enthalten, die die Stelle des Operanden in den Registern im Datenpfad 36 identifizieren, oder die eine Adresse identifizieren, die die Stelle des Operanden in dem virtuellen Adressenraum identifiziert. Hierzu siehe beispielsweise das US-Patent 4,236,206 mit dem Titel "Central Processor Unit For Executing Instructions Of Variable Length", das von W.D. Strecker, et al. am 25. November 1980 eingereicht wurde. Die Prozessor- Steuerschaltung 40 decodiert in Verbindung mit dem Datenpfad jeden Operanden- Spezifizierer, um die Stellen der Operanden zu identifizieren, und fährt dann damit fort, sie von den identifizierten Stellen zu erhalten. Ein Operanden-Spezifizierer kann selbst den Operanden enthalten (d.h. der Operanden-Spezifizierer kann eine "Literalkonstante" sein), und der Operanden-Spezifizierer kann eines der Datenpfad- Register (nicht gezeigt) als den Operanden enthaltend identifizieren.
  • Alternativ dazu kann der Operand in einer Stelle in dem virtuellen Speicherraum des Programms sein, und der Operanden-Spezifizierer kann anzeigen, wie man jene Stelle bestimmt. Wenn der Operand im virtuellen Speicherraum ist, ermöglicht die Steuerschaltung 40 der Speicher-Verwaltungsschaltung 37, die virtuelle Adresse in die physikalische Adresse umzusetzen. Nachdem die physikalische Adresse des Operanden erhalten worden ist, erhält die Bus-Schnittsteile 33 den Operanden. Sie bestimmt zuerst, ob der Operand im Cache-Speicher 35 ist. Wenn der Operand im Cache-Speicher ist, sendet die Bus-Schnittstelle den Operanden zum Datenpfad 36. Wenn der Operand andererseits nicht in dem Cache-Speicher 35 ist, sendet die Bus-Schnittstellenschaltung 33 eine Leseanfrage über den Bus 13 zum Speicher 11, um den Operanden wiederzugewinnen. Nachdem alle Operanden erhalten worden sind, kann der Datenpfad 36 die durch den Befehl geforderte Operation durchführen.
  • Der Operanden-Spezifizierer kann auch die Stelle identifizieren, in die verarbeitete Daten zu speichern sind. Die Steuerschaltung 40 und die Speicher- Verwaltungsschaltung 37 werden zum Bestimmen der physikalischen Adresse auf dieselbe Weise verwendet, wie es oben beschrieben ist. Wenn die verarbeiteten Daten im Speicher 11 zu speichern sind, führt die Bus-Schnittstelle 33 die geforderte Schreiboperation über den Bus 13 durch. Zusätzlich ermöglicht die Bus- Schnittstelle 33, wenn die physikalische Adresse einem geeigneten Kennzeichen im Cache 35 entspricht, daß die Daten im Cache 35 gespeichert werden.
  • Die Bus-Schnittstelleneinheit 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 Bus- Schnittstelleneinheit steuert auch eine FPP-Logikschaltung 272, die in Folge Datenübertragungen zum und vom Gleitkomma-Prozessor 31 steuert. Die Bus- Schnittstelleneinheit 33 wird nachfolgend in Verbindung mit Fig. 3 detaillierter beschrieben.
  • Operationen über den Bus 13
  • Der Bus 13 enthält eine Anzahl von Leitungen zum Übertragen von Informationen darstellenden Signalen zwischen den verschiedenen an ihn angeschlossenen Einheiten. Insbesondere enthält der Bus 13 Daten-/Adressenleitungen DAL (31:0) 50, die Datensignale DAT und Adressensignale ADRS führen. Wenn die CPU 10, insbesondere der Prozessor 30, eine Übertragung beginnt, die ihn für die Übertragung zum Bus-Master macht, sendet der Prozessor 30 zuerst die Adressensignale ADRS über die Daten-/Adressenleitungen DAL-(31:0) 50 und sendet gleichzeitig Übertragungstyp-Befehlssignale TR TYPE (2:0), die anzeigen, ob die Übertragungsoperation eine Lese- oder eine Schreiboperation ist, auf Leitungen 52 Nach einer kurzen Zeitspanne, die lang genug ist, um ein Einstellen der Adressensignale ADRS und der Übertragungstyp-Befehlssignale TR TYPE (2:0) zuzulassen, aktiviert der Prozessor 30 dann ein Adressen-Hinweissignal ADRS STR auf einer Leitung 51.
  • Wenn das Adressen-Hinweissignal ADRS STR aktiviert ist, empfangen und decodieren alle anderen an den Bus 13 angeschlossenen Einheiten die Adressensignale ADRS und Übertragungstyp-Befehlssignale TR TYPE (2:0), wobei die Einheit die durch die Adressensignale ADRS identifizierte Stelle enthält, die die antwortende Einheit oder der "Slave" bzw. die untergeordnete Einheit für die Übertragung ist. Wenn die Übertragungsoperation eine Schreiboperation ist und die Adressensignale ADRS eine Stelle im Speicher 11 identifizieren, ist der Schreibpuffer 23 die "Slave"- Einheit. Eine ausgewählte Zeit nachdem der Prozessor das Adressen-Hinweissignal ADRS STR aktiviert hat, entfernt er die Adressensignale ADRS und Übertragungstyp-Befehlssignale TR TYPE (2:0) von den jeweiligen Leitungen.
  • Wenn die gesendeten Übertragungstyp-Befehlssignale TR TYPE (2:0) eine Schreiboperation definieren, sendet die "Master"-Einheit dann Datensignale über die Leitungen 50 und aktiviert dann ein Daten-Hinweissignal DATA STR auf einer Leitung 53. Die "Slave"-Einheit empfängt und speichert dann die gesendeten Daten. Wenn die Daten gespeichert sind, aktiviert die adressierte Einheit dann ein Fertigsignal RDY auf einer Leitung 54, wenn die Operation ohne Fehler beendet wurde, oder ein Fehlersignal ERR auf einer Leitung 55, wenn während der Speicheroperation ein Fehler auftrat.
  • Wenn andererseits die gesendeten Übertragungstyp-Befehlssignale TR TYPE (2:0) eine Leseoperation definieren, holt die "Slave"-Einheit die Daten wieder aus der durch die Adressensignale identifizierten Stelle hervor, sendet sie über die Daten-/Adressenleitungen DAL (31:0) 50 und sendet ein aktiviertes Fertigsignal RDY über die Leitung 54. In Antwort darauf empfängt der Prozessor 30 die Daten und sendet ein aktiviertes Daten-Hinweissignal DATA STR über die Leitung 53.
  • Nachdem die "Slave"-Einheit das Fertigsignal RDY oder das Fehlersignal ERR aktiviert hat, negiert der Prozessor 30 dann, wenn während der Übertragung ein Fehler auftrat, das Daten-Hinweissignal DATA STR in entweder einer Lese- oder einer Schreiboperation. Die "Slave"-Einheit negiert dann das Fertigsignal RDY oder das Fehlersignal ERR, und dann negiert der Prozessor 30 das Adressen-Hinweissignal ADRS STR, um die Übertragung zu beenden.
  • An den Bus 13 angeschlossene Einheiten, die andere als der Prozessor 30 sind, können Bus-"masters" bzw. Bus-Haupteinheiten bilden und darüber Übertragungen zum und vom Speicher 11 beginnen. Das Eingabe-/Ausgabe-Untersystem 12, und insbesondere ihre Eingabe-/Ausgabe-Steuereinheit 22, kann Bus-"Master" werden. Um Bus-"Master" zu werden, aktiviert die Eingabe-/Ausgabe-Steuereinheit 22 ein Direktspeicherungs-Anfragesignal DMR über eine Leitung 56. Der Prozessor 30 aktiviert dann ein Direktspeicherungs-Zuteilungssignal DMG auf einer Leitung 57, das durch die Eingabe-/Ausgabe-Steuereinheit 22 empfangen wird. An dieser Stelle beginnt die Eingabe-/Ausgabe-Steuereinheit eine Übertragung vom und zum Speicher auf dieselbe Weise, wie sie oben in Verbindung mit dem Prozessor 30 beschrieben ist. Die Eingabe-/Ausgabe-Steuereinheit hält das Direktspeicherungs- Anfragesignal DMR aktiviert, bis sie die Übertragung beendet hat. Somit kann die Eingabe-/Ausgabe-Steuereinheit, wenn sie Mehrfachübertragungen fordert, das Direktspeicherungs-Anfragesignal DMR aktiviert halten, bis sie die Übertragungen beendet hat. Während das Direktspeicherungs-Anfragesignal DMR aktiviert ist, ist der Prozessor 30 in einem verzögerten Zustand, d.h. er überwacht die Signale auf den verschiedenen Leitungen des Busses 13, führt aber ansonsten keinerlei Befehle aus.
  • Wenn das System viele Eingabe-/Ausgabe-Untersysteme 12 enthält, werden durch die Eingabe-/Ausgabe-Steuereinheiten 22 getrennte Anfragesignale zum Werden zu einem Bus-"Master" zur Systemsteuereinheit gesendet, die das Direktspeicherungs- Anfragesignal DMR aktiviert und den Zustand des Direktspeicherungs- Zuteilungssignals DMG überwacht. Wenn der Prozessor 30 das Direktspeicherungs-Zuteilungssignal DMG aktiviert, ermöglicht die Systemsteuereinheit einer der Eingabe-/Ausgabe-Steuereinheiten 22 gemäß einem Prioritäts-Zuteilungsplan Bus- "master" zu werden.
  • Der Bus 13 hat auch eine Anzahl anderer Leitungen, die Zustands- und Steuersignale führen. Eine Leitung 60 führt Taktsignale CLK, die im System zum Synchronisieren von Operationen verwendet werden. Die verschiedenen Signale auf dem Bus 13 werden in Antwort auf die Taktsignale CLK synchronisiert.
  • Eine Leitung 61 führt ein Cache-Steuersignal CCTL, das zwei Funktionen hat. Wie es in der parallelen US-Patentanmeldung 908,825, die von Paul Rubinfeld am 12. September 1986 eingereicht wurde und den Titel "Cache Invalidate Protocol for Digital Data Processing System" beschrieben ist, wird das Cache-Steuersignal CCTL beispielsweise durch eine Eingabe-/Ausgabe-Steuereinheit 22 aktiviert, wenn sie der Bus-"Master" ist und eine Schreiboperation zum Speicher 11 durchführt. Die Eingabe-/Ausgabe-Steuereinheit 22 aktiviert das Signal CCTL, während sie die Adressensignale ADRS auf den Daten-/Adressenleitungen DAL 50 und die Übertragungstyp-Signale TR TYPE auf den Leitungen 52 sendet und das Adressen- Hinweissignal ADRS STR auf Leitung 51 aktiviert. Wenn das Cache-Steuersignal CCTL aktiviert ist und die Übertragungstyp-Signale TR TYPE eine Schreiboperation zum Speicher 11 anzeigen, prüft die Bus-Schnittstelle 33 die Inhalte der Kennzeichen 41 aller Cache-Einträge. Wenn die Signale ADRS auf den Daten-/Adressenleitungen DAL 50 des Busses 13 den Inhalten eines Kennzeichens 41 entsprechen, setzt die Bus-Schnittstelle 33 das alte Flag S 42 für jenen Cache- Block zurück.
  • Das Cache-Steuersignal CCTL wird auch durch den Speicher 11 aktiviert, um den Prozessor 30 vom Speichern von Daten im Cache 35 abzuhalten, die während einer Leseoperation angefragt wurden. Dies kann beispielsweise dort verwendet werden, wo der Speicher 13 ein Mehrtor-Speicher ist, d.h. wenn er von mehreren Prozessoren geteilt wird, wobei jeder Prozessor über einen separaten Bus auf den Speicher 11 zugreift, und die Daten, die wiedergewonnen werden, aus einer Gruppe adressierbarer Speicherstellen sind, die für alle Prozessoren verfügbar sind. Es ist unerwünscht, solche Daten zu haben, die im Cache 35 gespeichert sind, da ein anderer Prozessor die Inhalte der geteilten Stellen erneuern kann, und da die Erneuerungen nicht über den Bus 13 durchgeführt werden, können sie vom Prozessor 30 nicht erfaßt werden. Wenn der Prozessor 30 solche Daten vom Cache verwendet, kann es vorkommen, daß sie nicht den Inhalten der geeigneten Stellen im Speicher entsprechen. In Zusammenhang mit dieser Verwendung des Cache-Steuersignals CCTL aktiviert der Speicher 11 das Cache-Steuersignal CCTL gleichzeitig mit seinem Senden der Daten über die Daten-/Adressenleitungen DAL 50 und hält das Cache-Steuersignal CCTL aktiviert, bis er die Daten enffernt.
  • Der Bus 13 enthält auch eine Leitung 62, die ein Schreibpuffer-Löschsignal CLR WRT BUF führt. Ein Schreibpuffer-Löschsignal CLR WRT BUF wird vom Prozessor 30 in Antwort auf bestimmte Bedingungen innerhalb des Prozessors 30 aktiviert welche sonst außerhalb des Prozessors 30 nicht erfaßbar wäre. Beispielsweise aktiviert der Prozessor 30 das Schreibpuffer-Löschsignal CLR WRT BUF, wenn er einen Befehl ausführt, der ihn dazu veranlaßt, Prozeßzusammenhänge umzuschalten, oder wenn er beginnt, ein Unterbrechungsdienstprogramm oder ein Ausnahmeprogramm auszuführen. Das Schreibpuffer-Löschsignal CLR WRT BUF wird durch ein Feld in Mikrobefehlen gesteuert, die durch die Prozessor-Steuerschaltung 40 während eines Ausführens jener Befehle erzeugt werden.
  • Wenn das Schreibpuffer-Löschsignal CLR WRT BUF aktiviert ist, bestimmt der Schreibpuffer 23, ob er in den Speicher 11 zu speichernde Daten enthält. Wenn er keine enthält, macht dies nichts aus. Wenn der Schreibpuffer 23 jedoch in den Speicher 11 zu speichernde Daten enthält, aktiviert er das Direktspeicherungs- Anfragesignal DMR und fährt fort, zu versuchen, seine übrigen Daten in den Speicher 11 zu speichern. In Antwort auf das aktivierte Direktspeicherungs- Anfragesignal DMR aktiviert der Prozessor das Direktspeicherungs-Zuteilungssignal DMG, das vom Schreibpuffer 23 ignoriert wird, und er verzögert auch. Der Schreibpuffer 23 hält das Direktspeicherungs-Anfragesignal DMR im aktivierten Zustand, bis alle Daten, die er enthält, richtig im Speicher 11 gespeichert worden sind. Wenn bei der Speicherung kein Fehler auftritt, negiert der Schreibpuffer 23 das Direktspeicherungs-Anfragesignal DMR, was dem Prozessor 30 erlaubt, fortzufahren.
  • Wenn während eines Schreibens zum Speicher 11 ein Fehler auftritt, signalisiert der Schreibpuffer 23 einen Fehler zum Prozessor, was dem Prozessor 30 erlaubt, Programme zu verarbeiten, um den Fehler im gegenwärtigen Zusammenhang bzw. Kontext zu lokalisieren und zu korrigieren. Dies vereinfacht eine Fehlerentdeckung in starkem Maße. Wenn dem Prozessor erlaubt wird, Zusammenhänge umzuschalten, bevor ein Fehler erfaßt wird, ist es schwierig, den Zusammenhang zu bestimmen, der die Daten zu Beginn erzeugte. Eine Fehlerentdeckung wird vereinfacht, wenn der Zusammenhang identifiziert werden kann, und so hält der Schreibpuffer 23 den Prozessor davon ab, Zusammenhänge umzuschalten, bis alle Daten aus dem gegenwärtigen Zusammenhang richtig im Speicher 11 gespeichert sind.
  • Übertragungen zum und vom Gleitkomma-Prozessor 31
  • Der Prozessor 30 ist auch an den Gleitkomma-Prozessor 31 angeschlossen, um (1) die Operationscodes der Gleitkomma-Befehle zum Gleitkomma-Prozessor 31 zu übertragen, um anzuzeigen, daß die Operation durchgeführt wird, wie es unten in Verbindung mit Fig. 2A beschrieben ist, (2) Operandendaten zu ermöglichen, zum Gleitkomma-Prozessor 31 zur Verarbeitung übertragen zu werden, wie es in Verbindung mit den Fig. 2B und 2C beschrieben ist, und (3) verarbeitete Daten vom Gleitkomma-Prozessor 31 zu erhalten, wie es in Verbindung mit Fig. 2D beschrieben ist. Der Prozessor 30 und der Gleitkomma-Prozessor 31 sind miteinander über zwei Gruppen von Leitungen 70 und 71 verbunden, wobei die Leitungen 70 Gleitkomma-Zustandssignale CP STA (1:0) führen und die Leitungen 71 Gleitkomma- Datensignale CP DAT (5:0) führen. Der Gleitkomma-Prozessor 31 ist auch an mehrere Leitungen des Busses 13 angeschlossen, einschließlich der Daten-/Adressenleitungen DAL 50, der Leitung 60 zum Empfangen der Signale CLK, der Leitung 51 zum Empfangen des Adressen-Hinweissignals ADRS STR, der Leitung 54 zum Empfangen des Fertigsignals RDY, der Leitung 55 zum Empfangen des Fehlersignals ERR und der Leitung 57 zum Empfangen des Direktspeicherungs-Zuteilungssignals DMG. Die Gleitkomma-Zustandssignale CP STA (1:0) und die Gleitkomma-Datensignale CP DAT (5:0) werden synchron zu den Signalen CLK auf der Leitung 60 gesendet.
  • Während der Gleitkomma-Prozessor 31 frei ist, tastet er wiederholt die Zustände der Signale auf den Leitungen 70 und 71 synchron zum Signal CLK auf der Leitung 60 ab. Wenn wenigstens eine der Leitungen 71 ein Signal mit aktiviertem Pegel führt, speichert der Gleitkomma-Prozessor 31 die Signale auf jenen Leitungen und die Signale auf den Leitungen 70 (zwischen). Gemäß Fig. 2A sendet der Prozessor 30 dann, wenn er einen Befehl zum Gleitkomma-Prozessor 31 sendet, während eines Intervalls, das durch eine ausgewählte Anzahl von Markierungen der Taktsignale CLK definiert ist, wenigstens einen Teil des Operationscodes des Befehls als Gleitkomma-Datensignale CP DAT (5:0) über die Leitung 71 zum Gleitkomma- Prozessor 31. Während des Intervalls verzögert der Gleitkomma-Prozessor 31 und speichert die Signale synchron zu einer der Markierungen der Taktsignale CLK. Am Ende des Intervalls entfernt der Prozessor 30 die Signale von den Leitungen 70 und 71.
  • Die über die Leitungen 71 gesendeten Gleitkomma-Datensignale CP DAT (5:0) genügen zum Identifizieren einer durchzuführenden Gleitkomma-Arithmetikoperation, und sie identifizieren auch die Anzahl von bei der Operation zu verwendenden Operanden. Gleichzeitig mit dem Senden der Operationsinformationen über die Leitungen 71 werden andere Informationen als die Gleitkomma-Zustandssignale CP STA (1:0) über die Leitungen 70 gesendet, die weitere die Gleitkomma-Verarbeitung betreffende Informationen bereitstellen. Insbesondere können die Gleitkomma- Operanden in einer Anzahl von Formaten, die Datentypen genannt werden, codiert werden, und Informationen bezüglich des Formats der Operanden werden als Gleitkomma-Zustandssignale CP STA (1:0) über die Leitungen 70 gesendet. Bei einem Ausführungsbeispiel werden zusammen mit den Operationsinformationen auch Informationen bezüglich des Formats der Operanden über die Leitungen 71 gesendet.
  • Auf ein Empfangen des Operationscodes hin decodiert der Gleitkomma-Prozessor 31 diesen, um die durchzuführende Operation und die Anzahl erforderlicher Operanden zu bestimmen. Der Prozessor 30 (in Antwort auf ein Senden des Operationscodes) und der Gleitkomma-Prozessor 31 (in Antwort auf ein Empfangen des Operationscodes) gehen dann in einen Zustand über, in dem die Operanden über die Daten-/Adressenleitungen DAL 50 übertragen werden. Die Datentypinformationen werden verwendet, um für den Gleitkomma-Prozessor 31 das Format jedes der Operanden zu identifizieren. In Zusammenhang mit einigen Operandenformaten sind bei einigen Operandenformaten mehr Bits erforderlich, als bei einer einzelnen Übertragung über die Daten-/Adressenleitungen DAL 50 untergebracht werden können, und so sind mehrere Übertragungen erforderlich, um einen einzelnen Operanden zu übertragen. Die Datentypinformationen zeigen somit auch die Anzahl von Übertragungen über die Daten-/Adressenleitungen DAL 50 an, die zur Übertragung jedes Operanden erforderlich sind.
  • Ein Operand kann in einer von drei Quellen gespeichert werden, nämlich im Speicher 11 (Fig. 1), im Cache 35, oder in den Registern des Prozessors im Datenpfad 36. Auch die verschiedenen Operanden, die für eine einzelne Operation erforderlich sind, können in einer der drei Quellen gespeichert sein. Wenn mehrere Übertragungen über die Daten-/Adressenleitungen DAL 50 erforderlich sind, um einen einzelnen Operanden zu übertragen, erfolgen jedoch normalerweise alle Übertragungen in bezug auf eine einzige Quelle. Fig. 2B zeigt die Zustände der Signale, die gesendet werden, um einen Operanden aus dem Speicher wiederzugewinnen, und Fig. 2C zeigt die Signale, die gesendet werden, um einen Operanden vom Cache 35 oder von den Registern in dem Datenpfad 36 zu übertragen. Insbesondere zeigen die Fig. 2B und 2C die Zustände der Signale für eine Einzelübertragung über die Daten-/Adressenleitungen DAL 50, und es sollte erkannt werden, daß mehrere Übertragungen für einen einzelnen Operanden erforderlich sein können.
  • Gemäß Fig. 2B initiiert der Prozessor 30 dann, wenn ein Operand im Speicher 11 ist, seine Wiedergewinnung aus dem Speicher 11. Insbesondere führt der Prozessor 30 eine Leseoperation durch, wie es oben beschrieben ist, durch Bringen der Adressensignale ADRS auf die Daten-/Adressenleitungen DAL 50, und er aktiviert das Adressen-Hinweissignal ADRS STR. Kurz danach bringt der Prozessor 30 Gleitkomma-Zustandssignale CP STA (1:0) mit dem binären Wert Null auf die Leitungen 70, d.h. er negiert beide Gleitkomma-Zustandssignale CP STA (1:0). Zusätzlich sendet der Prozessor 30 Gleitkomma-Datensignale CP DAT (5:0) auf die Leitungen 71, wobei die Gleitkomma-Datensignale CP DAT (5:4) einen Adressenausrichtungscode enthalten, der anzeigt, wieviele der über die Daten-/Adressenleitungen DAL 50 gesendeten Daten im Operanden zu verwenden sind. Das Gleitkomma-Datensignal CP DAT (0) wird aktiviert, wenn der Operand eine kurze Literalkonstante auf den Daten-/Adressenleitungen DAL (5:0) ist, und sonst wird das Gleitkomma-Datensignal CP DAT (1) aktiviert.
  • Da der Gleitkomma-Prozessor 31 schon die Operationsinformationen bei dem oben in Verbindung mit Fig. 2A beschriebenen Verfahren empfangen hat, ist er in einem Zustand, einen Operanden zu empfangen. Das aktivierte Gleitkomma-Datensignal CP DAT (5:0) zeigt dem Gleitkomma-Prozessor 31, daß es dazu dient, die Signale auf ausgewählten Leitungen des Busses 13 abzutasten, und zwar insbesondere auf der Leitung 51, die das Adressen-Hinweissignal ADRS STR führt. Der Gleitkomma- Prozessor 31 verwendet den aktivierten Zustand des Adressen-Hinweissignals ADRS STR, um zu bestimmen, daß der Operand aus dem Speicher 11 gerade wiedergewonnen wird. Wenn das Adressen-Hinweissignal ADRS STR aktiviert ist, wenn er das aktivierte Gleitkomma-Datensignal CP DAT (5:0) empfängt, verzögert der Gleitkomma-Prozessor 31 die Datensignale auf den Daten-/Adressenleitungen DAL 50 in Antwort auf die Aktivierung des Fertigsignals RDY auf der Leitung 54 durch den Speicher 11. Der Prozessor 30 antwortet mit dem Daten-Hinweissignal DATA STR, um die Übertragung zu beenden.
  • Es wird angenommen, daß der Gleitkomma-Prozessor 31 dann, wenn der Speicher 11 auf eine Wiedergewinnungsanfrage mit einem aktivierten Fehlersignal ERR anstelle eines aktivierten Fertigsignals RDY antwortet, die gesendeten Datensignale auf den Daten-/Adressenleitungen DAL 50 nicht (zwischen-)speichert. Der Prozessor 30 führt irgendwelche erforderlichen Fehlerentdeckungsoperationen durch, wie beispielsweise nochmalige Versuche, die erforderlich sein können, und wiederholt die in Fig. 2B gezeigte Operation.
  • In Fig. 2C zeigt ein Zeitdiagramm, das nützlich zum Verstehen der Übertragung eines Operanden vom Prozessor 30 zum Gleitkomma-Prozessor 31 ist, ob der Operand im Cache 35 oder in einem Register im Datenpfad 36 ist. In jedem Fall bringt der Prozessor Datensignale auf die Daten-/Adressenleitungen DAL 50, und Gleitkomma-Datensignale CP DAT (5:0) mit derselben Codierung, wie es oben in Verbindung mit Fig. 2B beschrieben ist, und negiert beide Gleitkomma-Zustandssignale CP STA (1:0). Diese Signale werden durch den Prozessor (30) für eine ausgewählte Anzahl von Markierungen der Taktsignale CLK beibehalten. Während dieses Intervalls speichert der Gleitkomma-Prozessor 31 die Signale auf den Daten-/Adressenleitungen DAL 50 (zwischen). Wenn mehrere Übertragungen über die Daten-/Adressenleitungen DAL 50 erforderlich sind, um einen vollständigen Operanden zu übertragen, wird die in Fig. 2C gezeigte Ablauffolge wiederholt.
  • Wenn ein Operanden-Datentyp derart ist, daß mehrere Übertragungen über die Daten-/Adressenleitungen DAL 50 erforderlich sind, um einen vollständigen Operanden zu übertragen, wiederholen der Prozessor 30, der Speicher 11 und der Gleitkomma-Prozessor 31 die in den Fig. 2B und 2C gezeigten Operationen, bis ein vollständiger Operand übertragen ist.
  • Es wird angenommen, daß die Ablauffolge der in Fig. 2B gezeigten Operationen gleich der Ablauffolge der in Fig. 2C gezeigten Operationen ist, wobei es folgenden Unterschied gibt. Wenn das Adressen-Hinweissignal ADRS STR auf der Leitung 51 aktiviert ist, wenn das Gleitkomma-Datensignal CP DAT (5:0) aktiviert wird, verwendet der Gleitkomma-Prozessor 31 das aktivierte Fertigsignal RDY als Anzeichen dafür, daß der Operand (oder ein Teil des Operanden) dann auf den Daten-/Adressenleitungen DAL 50 ist. Wenn das Adressen-Hinweissignal ADRS STR jedoch nicht aktiviert ist, wenn das Gleitkomma-Datensignal CP DAT (5:0) aktiviert wird, verwendet der Gleitkomma-Prozessor 31 das Aktivieren des Gleitkomma- Datensignals CP DAT (5:0) als Anzeichen dafür, daß der Operand (oder ein Teil des Operanden) dann auf den Daten-/Adressenleitungen DAL 50 ist. In beiden Fällen speichert der Gleitkomma-Prozessor 31 die Signale auf den Daten-/Adressenleitungen DAL 50 synchron zu den Taktsignalen CLK auf der Leitung 60 (zwischen), und zwar im ersten Fall nach einem Empfangen des Fertigsignals RDY und im zweiten Fall nach einem Empfangen eines aktivierten Gleitkomma- Datensignals CP DAT (5:0).
  • Nachdem die Operanden übertragen worden sind, gehen der Prozessor 30 und der Gleitkomma-Prozessor 31 in einen Zustand über, in dem der Prozessor 30 darauf vorbereitet ist, die Ergebnisse zu empfangen, wenn der Gleitkomma-Prozessor 31 vorbereitet ist, sie zu senden. Fig. 2D zeigt ein Zeitdiagramm, das die Ablauffolge von Operationen im einzelnen zeigt, die durch den Prozessor 30 und den Gleitkomma-Prozessor 31 verwendet werden, um die verarbeiteten Daten zum Prozessor 30 zu übertragen. Die verarbeiteten Daten weisen sowohl die Zustandscodes auf, was anzeigt ob das Ergebnis negativ oder Null war, und auch ausgewählte andere das Ergebnis betreffende Tatsachen, als auch Datensignale, die den Wert der durch den Gleitkomma-Prozessor 31 durchgeführten Berechnung darstellen.
  • Gemäß Fig. 2D sendet der Prozessor 30 zu Beginn einen Signalcode über die Leitungen 70 und 71, was anzeigt, daß er zum Empfangen der verarbeiteten Daten bereit ist. Bei einem Ausführungsbeispiel sind beide Gleitkomma-Zustandssignale GP STA (1:0) negiert und das Gleitkomma-Datensignal GP DAT (3) ist aktiviert, während die anderen negiert sind. Danach kann der Gleitkomma-Prozessor 31 über die Leitungen 70 und 71 senden.
  • Wenn der Gleitkomma-Prozessor 31 zum Übertragen der verarbeiteten Daten bereit ist, sendet er Gleitkomma-Zustandssignale CP STA (1:0), die diesbezüglich einen Code darstellen, gleichzeitig mit Gleitkomma-Datensignalen CP DAT (5:0), die die Zustandscodes darstellen. Der Gleitkomma-Prozessor 31 behält diese Signale für eine ausgewählte Anzahl von Takten der Taktsignale CLK und bringt dann die Datensignale auf die Daten-/Adressenleitungen DAL 50, und zwar zusammen mit einem diesbezüglichen Code auf den Leitungen 70 und 71. Wenn viele Übertragungen über die Daten-/Adressenleitungen DAL 50 zum Übertragen der verarbeiteten Datensignale benötigt werden, überträgt der Gleitkomma-Prozessor 31 sie synchron mit den Taktsignalen CLK.
  • Während der Gleitkomma-Prozessor 31 Operanden verarbeitet und bevor er die Ergebnisse zum Prozessor 30 gesendet hat, kann der Prozessor 30 das Direktspeicherungs-Zuteilungssignal DMG aktivieren, um dem Eingabe-/Ausgabe- Untersystem 12 zu erlauben, an einer Übertragung zum Speicher 11 teilzunehmen. Der Gleitkomma-Prozessor 31 überwacht den Zustand der Leitung 57, nachdem der Prozessor 30 angezeigt hat, daß er zum Empfangen der verarbeiteten Daten bereit ist. Wenn das Direktspeicherungs-Zuteilungssignal DMG auf der Leitung 57 aktiviert ist, wenn der Gleitkomma-Prozessor 31 zum Rückübertragen der verarbeiteten Daten bereit ist, verzögert der Gleitkomma-Prozessor 31 ein Zurückbringen der verarbeiteten Daten, bis das Signal DMG negiert ist.
  • Zusätzlich zeigt der Prozessor 30 dann, wenn beispielsweise beim Empfangen von Operanden vom Speicher 11 ein Fehler auftritt, daß er nicht wünscht, verarbeitete Daten vom Gleitkomma-Prozessor 31 zu empfangen. Der Prozessor 30 bricht die Operation des Gleitkomma-Prozessors 31 nicht ab; statt dessen arbeitet der Gleitkomma-Prozessor 31 dann, wenn der Prozessor 30 einen neuen Operationscode zum Gleitkomma-Prozessor 31 sendet, in bezug auf jenen Operationscode. Es wird angenommen, daß die Gleitkomma-Zustandssignale CP STA (1:0) und die Gleitkomma-Datensignale CP DAT (5:0), die durch den Prozessor 30 über die Leitungen 70 und 71 dafür übertragen werden, anzuzeigen, daß er zum Empfangen der verarbeiteten Daten bereit ist, keinem Operationscode entsprechen sollten, damit der Gleitkomma-Prozessor 31 zwischen ihnen unterscheiden kann.
  • Bus-Schnittstellenschaltung 33
  • Eine Bus-Schnittstellenschaltung 33 ist in einem Ausführungsbeispiel des Prozessors 30 in Fig. 3 gezeigt. In Fig. 3 enthält die Bus-Schnittstellenschaltung 33 eine Zustandsmaschine 270, die den Bus 13 (Fig. 1A) steuert, und eine zweite Zustandsmaschine 271, die Operationen über den internen IDAL-Bus 34 steuert. Die zwei Zustandsmaschinen 270 und 271 arbeiten unabhängig voneinander, mit Ausnahme einiger Flags und Steuersignale, wie es nachfolgend beschrieben ist, die erlauben, daß die Zustandsmaschine 271 der Zustandsmaschine 270 anzeigt, daß Operationen über den Bus 13 erforderlich sind, und Antwortsignale, die durch die Zustandsmaschine 270 bereitgestellt werden, um der Zustandsmaschine 271 das Beenden der Operationen anzuzeigen.
  • Die Zustandsmaschine 271, die den internen IDAL-Bus 34 steuert, empfängt Eingangssignale von einer Anzahl von Quellen innerhalb des Prozessors 30, die allgemein durch eine Steuerlogik 273 gezeigt sind, von mehreren Anschlüssen am Bus 13, die allgemein durch Pins 274 des Busses 13 gezeigt sind, und von Mikrobefeh- len von der Steuerschaltung 40 (Fig. 1B). Die Zustandsmaschine 271 sendet Ausgangssignale zum Steuern einer Anzahl von Schaltungen innerhalb des Prozessors 30, die Logikschaltungen 272 enthalten, die die Übertragungen zum und vom Gleitkomma-Prozessor 31 steuern, und mehrere Signale, die die Funktion des Caches und des Adresseneingabe-Multiplexers 264 (Fig. 1B) steuern. Zusätzlich steuern Ausgangssignale von der Zustandsmaschine 271 auch eine Logikeinheit 276, die Flags (nicht gezeigt) enthält, die anzeigen, daß eine Leseoperation anhängig ist, was in Folge durch den Zustand eines Lese-Anfragesignals RD REQ angezeigt wird; daß eine Schreiboperation anhängig ist, wie es durch den Zustand eines Schreib-Anfragesignals WRT REQ angezeigt wird; und daß eine Übertragung von Operanden vom Prozessor 30 zum Gleitkomma-Prozessor 31 anhängig ist, wie es durch den Zustand eines Sende-Anfragesignals BRDCST REQ angezeigt wird.
  • Die Steuerlogik 276 kann unter Steuerung des Betriebssystems auch bestimmen ob bestimmte über den Bus 13 (Fig. 1A) empfangene Informationen während einer Leseoperation im Cache 35 (Fig. 1B) zu speichern sind. Beispielsweise kann das Betriebssystem den Prozessor 30 derart konditionieren, alle Information zu speichern, die er im Cache 35 liest. Alternativ dazu kann das Betriebssystem auch nicht zulassen, daß Prozessorbefehle im Cache 35 gespeichert werden, und nur eine Speicherung zu verarbeitender Daten im Cache zulassen. Im allgemeinen wird das Betriebssystem jedoch keine Speicherung von Informationen, die von verschiedenen Steuerregistern in den anderen Teilen des in Fig. 1A gezeigten Systems empfangen werden, im Cache 35 zulassen. Die Steuerlogik 276 konditioniert ein Cachespeicherungsbefähigungs-Zugriffssignal CACHE ACC zum Steuern des Speicherns der über den Bus 13 empfangenen Informationen im Cache.
  • Wie es oben beschrieben ist, kann auch eine vom Prozessor 30 externe Einheit mittels des Cache-Steuersignals CCTL auf der Leitung 61 (Fig. 1A) steuern, ob die Übertragung im Cache zu speichern ist.
  • Die Zustandsmaschine 271 steuert auch direkt oder indirekt über eine andere Steuerlogik (nicht gezeigt) das Laden von Schreibdaten und das Lesen von Schreibadressen in (Zwischen-)Speichern 250 bis 252, und steuert auch die Übertragung von Lesedaten von einem Eingangsdaten-(Zwischen-)Speicher 254 basierend auf den Zuständen der Signale an den Pins 274.
  • Die Zustandsmaschine 270, die Übertragungen über den Bus 13 steuert, empfängt das Lese-Anfragesignal RD REQ, das Schreib-Anfragesignal WRT REQ und das Sende-Anfragesignal BRDCST REQ von der Steuerlogik 276, sowie auch Signale von Bus-Pins 274, und erzeugt Signale, die zu Logikschaltungen 277 gesendet werden, die den Zustand mehrerer der Signale auf dem Bus 13 steuern. Zusätzlich erzeugt die Zustandsmaschine 270 Signale, die zu einer Steuerlogik 280 gesendet werden, die in Folge die Operation der (Zwischen-)Speicher 250, 251, 252 und 254 und des Multiplexers 253 (Fig. 1B) steuert, um zuzulassen, daß Signale auf die Daten-/Adressenleitungen DAL 50 des Busses 13 gekoppelt und davon empfangen werden. Nachdem eine Leseoperation beendet worden ist, aktiviert die Zustandsmaschine 270 auch ein Leseflag-Löschsignal CLR RD FLAGS, das der Steuerlogik 276 ermöglicht, das Lese-Anfragesignal RD REQ zu negieren.
  • Vor diesem Hintergrund wird nun die Operation der in Fig. 3 gezeigten Bus- Steuerschaltung 33 beschrieben. Während einer Schreiboperation, wie sie durch die Steuerschaltung 40 ermöglicht wird, lädt dann, wenn das (DMA- oder Schreibhänge-)Signal DMA OR WRT PND nicht durch die Steuerlogik 273 aktiviert ist, die Zustandsmaschine 271 zuerst die Adresse der zu beschreibenden Stelle in den Schreibadressen-(Zwischen-)Speicher 251 (Fig. 1B) und bestimmt, ob die Stelle im Cache 35 (Fig. 1B) gespeichert ist. Wenn das Signal DMA OR WRT PND aktiviert ist, verwendet entweder eine andere Einheit im in Fig. 1A gezeigten System den Bus 13, oder die Zustandsmaschine 271 hat ermöglicht, daß eine Schreibadresse und Schreibdaten, die nicht über den Bus 13 übertragen worden sind, in die (Zwischen-)Speicher 251 bzw. 250 (Fig. 1B) geladen werden.
  • Wenn das (DMA- oder Schreibhänge-)Signal DMA OR WRT PND nicht aktiviert ist, wird bestimmt, ob die zu beschreibende Stelle im Cache gespeichert ist. Wenn die Stelle im Cache gespeichert ist, muß der Eintrag im Cache 35, der jener Stelle entspricht, durch die neuen Daten erneuert werden. Zum Bestimmen, ob die Stelle im Cache gespeichert ist, erzeugt die Zustandsmaschine 271 Cache-Funktionssignale CACHE FTN (1:0), die ermöglichen, daß der Cache gelesen wird, und Signale CACHE ADRS (1:0), die ermöglichen, daß der Multiplexer 264 die durch die Schaltung 37 zur Umsetzung virtueller Adressen erzeugte physikalische Adresse verwendet. Während dieser Operation werden Daten davon abgehalten, vom Cache auf den internen Datenbus 34 gekoppelt zu werden. Wenn die Stelle im Cache gespeichert ist, wird das Treffersignal HIT durch die Treffer-/Nichttreffer-Logik 262 aktiviert, die im Zustand des Nichttreffersignals MISS von der Steuerlogik 273 berücksichtigt wird.
  • Wenn das Nichttreffersignal MISS nicht aktiviert ist, ist die zu beschreibende Stelle im Cache gespeichert. In Antwort auf ein negiertes Nichttreffersignal MISS erzeugt die Zustandsmaschine 271 Cache-Funktionssignale CACHE FTN (1:0), die eine Cache-Schreiboperation ermöglichen, und Cache-Adressensignale CACHE ADRS (1:0), die ermöglichen, daß der Multiplexer 264 die Adresse von der Schaltung 37 zur Umsetzung virtueller Adressen verwendet. Gleichzeitig werden die in den Cacheeintrag geschriebenen Daten in den Schreibdaten-(Zwischen-)Speicher 250 (Fig. 1B) gespeichert, und die Flags in der Steuerlogik 276 werden derart konditioniert, daß sie ein aktiviertes Schreib-Anfragesignal WRT REQ erzeugen. Während dieser Operation wird das Signal MBOX STALL aktiviert, um die Schaltung zum Umsetzen virtueller Adressen für ein Arbeiten zu sperren.
  • Andererseits ist, wenn das Nichttreffersignal MISS aktiviert ist, die zu beschreibende Stelle nicht im Cache gespeichert. In Antwort auf das aktivierte Ausgangssignal ermöglicht die Zustandsmaschine, daß die Schreibdaten im Schreibdaten(Zwischen-)Speicher 250 (Fig. 1B) (zwischen-)gespeichert werden und das Signal WRT REQ durch die Steuerlogik 276 aktiviert wird. Zusätzlich werden die Cache- Adressensignale CACHE ADRS (1:0) konditioniert, um einen Auffrisch-Zähler 262 (Fig. 1B) zu inkrementieren und zu ermöglichen, daß der Multiplexer 264 die Adresse zu den Flags 42, den Kennzeichen 41 und dem Datenspeicher 38 (Fig. 1B) koppelt, um zuzulassen, daß sie aufgefrischt werden. Während dieser Operation wird auch das Signal MBOX STALL aktiviert, um die Schaltung zum Umsetzen virtueller Adressen für ein Arbeiten zu sperren, um sie davon abzuhalten, eine weitere physikalische Adresse zu erzeugen.
  • Nachdem die Schreiboperation beendet ist, wird das (DMA- oder Schreibhänge-)Signal DMA OR WRT PND negiert. Dies erlaubt, daß eine weitere Adresse und weitere Schreibdaten in die (Zwischen-)Speicher 250 und 251 (Fig. 1B) geladen werden. Auch die Auffrischoperation wird ermöglicht.
  • Die durch die Zustandsmaschine 271 während einer Leseoperation durchgeführten oder ermöglichten Operationen hängen davon ab, ob die angefragten Informationen ein Befehl oder Daten sind, und ob die angefragten Informationen im Cache 35 (Fig. 1B) waren oder nicht. Die Informationen sind im Cache, wenn die durch die Adresse identifizierte Stelle im Cache gespeichert ist und wenn es keinen Paritätsfehler entweder beim Kennzeichen 41 oder bei den Daten 38 (Fig. 1B) gibt, was den Cacheeintrag unbrauchbar machen würde. Eine Leseoperation kann erforderlich sein, um einen Befehl wiederzugewinnen, in welchem Fall die Steuerlogik 273 ein Befehlspuffer-Anfragesignal ARM IB REQ aktiviert. Andererseits aktiviert die Steuerschaltung 40 ein Lesesignal RD. Wenn die erforderlichen Informationen nicht im Cache 35 sind, aktiviert die Steuerlogik 273 auch ein Lese-Nichttreffersignal READ MISS. Das Lese-Nichttreffersignal READ MISS ist das Komplement des in Fig. 1B gezeigten Treffersignals HIT.
  • In Antwort auf ein aktiviertes Lesesignal RD von der Steuerschaltung 40 oder auf die Aktivierung des Befehlspuffer-Anfragesignals IB REQ, erzeugt die Zustandsmaschine 271 Cache-Funktionssignale CACHE FTN (1:0), die ein Lesen des Caches ermöglichen, und Cache-Adressensignale CACHE ADRS (1:0), die dem Multiplexer 264 (Fig. 1B) ermöglichen, die Adresse von der Logikeinheit 37 zur Umsetzung virtueller Adressen zu verwenden. Gleichzeitig aktiviert die Zustandsmaschine 271 das Arm-Adressen-Hinweissignal ARM ADR STR, das ermöglicht, daß die Adresse von der Logikeinheit 37 zur Umsetzung virtueller Adressen in den Leseadressen(Zwischen-)Speicher 252 geladen wird. Wenn die Operation in Antwort auf das Signal IB REQ erfolgte, aktiviert die Zustandsmaschine 271 auch ein Anfangs- Befehlspuffer-Anfragesignal INIT IB REQ, das der Steuerlogik 273 ermöglicht, ein Flag zu setzen, was in Folge die Aktivierung eines Anfragesignals eines vorherigen Pufferbefehls PREV IB REQ ermöglicht. Wenn die Informationen im Cache 35 sind, erlaubt die Zustandsmaschine 271, daß die Informationen vom Cache 35 abgekoppelt werden, wie es oben beschrieben ist, und die Operation endet.
  • Wenn die Informationen nicht im Cache 35 sind, und wenn das (DMA- oder Schreibhänge-)Signal DMA OR WRT PND aktiviert ist, aktiviert die Zustandsmaschine 272 sowohl das Signal STALL als auch das Signal MBOX STALL, um den Prozessor 30 zu verzögern, und Signale CACHE ADRS (1:0), die eine Auffrischoperation zulassen. Das Verzögern läßt zu, daß die Schreiboperation vor einem Fortfahren mit der Leseoperation beendet wird.
  • Wenn das (DMA- oder Schreibhänge-)Signal DMA OR WRT PND negiert ist, geht die Leseoperation weiter. Die Zustandsmaschine 271 gibt die Steuerlogik 276 frei, um das Lese-Anfragesignal RD REQ zu aktivieren. Die Zustandsmaschine 271 überwacht dann das Signal CACHEABLE, das Cache-Steuersignal CCTL, das Fertigsignal RDY und das Fehlersignal ERR, um das Ende der Leseoperation zu bestimmen. Wenn das Signal CACHEABLE oder das Cache-Steuersignal CCTL anzeigt, daß die Informationen nicht im Cache gespeichert werden sollen, erfolgt eine Übertragung über den Bus 13. Wenn die Informationen andererseits im Cache gespeichert werden sollen, sind zwei Übertragungen erforderlich, und zwar eine für jedes Wort im Cacheeintrag (Fig. 1B). Da bei einem spezifischen Ausführungsbeispiel das zweite am wenigsten signifikante Adressenbit das gerade wiedergewonnene Wort identifiziert, erfolgt während der zweiten Wiedergewinnung des zweiten Adressenbits im Leseadressenregister eine Invertierung, um zu identifizieren, daß das zweite Wort wiedergewonnen wird. Somit können die Worte in umgekehrter Reihenfolge wiedergewonnen werden, in der sie in den adressierbaren Stellen im Speicher 11 angeordnet sind.
  • Wenn die Übertragung im Cache zu speichern ist, ermöglicht die Zustandsmaschine 271 dem Multilexer 264 (Fig. 1B) dann, wenn das Fertigsignal RDY empfangen wird, wenn das Paritätsfehlersignal DAL PAR ERR nicht aktiviert ist, was keinen Paritätsfehler in den empfangenen Informationen anzeigt, die Adresse von der Schaltung zur Umsetzung virtueller Adressen zu verwenden, um einen Eintrag im Cache 35 auszuwählen, und ermöglicht, daß die Informationen in entweder das ausgewählte hohe oder niedrige Wort geladen werden. Das Wort im Cache 35, in das die Informationen zu laden sind, hängt vom Zustand des Bits der virtuellen Adresse VA (2) ab. Die Informationen werden dann zum Datenpfad 36 (Fig. 1B) gekoppelt.
  • Wenn das Paritätsfehlersignal DAL PAR ERR aktiviert ist, oder wenn das Fehlersignal ERR auf der Leitung 55 (Fig. 1A) aktiviert ist, was eine Fehlerantwort durch eine an der Übertragung beteiligte andere Einheit anzeigt hängt die Operation davon ab, ob das Anfragesignal des vorherigen Pufferbefehls PREV IB REQ aktiviert ist. Wenn es aktiviert ist, wird die Steuerschaltung 40 (Fig. 1B) durch ein aktiviertes Befehlspuffer-Auffüll-Fehlersignal IB FILL ERR benachrichtigt, um zuzulassen, daß sie eine Korrekturhandlung vornimmt. Wenn das Anfragesignal des vorherigen Pufferbefehls PREV IB REQ nicht aktiviert ist, werden die Verzögerungssignale STALL und MBOX STALL aktiviert, um den Prozessor 30 zu verzögern, und ein Fang- Anfragesignal TRAP REQ wird aktiviert, das zuläßt daß die Prozessor- Steuerschaltung 40 ausgewählte Wiedergewinnungsoperationen durchführt.
  • Wenn die empfangenen Informationen im Cache zu speichern sind und beim Empfang der Daten weder das Fehlersignal ERR noch das Paritätsfehlersignal DAL PAR ERR aktiviert ist, fährt die Zustandsmaschine 271 fort, um zu ermöglichen, daß ein zweites Wort empfangen und im Cache 35 gespeichert wird. Wenn das zweite Wort richtig empfangen wird, wird es im Cache 35 gespeichert, wie es oben beschrieben ist. Die Zustandsmaschine 271 erzeugt Cache-Adressensignale CACHE ADRS (1:0), die ermöglichen, daß der Multiplexer 264 die Adresse von der Schaltung 37 zur Umsetzung virtueller Adressen verwendet, und Cache-Funktionssignale CACHE FTN (1:0), die ermöglichen, daß das zweite Wort im Cacheeintrag gespeichert wird. Die Zustandsmaschine 271 ermöglicht jedoch nicht, daß Informationen zum Datenpfad 36 übertragen werden.
  • Wenn andererseits das Fehlersignal ERR oder die Paritätsfehlersignale DAL PAR ERR aktiviert sind, wird das Signal MBOX STALL aktiviert, um die Schaltung 37 zur Umsetzung virtueller Adressen zu verzögern, und der Eintrag im Cache, in den das erste Wort geschrieben wurde, wird als ungültig markiert. Zur selben Zeit werden die Signale CACHE ADRS (1:0) derart konditioniert, daß dem Multiplexer 264 ermöglicht wird, die Auffrischadresse vom Auffrisch-Zähler 262 zum Auffrischen der Inhalte des Caches 35 zu verwenden, und den Zähler zu inkrementieren.
  • Die Zustandsmaschine 271 ermöglicht, daß Auffrischoperationen durchgeführt werden, wann immer die Zustandsmaschine 271 nicht ermöglicht, daß Informationen in den Cache 35 geschrieben oder daraus gelesen werden. Zum Ermöglichen, daß Operationen erfolgen, erzeugt die Zustandsmaschine 271 Signale CACHE ADRS, die dem Multiplexer 264 ermöglichen, Auffrisch-Adressensignale vom Auffrisch- Zähler 262 zum Auffrischen der Inhalte der Speicherschaltungen 38, 41 und 42 (Fig. 1B) auf herkömmliche Weise zu verwenden.
  • Die Zustandsmaschine 271 ermöglicht auch, daß Einträge im Cache 35 in Antwort auf ein Ungültigkeits-Anfragesignal DMA INV REQ von der Steuerlogik 273 ungültig gemacht werden. Wie es oben in Verbindung mit Fig. 1B beschrieben ist, wird dieses Signal in Antwort auf die Übereinstimmung eines aktivierten Cache- Steuersignals CCTL mit einem aktivierten Adressen-Hinweissignal ADRS STR erzeugt, wenn beide Signale durch andere Einheiten im in Fig. 1A gezeigten System aktiviert sind. Dies enfolgt, wenn die anderen Einheiten DMA- (Direktspeicherzugriffs-)Operationen am Speicher 11 durchführen, und so wird das Direktspeicherungs-Zuteilungssignal DMG aktiviert. Wenn eine andere Einheit Daten zu einer Stelle im Speicher 11 überträgt, die im Cache 35 gespeichert ist, muß der Cacheeintrag als ungültig markiert werden. Gemäß Fig. 1B ermöglicht ein AND- Gatter 401 in Antwort auf die Übereinstimmung des Signals DMG mit dem Adressen-Hinweissignal ADRS STR dem Eingangsdaten-(Zwischen-)Speicher 254, die Signale, die in diesem Fall Adressensignale sind, auf den Daten-/Adressenleitungen DAL 50 (zwischen-)zuspeichern.
  • In Antwort auf das Ungültigkeits-Anfragesignal DMA INV REQ versucht die Zustandsmaschine 271 zuerst eine Leseoperation vom Cache 35 unter Verwendung der Adresse im Eingangsdaten-(Zwischen-)Speicher 254 durchzuführen, ohne zuzulassen, daß die Daten vom Cache auf den internen Bus 34 gekoppelt werden. Wenn das Nichttreffersignal MISS aktiviert ist, ist die Stelle nicht im Cache gespeichert, und es erfolgt weiter nichts.
  • Wenn jedoch das Nichttreffersignal MISS negiert ist, ist die durch die Adresse im Eingangsdaten-(Zwischen-)Speicher 254 identifizierte Stelle im Cache gespeichert, und die Zustandsmaschine beginnt eine Cache-Ungültigkeitsoperation. Dabei erzeugt sie Cache-Funktionssignale CACHE FTN (1:0), die eine Ungültigkeitsoperation ermöglichen, und Cache-Adressensignale CACHE ADRS (1:0), die dem Multiplexer 264 ermöglichen, die Inhalte des Eingangsdaten-(Zwischen-)Speichers bei der Ungültigmachung zu verwenden.
  • Die Zustandsmaschine 270 arbeitet in Antwort auf das Cache-Steuersignal CCTL, das Direktspeicherungs-Anfragesignal DMR, das Fertigsignal RDY und das Fehlersignal ERR vom Bus 13, das Lese-Anfragesignal RD REQ, das Schreib- Anfragesignal WRT REQ, das Sende-Anfragesignal BRDCST REQ und das Cachespeicherungsbefähigungs-Zugriffssignale CACHE ACC von der Steuerlogik 276 und das Direktspeicherungs-Zugriffsverhinderungssignal INH DMA und das Arm-Lese- Anfragesignal ARM RD REQ von der Zustandsmaschine 271. Wenn die Zustandsmaschine 270 ein aktiviertes Direktspeicherungs-Anfragesignal DMR empfängt, das anzeigt, daß eine andere Einheit im in Fig. 1A gezeigten System wünscht, eine Übertragung über den Bus 13 durchzuführen, negiert sie solange das Direktspeicherungs-Zuteilungssperrsignal DIS DMG,, bis das Direktspeicherungs- Zugriffsverhinderungssignal INH DMA oder das Sende-Anfragesignal BRDCST REQ aktiviert ist, was in Folge der Steuerlogik 277 ermöglicht, das Direktspeicherungs-Zuteilungssignal DMG zu aktivieren. Das aktivierte Direktspeicherungs- Zuteilungssignal DMG ermöglicht einer anderen Einheit, eine Übertragung über den Bus 13 durchzuführen. Zusätzlich aktiviert die Zustandsmaschine 270 das Signal DATA IN, das der DAL-Steuerlogik 280 ermöglicht, die Daten-/Adressenleitungen DAL 50 derart zu konditionieren, daß anderen Einheiten im System erlaubt wird, sie zu verwenden. Die Zustandsmaschine 270 aktiviert auch das Signal TRI-STATE STR, um der Steuerlogik 277 zu ermöglichen, anderen Einheiten zu erlauben, das Daten-Hinweissignal DATA STR, das Adressen-Hinweissignal ADRS STR und das Übertragungstyp-Signal TR TYPE zu verwenden.
  • Alternativ dazu ermöglicht die Zustandsmaschine 270 dann, wenn keine andere Einheit im System eine Übertragung über den Bus 13 durchführen muß, Übertragungen über ihn in Antwort auf das Lese-Anfragesignal RD REQ, das Schreib- Anfragesignal WRT REQ und das Sende-Anfragesignal BRDCST REQ von der Steuerlogik 276. Wenn das Schreib-Anfragesignal WRT REQ aktiviert ist, das eine Schreibadresse und Schreibdaten in den (Zwischen-)Speichern 251 bzw. 250 (Fig. 1B) anzeigt, erzeugt die Zustandsmaschine 270 dann, wenn das Signal DMR nicht aktiviert ist, (DAL-Inhalts-)Signale DAL CONT (1:0), die dem Multiplexer 253 ermöglichen, eine Schreibadresse vom (Zwischen-)Speicher 251 auf die Daten-/Adressenleitungen DAL 50 zu koppeln. Gleichzeitig aktiviert die Zustandsmaschine 270 ein Adressen-Hinweisfreigabesignal ADRS STR EN, das der Steuerlogik 277 in Folge ermöglicht, das Adressen-Hinweissignal ADRS STR zu aktivieren.
  • Als nächstes erzeugt die Zustandsmaschine 270 (DAL-Inhalts-)Signale DAL CONT (1:0), die dem Multiplexer 253 ermöglichen, die Inhalte des Schreibdaten(Zwischen-)Speichers 250 auf die Daten-Adressenleitungen DAL 50 zu koppeln. Gleichzeitig aktiviert die Zustandsmaschine 270 ein Daten-Hinweisfreigabesignal DATA STR EN, das der Steuerlogik 277 ermöglicht, das Daten-Hinweissignal DATA STR zu aktivieren. Danach wartet die Zustandsmaschine, bis das Fertigsignal RDY oder das Fehlersignal ERR aktiviert ist. Wenn das aktivierte Signal RDY empfangen wird, endet die Operation durch Negieren des Adressen-Hinweisfreigabesignals ADRS STR EN und des Daten-Hinweisfreigabesignals DATA STR EN, was der Steuerlogik 277 in Folge ermöglicht, das Adressen-Hinweissignal ADRS STR bzw. das Daten-Hinweissignal DATA STR zu negieren, und der Steuerlogik 276 wird ermöglicht, das Schreib-Anfragesignal WRT REQ zu negieren.
  • Andererseits führt die Zustandsmaschine 270 dann, wenn das aktivierte Fehlersignal ERR empfangen wird, einen nochmaligen Versuch durch, bei dem sie (DAL- Inhalts-)Signale DAL CONT (1:0) erzeugt, die dem Multiplexer 253 ermöglichen, die Schreibdatensignale vom (Zwischen-)Speicher 250 auf die Daten-/Adressenleitungen DAL 50 zu koppeln.
  • Wenn sowohl das Fertigsignal RDY als auch das Fehlersignal ERR aktiviert ist, wird ein erneuter Versuch signalisiert, und die Übertragung wird nochmals versucht.
  • Wenn gerade keine andere Operation auftritt, erzeugt die Zustandsmaschine 270 (DAL-Inhalts-)Signale DAL CONT (1:0), die dem Multiplexer 253 ermöglichen, die Inhalte des Leseadressen-(Zwischen-)Speichers 252 auf die Daten-/Adressenleitungen DAL 50 zu koppeln. Dies erlaubt der Zustandsmaschine 270, schnell eine Leseoperation zu initiieren, wenn andere Signale und Bedingungen zulassen, daß eine Leseoperation auftritt. Während einer Leseoperation aktiviert die Zustandsmaschine 270 dann, wenn das Lese-Anfragesignal RD REQ aktiviert ist, das Adressen-Hinweisfreigabesignal ADRS STR EN, das der Steuerlogik 277 in Folge ermöglicht, das Adressen-Hinweissignal ADRS STR zu aktivieren. Die Zustandsmaschine 270 aktiviert dann das Dateneingangssignal DATA IN, das der Steuerlogik 280 ermöglicht, die Daten-/Adressenleitungen DAL 50 derart zu konditionieren, daß anderen Einheiten im System ermöglicht wird, sie zu verwenden. Gleichzeitig aktiviert die Zustandsmaschine das Daten-Hinweisfreigabesignal DATA STR ENG das der Steuerlogik 277 in Folge ermöglicht, das Daten-Hinweissignal DATA STR zu aktivieren.
  • Die nächsten Operationen hängen davon ab, ob das Cachespeicherungsbefähigungs-Zugriffssignal CACHE ACC durch die Steuerlogik 276 aktiviert ist. Wenn das Signal aktiviert ist, sind die wiedergewonnenen Daten im Cache speicherbar, und somit werden zwei Worte über den Bus 13 gelesen. Wenn andererseits das Cachespeicherungsbefähigungs-Zugriffssignal CACHE ACC nicht aktiviert ist, sind die wiedergewonnenen Daten nicht im Cache speicherbar, und es wird nur ein Wort über den Bus 13 gelesen. Wenn das Cachespeicherungsbefähigungs-Zugriffssignal CACHE ACC nicht aktiviert ist, aktiviert die Zustandsmaschine 270 ein Lesedaten(Zwischen-)Speichersignal RD DATA LAT, das dann, wenn es aktiviert ist, dem Eingangs-(Zwischen-)Speicher 254 (Fig. 1B) ermöglicht, die Signale auf den Daten-/Adressenleitungen DAL 50 zu empfangen. Wenn das Lesedaten(Zwischen-)Speichersignal RD DATA LAT danach negiert wird, werden die Signale durch den Eingangs-(Zwischen-)Speicher (zwischen-)gespeichert. Die Zustandsmaschine 270 negiert das Lesedaten-(Zwischen-)Speichersignal RD DATA LAT in Antwort auf das aktivierte Fertigsignal RDY, wenn das Fehlersignal ERR negiert ist, und aktiviert das Leseflag-Löschsignal CLR RD FLAGS. In Antwort auf das aktivierte Signal CLR RD REQ negiert die Steuerlogik 276 das Lese-Anfragesignal RD REQ.
  • Wenn andererseits das Cachespeicherungsbefähigungs-Zugriffssignal CACHE ACC aktiviert ist, wird eine Leseoperation durchgeführt, wie es oben beschrieben ist.
  • Wenn das Cache-Steuersignal CCTL nicht aktiviert ist, wenn die Daten im Eingangsdaten-(Zwischen-)Speicher (zwischen-)gespeichert sind, wird auch eine zweite Operation durchgeführt. Wenn andererseits das Cache-Steuersignal CCTL aktiviert ist, was anzeigt daß die an der Übertragung beteiligte andere Einheit ein Speichern der Daten im Cache im voraus ausschließt, wird die zweite Operation nicht durchgeführt.
  • Die Zustandsmaschine 271 verwendet das Direktspeicherungs- Zugriffsverhinderungssignal INH DMA zum Verhindern, daß die Zustandsmaschine 270 das Direktspeicherungs-Zuteilungssignal DMG in Antwort auf den Empfang eines Direktspeicherungs-Anfragesignals DMR von anderen Einheiten aktiviert. Das Direktspeicherungs-Zugriffsverhinderungssignal INH DMA wird während bestimmter Übertragungen zum und vom Gleitkomma-Prozessor 31 (Fig. 1A) aktiviert.
  • Das Lese-Sendesignal RD BRDCAST und das Basis-Sendesignal BASIC BRDCST von der Steuerschaltung 40 ermöglichen der Zustandsmaschine 271, Gleitkomma- Operandeninformationen vom Cache 35 oder von den Register 255 im Datenpfad 36 (siehe Fig. 1B) zu übertragen. Der Steuerlogik 276 wird auch ermöglicht, die Sende-Anfragesignale BRDCST REQ zu aktivieren, um der Zustandsmaschine 270 in Folge zu ermöglichen, diese Informationen zu übertragen, wie es oben beschrieben ist. Die Zustandsmaschine 271 ermöglicht der Steuerlogik 273 auch, ein Flag zu setzen, das ein Gleitkomma-Prozessorhängesignal FPP PND aktiviert. Die Zustandsmaschine 271 aktiviert ein Gleitkomma-Prozessoranzeigesignal SIG FPP, um der Gleitkomma-Prozessor-(FPP)-Schnittstellenschaltung 272 anzuzeigen, daß sie bereit zum Empfangen der Ergebnisse einer Gleitkommaoperation vom Gleitkomma-Prozessor 31 ist. Wenn die Zustandscodes fertig sind, wie es oben beschrieben ist, aktiviert die Schnittstellenschaltung 272 ein Signal CP-OK, und wenn die Ergebnisdaten fertig sind, aktiviert sie ein Fertigsignal GP RDY. In Antwort auf das Fertigsignal GP RDY ermöglicht die Zustandsmaschine 271 der Zustandsmaschine 270, die Ergebnisdaten zu empfangen. Wenn der Gleitkomma-Prozessor 31 einen Fehler signalisiert, aktiviert die Schnittstellenschaltung 272 ein Fehlersignal CP ERR. In Antwort auf das Signal CP OK, das Signal CP RDY oder das Signal CP ERR ermöglicht die Zustandsmaschine 271, daß das Flag, das das Gleitkomma- Prozessorhängesignal FPP PND steuert, rückgesetzt wird, um dadurch das Signal zu negieren.
  • Die Bus-Schnittstellenschaltung 33 bietet eine Anzahl von Vorteilen. Als erstes vereinfacht das Verwenden zweier Zustandsmaschinen 270 und 271, die jeweils verschiedene Operationen und eine Datenübertragung durch Flags steuern, die Schaltung beachtlich.
  • Weiterhin ermöglicht die Zustandsmaschine 271 ein Auffrischen des Caches 35, was die Verwendung dynamischer Speicherelemente darin zuläßt. Dies reduziert die physikalische Größe des Caches oder erleichtert alternativ dazu eine Bereitstellung von mehr Cache-Speicherplatz in demselben Bereich, als es in der Vergangenheit der Fall war.
  • Weiterhin wird angenommen, daß die Bus-Schnittstellenschaltung 33 beim Wiedergewinnen von im Cache speicherbaren Daten zuerst die Daten wiedergewinnt, die vom Programm benötigt werden, und dann das andere Wort zur Speicherung im Cacheeintrag wiedergewinnt. Bei bisherigen Systemen wurden die Datenworte in der Reihenfolge wiedergewonnen, in der sie im Speicher gespeichert wurden, und somit konnte es sein, daß das erste Speicherwort nicht dasjenige war, das vom Programm sofort benötigt wurde. Dies verzögerte eine Wiederaufnahme der Verarbeitung, bis das zweite Wort wiedergewonnen war.
  • Zusätzlich läßt die Bus-Schnittstellenschaltung 33 zu, daß Leseoperationen bis zu dem Ausmaß initiiert werden, daß eine Leseadresse erzeugt und im Leseadressen- (Zwischen-)Speicher 252 (zwischen-)gespeichert wird, während eine Schreiboperation anhängig ist. Die Leseoperation wird solange nicht beendet, bis die anhängige Schreiboperation beendet ist; wenn aber die Schreiboperation beendet ist, kann die Leseadresse sofort gesendet werden.
  • Schließlich läßt die Bus-Schnittstellenschaltung auch zu, daß Cacheeinträge durch eine Direktspeicherungs-Zugriffsoperation ungültig gemacht werden, die durch andere Einheiten im in Fig. 1A gezeigten System durchgeführt wird, und zwar unabhängig davon, ob im Prozessor 30 Lese- oder Schreiboperationen eingestellt worden sind. Das bedeutet, daß die Cacheeintrags-Ungültigkeitsoperation in Antwort auf eine DMA-Adresse stattfinden kann, die im Eingangs-(Zwischen-)Speicher 254 empfangen wird, während Schreibdaten und eine Schreibadresse in den jeweiligen (Zwischen-)Speichern 251 und 250 (Fig. 1B) (zwischen-)gespeichert werden und eine Lesead resse im (Zwischen-)Speicher 252 (zwischen-)gespeichert wird. Dies vereinfacht die Ungültigkeitsverarbeitung.

Claims (10)

1. Bus-Schnittstellenschaltung (33) zum Anschluß an eine Verarbeitungsschaltung (30) und einen Bus (13) zum Übertragen von Information zwischen wenigstens einer weiteren Einheit und der Verarbeitungsschaltung, wobei die Verarbeitungsschaltung wenigstens einen Cache-Speicher (35) enthält und die wenigstens eine weitere Einheit eine Speichereinheit (11) ist, wobei die Schnittstellenschaltung (33) folgendes enthält: einen eingangsseitigen (Zwischen-)Speicher (254) zum Anschluß an die Verarbeitungsschaltung und den Bus zum (Zwischen-)Speichern von Information, die von einer weiteren Einheit zur Übertragung zu der Verarbeitungsschaltung empfangen wird; und einen ausgangsseitigen (Zwischen-)Speicher (250) zum Anschluß an die Verarbeitungsschaltung und den Bus zum (Zwischen-)Speichern von Information von der Verarbeitungsschaltung zur Übertragung zu einer weiteren Einheit; wobei die Schnittstellenschaltung dadurch gekennzeichnet ist, daß sie weiterhin eine Schnittstellen-Steuerschaltung aufweist, die folgendes enthält:
eine Schaltung (271) zum Steuern des internen Zustandes, die mit der Verarbeitungsschaltung, dem ausgangsseitigen (Zwischen-)Speicher (250) und dem eingangsseitigen (Zwischen-)Speicher (254) verbunden ist, zum Steuern von Informationsübertragungen zwischen der Verarbeitungsschaltung und dem ausgangsseitigen (Zwischen-)Speicher und dem eingangsseitigen (Zwischen-)Speicher;
eine Schaltung (270) zum Steuern des externen Zustandes, die mit dem eingangsseitigen (Zwischen-)Speicher, dem ausgangsseitigen (Zwischen-)Speicher und dem Bus verbunden ist, zum Steuern von Informationsübertragungen zwischen den weiteren Einheiten und dem eingangsseitigen (Zwischen-)Speicher und dem ausgangsseitigen (Zwischen-)Speicher; und
eine Einheit (276) zum Anzeigen eines Zustands, die mit der Schaltung zum Steuern des internen Zustandes und der Schaltung zum Steuern des externen Zustandes verbunden ist, wobei die Einheit zum Anzeigen eines Zustandes durch die Schaltung zum Steuern des internen Zustandes derart gesteuert wird, daß sie in Antwort auf Zustände des eingangsseitigen (Zwischen-)Speichers und des ausgangsseitigen (Zwischen-)Speichers einen ausgewählten Zustand hat, um dadurch Operationen der Schaltung zum Steuern des externen Zustandes zu steuern, wodurch dann, wenn die Schaltung zum Steuern des internen Zustandes aufgefordert wird, auf Daten zuzugreifen (IB REQ), die nicht in dem Cache-Speicher vorhanden sind (READ MISS), und eine Schreiboperation anhängig ist (DMA oder WRT PND), die Schaltung zum Steuern des internen Zustandes zuläßt daß die Schreiboperation beendet wird, bevor mit der Leseoperation weitergemacht wird.
2. Bus-Schnittstellenschaltung (33) nach Anspruch 1, wobei der Bus Steuersignale zum Steuern von Informationsübertragungen darüber enthält, wobei sowohl die Schaltung (270) zum Steuern des internen Zustandes als auch die Schaltung (271) zum Steuern des externen Zustandes die Steuersignale empfängt und in Antwort darauf arbeitet.
3. Bus-Schnittstellenschaltung (33) nach Anspruch 2, wobei eines der Steuersignale ein Signal zur direkten Speicherabfrage ist, das durch eine weitere Einheit aktiviert wird, wenn sie eine Informationsübertragung über den Bus (13) beginnen möchte, wobei die Schaltung (270) zum Steuern des externen Zustandes das Signal zur direkten Speicherabfrage empfängt und in Antwort darauf ein Signal zur direkten Speicherfreigabe erzeugt, um der weiteren Einheit zu erlauben, eine Informationsübertragung über den Bus zu beginnen, wobei auch die Schaltung zum Steuern des internen Zustandes das Signal zur direkten Speicheranfrage empfängt und in Antwort darauf und auf Signale von der Verarbeitungsschaltung ein Sperrsignal erzeugt, um die Schaltung zum Steuern des externen Zustandes davon abzuhalten, das Signal zur direkten Speicherfreigabe zu erzeugen.
4. Bus-Schnittstellenschaltung (33) nach Anspruch 2, wobei die Information Daten und Adressen enthält, wobei eine weitere Einheit in Antwort auf einen Empfang einer Adresse von dem Prozessor während einer Leseoperation Daten über den Bus (13) zu dem Prozessor (10) überträgt, wobei die Bus- Schnittstellenschaltung weiterhin einen Adressen-(Zwischen-)Speicher (251, 252) enthält, der sowohl mit der Schaltung (271) zum Steuern des internen Zustandes als auch mit der Schaltung (270) zum Steuern des externen Zustandes verbunden ist, wobei die Schaltung zum Steuern des internen Zustandes den Adressen-(Zwischen-)Speicher freigibt, eine Adresse von den Verarbeitungsschaltungen und dem eingangsseitigen (Zwischen-)Speicher zu empfangen, um die Daten in Antwort auf den Empfang eines Bereitschaftssignals zu empfangen, wobei die Schaltung zum Steuern des internen Zustandes die Einheit zum Anzeigen eines Zustandes freigibt, in Antwort auf den Empfang eines Lesefreigabesignals von den Verarbeitungsschaltungen ein Leseanfragesignal zu erzeugen, wobei die Schaltung zum Steuern des externen Zustandes das Leseanfragesignal empfängt und in Antwort darauf den Adressen-(Zwischen-)Speicher freigibt, die Adresse über den Bus zu senden, und Steuersignale zur Übertragung über den Bus erzeugt um die andere Einheit freizugeben, um während der Leseoperation darauf zu antworten.
5. Bus-Schnittstellenschaltung (33) nach Anspruch 4, wobei die Schaltung (271) zum Steuern des internen Zustandes weiterhin während einer Leseoperation ein Fehlersignal von dem Bus empfängt, wobei die Schaltung zum Steuern des internen Zustandes in Antwort darauf eine Operation zur Entdeckung eines Fehlers beginnt.
6. Bus-Schnittstellenschaltung (33) nach Anspruch 4, wobei der Prozessor weiterhin einen Cache-Speicher (35) enthält, wobei die Bus-Steuersignale weiterhin ein Cache-Steuersignal mit einer Vielzahl von Zuständen enthalten, wobei die Schaltung (271) zum Steuern des internen Zustandes das Cache-Steuersignal empfängt, das den Cache-Speicher selektiv freigibt, die Information in Antwort auf den Zustand des Cache-Steuersignals und das Bereitschaftssignal zu speichern.
7. Bus-Schnittstellenschaltung (33) nach Anspruch 4, wobei der Prozessor (10) weiterhin einen Cache-Speicher (35) enthält, der die Adresse von der Verarbeitungsschaltung empfängt und in Antwort darauf ein Treffersignal mit ausgewählten Zuständen erzeugt, wobei die Schaltung (271) zum Steuern des internen Zustandes das Treffersignal empfängt und die Einheit zum Anzeigen eines Zustandes freigibt, selektiv das Leseanfragesignal in Antwort auf den Zustand des Treffersignals zu erzeugen.
8. Bus-Schnittstellenschaltung (33) nach Anspruch 2, wobei die Verarbeitungsschaltung (30) Information erzeugt, die Daten und eine Adresse enthält, zur Übertragung über den Bus zu einer weiteren Einheit, wobei die Bus-Schnittstellenschaltung weiterhin einen Adressen-(Zwischen-)Speicher (251, 252) enthält, der mit der Verarbeitungsschaltung zum Empfangen der Adresse verbunden ist, wobei die Schaltung zum Steuern des internen Zustandes den Adressen-(Zwischen-)Speicher freigibt, die Adresse zu empfangen, und den ausgangsseitigen (Zwischen-)Speicher (250) freigibt, die Daten zu empfangen, und die Einheit zum Anzeigen eines Zustandes freigibt, ein Schreibanfragesignal zu erzeugen, wobei die Schaltung zum Steuern des externen Zustandes das Schreibanfragesignal empfängt und in Antwort darauf den Adressen- (Zwischen-)Speicher freigibt, die Adresse über den Bus zu senden, und den ausgangsseitigen (Zwischen-)Speicher freigibt, die Daten über den Bus zu senden, und Steuersignale zur Übertragung zu einer weiteren Einheit erzeugt, um sie dafür freizugeben, die Adresse und die Daten zu empfangen.
9. Bus-Schnittstellenschaltung (33) nach Anspruch 8, wobei der Cache-Speicher (35) in Antwort auf die Adresse ein Treffersignal mit ausgewählten Zuständen erzeugt, wobei die Schaltung (271) zum Steuern des internen Zustandes den Cache-Speicher freigibt, die Daten von den Verarbeitungsschaltungen während einer Schreiboperation in Antwort auf den Zustand des Treffersignals zu speichern.
10. Bus-Schnittstellenschaltung (33) nach Anspruch 1 zum Erzeugen von Information mit Adressen und Daten, und zum Erzeugen einer Übertragungstypanzeige, um eine Leseoperation oder eine Schreiboperation zu identifizieren wobei der Cache-Speicher (35), der mit der Verarbeitungsschaltung (30) zum Speichern von Information und zum Erzeugen eines Treffersignals mit ausgewählten Zuständen in Antwort auf den Empfang einer Adresse und der im Cache gespeicherten Information verbunden ist, wobei die Schnittstellenschaltung weiterhin folgendes enthält:
einen Adressen-(Zwischen-)Speicher (251, 252), der mit der Verarbeitungsschaltung verbunden ist und für einen Anschluß an den Bus (13), zum (Zwischen-)Speichern von Adressen von der Verarbeitungsschaltung (30);
die Schaltung zum Steuern des internen Zustandes, die mit dem Adressen-(Zwischen-)Speicher verbunden ist, zum Freigeben des Adressen- (Zwischen-)Speichers, Adressen von der Verarbeitungsschaltung zwischenzuspeichern, und zum Erzeugen von Übertragungsbeginn-Signalen, um in Antwort auf die Übertragungstypanzeige von der Verarbeitungsschaltung, den Zustand des Treffersignals vom Cache-Speicher (35), und die über den Bus empfangenen Steuersignale eine Leseoperation oder eine Schreiboperation zu beginnen; und
die Schaltung zum Steuern des externen Zustandes, die mit dem Adressen-(Zwischen-)Speicher verbunden ist, zum Erzeugen von Steuersignalen zum selektiven Freigeben der Inhalte des Adressen- (Zwischen-)Speichers.
DE3751426T 1987-02-24 1987-09-17 Busschnittstellenschaltung für digitalen Datenprozessor. Expired - Lifetime DE3751426T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/017,647 US4831520A (en) 1987-02-24 1987-02-24 Bus interface circuit for digital data processor

Publications (2)

Publication Number Publication Date
DE3751426D1 DE3751426D1 (de) 1995-08-31
DE3751426T2 true DE3751426T2 (de) 1996-03-14

Family

ID=21783770

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3751426T Expired - Lifetime DE3751426T2 (de) 1987-02-24 1987-09-17 Busschnittstellenschaltung für digitalen Datenprozessor.

Country Status (12)

Country Link
US (1) US4831520A (de)
EP (1) EP0283628B1 (de)
JP (1) JP2547424B2 (de)
KR (1) KR920004402B1 (de)
CN (1) CN1011356B (de)
AT (1) ATE125629T1 (de)
AU (1) AU589815B2 (de)
BR (1) BR8800537A (de)
CA (1) CA1287924C (de)
DE (1) DE3751426T2 (de)
IN (1) IN171632B (de)
MX (1) MX162024A (de)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5091845A (en) * 1987-02-24 1992-02-25 Digital Equipment Corporation System for controlling the storage of information in a cache memory
US4965721A (en) * 1987-03-31 1990-10-23 Bull Hn Information Systems Inc. Firmware state apparatus for controlling sequencing of processing including test operation in multiple data lines of communication
US5029074A (en) * 1987-06-29 1991-07-02 Digital Equipment Corporation Bus adapter unit for digital processing system
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
CA2003338A1 (en) * 1987-11-09 1990-06-09 Richard W. Cutts, Jr. Synchronization of fault-tolerant computer system having multiple processors
US5003459A (en) * 1988-04-01 1991-03-26 Digital Equipment Corporation Cache memory system
US5230067A (en) * 1988-05-11 1993-07-20 Digital Equipment Corporation Bus control circuit for latching and maintaining data independently of timing event on the bus until new data is driven onto
US5097437A (en) * 1988-07-17 1992-03-17 Larson Ronald J Controller with clocking device controlling first and second state machine controller which generate different control signals for different set of devices
IT1227711B (it) * 1988-11-18 1991-05-06 Caluso Torino Sistema multiprocessore di elaborazione dati a risorse distribuite condivise e prevenzione di stallo.
AU625293B2 (en) * 1988-12-09 1992-07-09 Tandem Computers Incorporated Synchronization of fault-tolerant computer system having multiple processors
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
JPH0687232B2 (ja) * 1988-12-19 1994-11-02 三菱電機株式会社 データ処理装置
CA1325288C (en) * 1989-02-03 1993-12-14 Ricky C. Hetherington Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
DE3923872A1 (de) * 1989-07-19 1991-01-24 Philips Patentverwaltung Schaltungsanordnung zum steuern des zugriffs auf einen speicher
GB2238694A (en) * 1989-12-02 1991-06-05 Motorola Inc "data interface system "
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5203004A (en) * 1990-01-08 1993-04-13 Tandem Computers Incorporated Multi-board system having electronic keying and preventing power to improperly connected plug-in board with improperly configured diode connections
US5307471A (en) * 1990-01-31 1994-04-26 Nec Corporation Memory controller for sub-memory unit such as disk drives
US5276852A (en) * 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
US5255374A (en) * 1992-01-02 1993-10-19 International Business Machines Corporation Bus interface logic for computer system having dual bus architecture
US5353429A (en) * 1991-03-18 1994-10-04 Apple Computer, Inc. Cache memory systems that accesses main memory without wait states during cache misses, using a state machine and address latch in the memory controller
US5291609A (en) * 1991-06-13 1994-03-01 Sony Electronics Inc. Computer interface circuit
US5265216A (en) * 1991-06-28 1993-11-23 Digital Equipment Corporation High performance asynchronous bus interface
US5471638A (en) * 1991-10-04 1995-11-28 Bull Hn Inforamtion Systems Inc. Bus interface state machines with independent access to memory, processor and registers for concurrent processing of different types of requests
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
US5388237A (en) * 1991-12-30 1995-02-07 Sun Microsystems, Inc. Method of and apparatus for interleaving multiple-channel DMA operations
CA2080210C (en) * 1992-01-02 1998-10-27 Nader Amini Bidirectional data storage facility for bus interface unit
EP0630499A4 (de) * 1992-03-09 1996-07-24 Auspex Systems Inc Beschleunigungssystem mit nichtflüchtigem, geschütztem, schreibbarem ram-cachespeicher.
DE4326740C1 (de) * 1993-08-09 1994-10-13 Martin Kopp Architektur für eine Rechenanlage
US5721882A (en) * 1994-08-05 1998-02-24 Intel Corporation Method and apparatus for interfacing memory devices operating at different speeds to a computer system bus
IES950209A2 (en) * 1995-03-24 1995-10-18 Lake Res Ltd Communication apparatus for communicating two microprocessors
US6260126B1 (en) 1998-06-05 2001-07-10 International Busines Machines Corporation Data storage subsystem having apparatus for enabling concurrent housekeeping processing while an input/output data transfer occurs
EP1226493B1 (de) * 1999-11-05 2006-05-03 Analog Devices, Inc. Busarchitektur und verteiltes busarbitrierungsverfahren für einen kommunikationsprozessor
US6961796B2 (en) * 2001-07-26 2005-11-01 Hewlett-Packard Development Company, L.P. Extendable bus interface
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7200024B2 (en) * 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7149874B2 (en) * 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US7054971B2 (en) * 2002-08-29 2006-05-30 Seiko Epson Corporation Interface between a host and a slave device having a latency greater than the latency of the host
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US7102907B2 (en) * 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
US7245145B2 (en) * 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) * 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7107415B2 (en) * 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7428644B2 (en) * 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7234070B2 (en) 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7257683B2 (en) * 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7213082B2 (en) * 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
US7447240B2 (en) * 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US6980042B2 (en) * 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
EP1815407B1 (de) * 2004-11-25 2011-07-27 Telecom Italia S.p.A. Kombination aus ic-karte und drahtlosem sender-/empfängermodul für mobilkommunikationsgeräte
CN100524267C (zh) * 2007-02-15 2009-08-05 威盛电子股份有限公司 数据处理系统及数据处理方法
US20080282072A1 (en) * 2007-05-08 2008-11-13 Leonard Todd E Executing Software Within Real-Time Hardware Constraints Using Functionally Programmable Branch Table
US8621154B1 (en) 2008-04-18 2013-12-31 Netapp, Inc. Flow based reply cache
US8161236B1 (en) 2008-04-23 2012-04-17 Netapp, Inc. Persistent reply cache integrated with file system
US8171227B1 (en) 2009-03-11 2012-05-01 Netapp, Inc. System and method for managing a flow based reply cache
CN107978292A (zh) * 2017-12-31 2018-05-01 河南思维轨道交通技术研究院有限公司 一种ttl液晶接口到lvds接口的转换电路和转换方法
CN111813726B (zh) * 2020-07-10 2023-03-07 中科芯集成电路有限公司 控制信号从高速总线向低速总线的转换方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2837214A1 (de) * 1978-08-25 1980-03-06 Siemens Ag Anordnung zum uebertragen von digitalen datensignalen
US4258417A (en) * 1978-10-23 1981-03-24 International Business Machines Corporation System for interfacing between main store memory and a central processor
JPS5714922A (en) * 1980-07-02 1982-01-26 Hitachi Ltd Storage device
US4503535A (en) * 1982-06-30 1985-03-05 Intel Corporation Apparatus for recovery from failures in a multiprocessing system

Also Published As

Publication number Publication date
EP0283628A3 (en) 1990-05-16
AU8003587A (en) 1988-08-25
CA1287924C (en) 1991-08-20
KR920004402B1 (ko) 1992-06-04
EP0283628A2 (de) 1988-09-28
MX162024A (es) 1991-03-22
JPS63208963A (ja) 1988-08-30
AU589815B2 (en) 1989-10-19
DE3751426D1 (de) 1995-08-31
CN1011356B (zh) 1991-01-23
US4831520A (en) 1989-05-16
KR880010365A (ko) 1988-10-08
JP2547424B2 (ja) 1996-10-23
IN171632B (de) 1992-11-28
CN87107293A (zh) 1988-09-07
ATE125629T1 (de) 1995-08-15
BR8800537A (pt) 1988-09-27
EP0283628B1 (de) 1995-07-26

Similar Documents

Publication Publication Date Title
DE3751426T2 (de) Busschnittstellenschaltung für digitalen Datenprozessor.
DE3854369T2 (de) Zentralprozessoreinheit für digitale datenverarbeitungsanordnung mit cache-speicherverwaltungsvorrichtung.
DE3786967T2 (de) Protokoll zum Ungültigerklären eines Cachespeichers für ein digitales Datenverarbeitungssystem.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69128565T2 (de) Mikrorechner ausgestattet mit einer DMA-Steuerung
DE69319763T2 (de) Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE69128107T2 (de) Busanordnung für Speicherzugriff
DE69524564T2 (de) Kohärenz- und synchronisationsmechanismus für ein-/ausgangkanalsteuereinheiten in einem datenverarbeitungssystem
DE68913914T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
DE69203842T2 (de) Speichersteuerungsvorrichtung mit Snoop-Mechanismus.
DE69127111T2 (de) Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher
DE69031367T2 (de) Blockübertragungs- und Koprozessorschnittstellenbefehl
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE2317870C2 (de) Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage
DE69027104T2 (de) Prozessor mit mehreren mikroprogrammierten Ausführungseinheiten
DE69812685T2 (de) System und verfahren zur spekulativen arbitrierung bei datenübertragung
DE68928343T2 (de) Schreib-Lese/Schreib-Weitergabe-Speichersubsystemzyklus
DE3735828C2 (de) Verfahren zur Wiederaufnahme der Ausführung von Anweisungen nach einer Unterbrechung in einer mikroprogrammgesteuerten Datenverarbeitungsvorrichtung
DE3587031T2 (de) Zugriffpruefungseinrichtung fuer digitale datenverarbeitungsanordnung, welche einen speicher mit seitenabruf hat.
DE69327150T2 (de) Einzelbefehl- und Mehrfachdatenarchitektur (SIMD) zur Verbindung mit dem Bus eines Hauptprozessors
DE68926761T2 (de) Mehrprozessorsystem mit einem mehranschlüssigen Cachespeicher
DE3854770T2 (de) Busadapter für digitales Rechensystem
DE68926878T2 (de) Verfahren zur Speicherung in nichtausschliessende Cachespeicherzeilen in Mehrprozessoranordnungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN