DE68928040T2 - Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren - Google Patents

Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren

Info

Publication number
DE68928040T2
DE68928040T2 DE68928040T DE68928040T DE68928040T2 DE 68928040 T2 DE68928040 T2 DE 68928040T2 DE 68928040 T DE68928040 T DE 68928040T DE 68928040 T DE68928040 T DE 68928040T DE 68928040 T2 DE68928040 T2 DE 68928040T2
Authority
DE
Germany
Prior art keywords
cpu
access
data
buffer
register
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
DE68928040T
Other languages
English (en)
Other versions
DE68928040D1 (de
Inventor
Vineet Dujari
Nicos Syrimis
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE68928040D1 publication Critical patent/DE68928040D1/de
Application granted granted Critical
Publication of DE68928040T2 publication Critical patent/DE68928040T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)

Description

  • Die Erfindung betrifft ein Pufferspeicher-Subsystem zur Verwendung in Datenverarbeitungssystemen, wie etwa ein Pufferspeicher-Subsystem, das den durch eine Periphene-Steuereinrichtung erfolgenden Zugriff auf in einem Pufferspeicher gespeicherte Daten erleichtert, und ein zugehoriges Verfahren.
  • Auf dem Gebiet der Datenverarbeitung verlangen Peripheneeinrichtungen, z.B. Einrichtungen zum massenweisen Speichern, Drucker, Modems und dgl., oft eine bestimmte Steuerlogik, um korrekt arbeiten zu können. Bei früheren, einfacheren Systemen wurden die von der Peripherie-Apparatur ausgeführten Operationen direkt durch die zentrale Verarbeitungseinheit (CPU) gesteuert; als jedoch die Systeme komplexer wurden, den komplexen Systemen weitere Peripheneeinrichtungen hinzugefügt wurden und die Geschwindigkeit von Datenverabeitungsoperationen zunahm, stellte sich heraus, daß CPUs die Peripherie-Apparaturen nicht adäquat steuern und gleichzeitig für andere Aufgaben - z.B. Systemsteuerung, Interface-Funktionen und Daten-Handhabung - zur Verfügung stehen konnten.
  • Bei früheren Systemen wurde eine CPU über einen Einfach-Datenkommunikationskanal oder -bus mit einer oder mehreren Penpheneeinrichtungen verbunden. Der Durchsatz des Einfach-Datenkommunikationsbusses verschlechterte sich jedoch sehr schnell, wenn die CPU den Versuch unternahm, auf zwei oder mehr Einrichtungen zuzugreifen oder mit ihnen zu kommunizieren.
  • Als die Peripherie-Apparaturen effizienter wurde, konnte jede Einrichtung mehr Aktivitäten schneller durchführen, wodurch sich der Gesamt-Ausnutzungsgrad des Datenkommunikationsbusses verbesserte. Diese Verbesserung der Bus-Kommunikation führte zu einem erhöhten Risiko eines Daten-Engpasses. Somit wurden komplexere Arbitrierungsmechanismen erforderlich, um die Kommunikation zwischen den Einrichtungen der Peripherie-Apparatur und der CPU zu steuern.
  • Ein großer Fortschritt bei der Effizienz von Datenverarbeitungssystemen trat ein, als Steuereinrichtungen dahingehend entwickelt wurden, daß sie Peripheneeinrichtungen intelligent steuern konnten und somit die CPUs für andere Operationen verfügbar wurden. Jede Peripherie-Steuereinrichtung war dazu vorgesehen, einzelne Peripheneeinrichtungen auf dem Bus zu steuern. Fur eine Peripherie-Steuereinrichtung ist es sehr effizient, wenn sie eine oder mehrere Einrichtungen des gleichen Typs steuern kann (z.B. magnetische Festplatten).
  • Um die Effizienz des Systems weiter zu erhöhen, wurden später zwei Kommunikationsbusse vorgesehen. Auf diese Weise konnte für die Hochgeschwindigkeitskommunikation zwischen der Penpherie-Steuereinrichtung und den Peripheneeinrichtungen ein mit hoher Geschwindigkeit betriebener, effizienter Datenkommunikationsbus verwendet werden. Andererseits konnte zwischen der CPU und der Peripherie-Steuereinrichtung ein langsamerer, weniger effizienter CPU-Datenkommunikationsbus verwendet werden, da die Datenkommunikation zwischen der CPU und der Steuereinrichtung generell nicht mit der gleichen hohen Geschwindigkeitsrate gehandhabt zu werden braucht wie die Kommunikation zwischen der Steuereinrichtung und der Peripheneeinrichtung für die gesamte System-Handhabung.
  • Das IBM Technical Disclosure Bulletin Vol 26, No. 11, S. 5956-5959 "Transparent Mode in an I/O Controller" beschreibt ein System, in dem die CPU I/O-Einrichtungen zu Arbitrierungszwecken über eine I/O-Steuereinrichtung mit fester Länge der Buszugriffszyklen steuert.
  • Auch die Verwendung eines dynamischen Speichers als Puffereinrichtung, die mit dem zwischen den Peripheneeinrichtungen und der Peripherie-Steuereinrichtung verlaufenden Kommunikationsbus verbunden ist, hat sich als sehr effektiv erwiesen. Der Pufferspeicher ermöglichte ein zeitweiliges Speichern von Daten aus der Peripheneeinrichtung (z.B. einer Platte), z.B. bei Anstehen einer Korrektur. Dies konnte durchgeführt werden, während Daten, die aus einem Hochgeschwindigkeits-Datenkommunikationsbus - z.B. bei einem mit einem Host-Prozessor verbundenen kleinen Computersystem-Interface (SCSI) - in das System eingegeben wurden, direkt zu der Periphene-Steuereinrichtung übertragen werden konnten. Auf diese Weise braucht die Kommunikation zwischen der Peripheneeinrichtung und der Peripherie-Steuereinrichtung nicht andere, mit höherer Geschwindigkeit erfolgende Kommunikation zwischen dem Host-Prozessor und dem Rest des Peripherie-Subsystems zu beschränken.
  • Der zwischen der Peripherie-Steuereinrichtung und dem Pufferspeicher verlaufende Datenkommunikationsbus ist als Puffer-Bus bekannt. Obwohl die Peripherie-Steuereinrichtung in den meisten Fällen einen auf den Puffer-Bus zugreift, ist es gelegentlich die CPU, die den Zugriff auf Einrichtungen benötigt, welche auf dem Puffer-Bus angeordnet sind. In diesen Fällen, wenn sich die CPU und die Peripherie-Steuereinrichtung hinsichtlich des Puffer-Busses in Konflikt befinden, ist ein Arbitrierungsmechanismus erforderlich.
  • Bislang war ein Arbiter zwischen dem Puffer-Bus und der Penpherie-Steuereinrichtung und der CPU vorgesehen. Dieser Arbiter bestand aus einer externen Logikeinrichtung, die separate Transceiver zur Kommunikation mit der Periphene-Steuereinrichtung und mit der CPU erforderte. In letzter Zeit haben sich aufgrund des Wunsches nach einer geringeren Anzahl von Komponenten, die auf gedruckten Schaltungsplatten weniger Platz benötigen, die Arbiter gemäß der vorstehenden Beschreibung als ungeeignet erwiesen.
  • Es ist wünschenswert, eine Arbiter-Funktion zu schaffen, ohne eine externe Logikeinrichtung zu verwenden.
  • Es ist ferner wünschenswert, einen Arbitrierungsmechanismus zu schaffen, der sich innerhalb einer Peripherie-Steuereinrichtung selbst befindet.
  • Es ist ferner wünschenswert, einer CPU im Bedarfsfall den Zugriff auf einen Puffer-Bus zu ermöglichen, ohne daß ein Konflikt mit einer Peripherie-Steuereinrichtung entsteht.
  • Es ist ferner wünschenswert, einem Pufferspeicher-Subsystem zu ermöglichen, mit zwei separaten Kommunikationsbussen zu arbeiten, die voneinander isoliert sind.
  • Es ist ferner wünschenswert, einen Arbitrierungsmechanismus zur Anordnung innerhalb einer Peripherie-Steuereinrichtung zu schaffen, der zwischen Pufferbuszugriffs-Anforderungen von mehreren Initiierungs-Einrichtungen entscheidet.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Gemäß einem Aspekt der Erfindung wird ein gemäß den Ansprüchen ausgebildetes Pufferspeicher-Subsystem für eine Peripherie- Steuereinrichtung geschaffen.
  • KURZBESCHREIBUNG DER FIGUREN
  • Ein umfassendes Verständnis der Erfindung ergibt sich aus den zugehörigen Figuren im Zusammenhang mit der detaillierten Figurenbeschreibung.
  • Fig. 1 zeigt ein Blockschaltbild des Pufferspeicher-Subsystems gemäß der Erfindung;
  • Fig. 2 zeigt ein Blockschaltbild der Periphene-Steuereinrichtung des Pufferspeicher-Subsystems;
  • Fig. 3 zeigt ein Blockschaltbild des Arbitrierungsmechanismus der Peripherie-Steuereinrichtung; und
  • Fig. 4 zeigt ein Adressenzuordnungs-Schaubild der Peripherie- Steuere inrichtung; und
  • Fig. 5 zeigt ein Blockschaltbild des Pomter-Steuermechanismus, der den Speicherzugriff steuert.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Fig. 1 zeigt ein Blockschaltbild des gemäß der Erfindung ausgebildeten Pufferspeicher-Subsystems, das auch als Plattensteuereinrichtung bezeichnet wird. Bei dem Subsystem handelt es sich um eine intelligente Peripheneeinrichtung, die zur Verbindung mit einem Mikroprozessor oder einer Mikrosteuereinrichtung vorgesehen ist und die Aufgaben des Handhabens des seriellen Formats der Daten, der Daten-Integrität und der Plattendatenverwaltung übernimmt. Ein generell mit 10 bezeichneter, gestrichelt gezeigter Prozessor weist einen RAM/ROM- Speicher 12, eine zentrale Verarbeitungseinheit 14 und ein Platten-Interface 16 auf. Der Prozessor 10 kann auf einem einzigen IC-Chip ausgebildet sein, wie in der Figur gestrichelt gezeigt, wobei jedoch zu beachten ist, daß der Prozessor 10 eine Logikeinrichtung mit drei separaten Komponenten ist: einem Speicher 12, einer CPU 14 und einem Platten-Interface 16. Der Prozessor 10 führt die SCSI-Befehls-Interpretation, die Platten-Datenraum-Zuordnung, die mechanische Steuerung von Platten und die System-Interface-Handhabung durch. Zur Vereinfachung der Beschreibung und zur Vermeidung einer Verwechslung mit einem noch zu beschreibenden Host-Prozessor wird der Prozessor 10 im folgenden als CPU 10 bezeichnet.
  • Die CPU 10 ist mit einer Peripherie-Steuereinrichtung 20 verbunden, die über einen CPU-Bus 22 mit den Komponenten der CPU 10 verbunden ist.
  • Ferner ist ein Host-Adapter 24 mit der Periphene-Steuereinrichtung 20 verbunden. Der Host-Adapter 24 ist über einen geeigneten Hochgeschwindigkeits-Datenkommunikationsbus, z . B. einen SCSI-Bus, mit einem nicht gezeigten Host-Prozessor verbunden. Der Host-Adapter 24 ist über einen 8 Bit breiten Puffer-Bus 26 mit der Peripherie-Steuereinrichtung 20 verbunden. Dieser Puffer-Bus 26 besteht tatsächlich aus einem Adress-Abschnitt und einem Daten-Abschnitt, die in der Figur nicht unterschieden sind. Ferner sind mit dem Puffer-Bus 26 ein externer Pufferspeicher 28 und ein Fehlerprozessor 30 verbunden.
  • Die Peripherie-Steuereinrichtung 20 ist jederzeit der Master des Pufferspeicherbusses 26. Die CPU 10 kann auf diesen Bus nur dann zugreifen, wenn die Peripherie-Steuereinrichtung 20 eine erforderliche Arbitrierung durchführt, wie noch genauer beschrieben wird. Die Host-Daten-Übertragungen zwischen einer SCSI-Einrichtung, z.B. einem nicht gezeigten Prozessor, und dem externen Pufferspeicher 28 können auf dem Puffer-Bus 26 erfolgen, ohne den CPU-Datenbus 22 zu beeinträchtigen. Dies bedeutet, daß das zwischen dem Host und der Peripherie-Steuereinrichtung vorgesehene Interface voll autonom und unabhängig von der CPU 10 ist. Eine direkte Steuerungs-/Daten-Verbindung ermöglicht den beiden Einrichtungen, programmierte Datenübertragungen mit nur minimaler CPU-Intervention durchzuführen.
  • Ferner ist in dem System eine Platte 32 vorgesehen, die mittels einer Leitung 34 mit der CPU 10 verbunden ist. Bei der bevorzugten Ausführungsform ist die Platte 32 eine magnetische Festplatte, sie kann jedoch als eine optische Festplatte oder irgendeine andere geeignete Form von Massenspeichereinrichtung ausgebildet sein. Zwischen der Platte 32 und der Peripherie- Steuereinrichtung 20 sind ein Daten-Kodierer und -Dekodierer 36 und eine Platten-Lese-/Schreib-Logikeinrichtung 38 angeordnet.
  • Fig. 2 zeigt ein detaillierteres Blockschaltbild der Peripherie-Steuereinrichtung 20 (Fig. 1). Eine Pufferbus-Interface- Steuereinrichtung 40 wird für die Arbitrierung von Daten verwendet, die über den Puffer-Bus 26 übertragen werden sollen.
  • Eine Steuereinrichtung 42 für den nicht gezeigten Host-Prozessor, die dem Host-Adapter 24 (Fig. 1) entspricht, ist mit der Pufferbus-Interface-Steuereinrichtung 40 verbunden. Ferner ist eine Fehlerprozessor-Steuereinrichtung 44, die dem Fehlerprozessor 30 (Fig. 1) entspricht, mit der Pufferbus-Interface- Steuereinrichtung 40 verbunden. Ferner ist eine Pufferspeicher-Steuereinrichtung 46, die dem externen Pufferspeicher 28 (Fig. 1) entspricht, mit der Pufferbus-Interface-Steuereinrichtung 40 verbunden. Die Pufferspeicher-Steuereinrichtung 46 ist für die Daten-Pufferung und -Handhabung verantwortlich. Unter direkter Steuerung von bis zu 4 Mbytes des dynamischen Pufferspeichers wird der Datenfluß zwischen der Platte 32 und dem Host-Prozessor-Bus durch die Pufferspeicher-Steuereinrichtung 46 gehandhabt, ohne daß eine CPU-Intervention erfolgt.
  • Mit einem internen Sequencer-Datenbus 48 sind die Pufferbus- Interface-Steuereinrichtung 40 und eine Benutzer-Register Datei 50, ein internes Sequencer-RAM 52 und eine Sequencer- Einheit 53 verbunden, die einen 16-Bit-Sequencer 54 und ein Sequencer-Programm-ROM 56 enthält.
  • Ferner ist mit dem internen Sequencer-Bus 48 eine Format-Steuereinrichtung 60 verbunden. Bei der Formatsteuerung, die bei der bevorzugten Ausführungsform in der Software vorgesehen ist, handelt es sich um eine Funktion, die entsprechend vorbestimmten Kriterien des Benutzer-Platten-Protokolls geladen werden kann. Die Format-Steuereinrichtung 60 kann jedoch bei alternativen Ausführungsformen auch hartverdrahtet sein, um eine feste Formatsteuerung zu schaffen.
  • Ein Deserialisierer 62 ist mit einem First-in-first-out-Register (FIFO) 64 verbunden, das seinerseits mit einem Puffer 66, der an den Puffer-Bus 26 angeschlossen ist, verbunden ist.
  • Ferner ist eine zur Detektion und Korrektur interner Fehler vorgesehene Logikeinrichtung 68 vorgesehen, die mit dem FIFO- Register 64 verbunden ist. Mit dem FIFO 64 ist ein Serialisierer 70 verbunden, um Daten in eine für die Platte 32 (Fig. 1) geeignete Form zu konvertieren.
  • Bei 72 ist eine Einrichtung gezeigt, die eine Platten-Statusund -Steuer-Logik beinhaltet. Diese Einheit 72 initiiert Signale vor dem Lesen von der Platte 32 oder dem Schreiben auf die Platte 32. Die Initiierungs-Signale können auch durch die Format-Steuereinrichtung 60 erzeugt werden. Mit der Benutzer- Register-Datei so ist ein CPU-Interface 74 verbunden, das an den CPU-Bus 22 (Fig. 1) angeschlossen ist.
  • Fig. 3 zeigt ein detailliertes Blockschaltbild des gemäß der Erfindung vorgesehenen Arbitrierungsmechanismus, der in der Pufferbus-Interface-Steuereinrichtung 40 (Fig. 2) der Penpherie-Steuereinrichtung 20 (Fig. 1) ausgebildet ist.
  • Die Pufferbus-Interface-Steuereinrichtung 40 ist zwischen dem CPU-Kommunikationsbus 22, der einen Adress-Bus 22a und einen Daten-Bus 22b aufweist, und den beiden Abschnitten (Adressund Daten-Abschnitte) des Puffer-Busses 26 angeordnet. Das Herzstück der Pufferbus-Interface-Steuereinrichtung 40 ist eine Bus-Arbiter-Einheit 100. Der Arbiter 100 kann vorbelegbar ausgebildet sein und kann in Abhängigkeit von den Erfordernissen des vom Benutzer gewünschten Anwendungsfalls Einfach-Byteoder Mehrfach-Byte-Bursts stützen.
  • Mit dem Arbiter 100 sind eine Intern-Sequencer-Zugriffs-Logik- Einheit 102, eine Host-Adapter-Anforderungs-Logik-Einheit 104, eine Daten-FIFO-steuer-Logik-Einheit 106, eine Auffrisch-Anforderungs-Logik-Einheit 108 und eine CPU-Zugriffs-Anforderungs-Logik-Einheit 110 verbunden. Jede der soeben genannten Einheiten 102-110 ist über Anforderungs- und Bestätigungsleitungen, die auf herkömmliche Weise verwendet werden, mit dem Arbiter 100 verbunden.
  • Mit der Host-Adapter-Anforderungs-Logik-Einheit 104 sind Leitungen zu der Host-Adapter-Steuereinrichtung 42 verbunden. Ein Interface-Port 112 ist mit dem Puffer-Daten-Bus 26b, dem Daten-Abschnitt des Puffer-Busses 26, verbunden. Mit dem Interface-Port 112 ist ferner eine Leitung 115 verbunden, an die der CPU-Daten-Bus 22b angeschlossen ist.
  • Eine Platten-Daten-FIFO-Einheit 116 ist über die Leitung 114 sowohl mit der Daten-FIFO-Steuer-Logik-Einheit 106 als auch mit dem Interface-Port 112 verbunden. Die Platten-Daten-FIFO- Einheit 116 ist ferner in der Lage, Daten an den Platten-Daten-Serialisierer 70 (Fig. 2) zu übertragen und Daten von dem Platten-Daten-Deserialisierer 62 zu empfangen.
  • Mit dem Puffer-Adress-Bus 26a ist eine Reihe von Pomtern verbunden, die generell bei 120 gezeigt sind. Zu den Pomtern 120 zählen ein Sequencer-Pointer 120a, ein CPU-Pointer 120b, ein Platten-Daten-Pomter 120c und ein Auffrisch-Adressen-Pomter 120d. Zwischen diese Pomter 120 und den Puffer-Adress-Bus 26a ist ein Adress-Multiplexer-Treiber 122 geschaltet, der es ermöglicht, Adressen von einem Pomter auf einmal auf den Adress-Abschnitt des Puffer-Busses 26 zu laden.
  • Ferner ist eine Logik-Einheit zum Erzeugen von Steuersignalen vorgesehen, die mit 124 bezeichnet ist. Die Einheit 124 ist in der Lage, mehrere Pufferspeicher-Lese-/Schreib-Steuersignale sowie Einrichtungs-Lese- und Einrichtungs-Schreib-Signale und Host-Adapter- und Fehler-Prozessor-Wahl-Signale zu erzeugen.
  • Fig. 4 zeigt ein Adress-Zuordnungs-Schaubild für die Periphene-Steuereinrichtung 20 (Fig. 1)
  • Die Peripherie-Steuereinrichtung 20 weist einen Adress-Raum mit 256 byte-breiten Stellen auf. Von diesen 256 Stellen sind 128 Adressen (00 bis 7F) in interne Register abgebildet. Die übrigen Adressen (80 bis FF) ermöglichen der CPU 10 den Zugriff auf Einrichtungen/den Speicher über den Puffer-Bus 26.
  • Die Datei des internen Registers kann ferner in Hardware-Parameter, Betriebs-Parameter, Befehls-Parameter und Status-Parameter unterteilt werden. Zusätzlich leistet ein Master-Steuer- Register die Gesamt-Einrichtungs steuerung.
  • Die untersten 128 Stellen, von der Adresse 00 bis zu der Adresse 7F, die auf interne Register verweisen, sind generell mit 200 bezeichnet. Die Stellen 80 bis 9F repräsentieren 32 Stellen, die mit 202 bezeichnet sind. Diese Stellen sind in der Host-Adapter-Einrichtung 24 (Fig. 1) abgebildet. Bei den folgenden reservierten Stellen 204, die Adressen A0 bis BF aufweisen, handelt es sich um 32 Stellen von der Adresse C0 bis zu der Adresse DF, die Stellen repräsentieren, welche in dem Fehlerprozessor 30 (Fig. 1) abgebildet sind und mit 206 bezeichnet sind. Schließlich sind - von der Adresse E0 bis zu der Adresse FF - 32 Stellen 208 gezeigt, die in dem externen Pufferspeicher 28 (Fig. 1) abgebildet sind.
  • Der externe Pufferspeicher 28 (Fig. 1) kann mittels eines Adress-Pointers einen Zugriff durch die CPU 10 erfahren. Es sind drei Datenzugriffsmechanismen vorgesehen: fester Modus, sequentieller Modus und Random-Modus. In dem festen Modus kann die CPU wiederholt auf die Stelle zugreifen, auf die der CPU- Pomter weist. In dem sequentiellen Modus kann die CPU auf einander angrenzende Stellen in dem Speicher zugreifen, ohne den Pomter zu aktualisieren. (Die Peripherie-Steuereinrichtung inkrementiert den Pomter nach jedem Zugriff.) Bei dem Random-Modus ist ein beliebiger Zugriff auf jeden 32-Bit-Abschnitt erlaubt, ohne den Pomter neuzuschreiben.
  • Fig. 5 zeigt eine Detailansicht des CPU-Pufferspeicher-Pointer-Mechanismus. Ein 24 Bit breiter Pomter 260 nimmt drei byte-breite Stellen in dem Raum 200 (Fig. 4) des internen Registers der Peripherie-Steuereinrichtung 20 ein. Die Bits 23 und 24 des Pointers 260 sind ungenutzt, da bei der bevorzugten Ausführungsform die Peripherie-Steuereinrichtung nur einen externen Speicher 28 von 4 Mbyte stützt.
  • Der Pomter 260 kann ferner in zwei Abschnitte unterteilt werden: einen 17-Bit-Paragraphen-Pointer 250, der einen 32- Byte-Bereich oder -Paragraphen 256 in dem Pufferspeicher 28 identifiziert, und einen 5-Bit-Offset-Pointer 252, der ein spezifisches Byte innerhalb des 32-Byte-Paragraphen 256 identifiziert.
  • Wie im weiteren erläutert, sind verschiedene Speicherzugriffsmodi vorgesehen. Der 5-Bit-Offset-Wert kann von der CPU 10 direkt angewandt werden.
  • Bei Betrieb arbeitet das Pufferspeicher-Subsystem derart, daß es der CPU 10 erlaubt, mittels eines Durchfluß-Zugriffs-Modus auf Einrichtungen und Speicher auf dem Pufferbus zuzugreifen. Von dem gesamten Adress-System des Subsystems (256 Stellen - A[7:0]) sind nur die unteren 128 Stellen (00 bis 7F) in den internen Registern abgebildet. Jedes Mal, wenn die CPU 10 auf eine Stelle in den oberen 128 Bytes (80 bis FF) zugreift, wird diese Anforderung in eine Zugriffsanforderung für den Pufferbus 26 übersetzt.
  • Die CPU kann auf den Pufferspeicher 28 während der normalen Warmlauf-Sequenz zugreifen, um den Speicher-Betrieb zu prüfen; während der Fehler-Rückgewinnung (was relativ selten eintritt); und wenn Datenübertragungsoperationen initiiert werden sollen.
  • Die Abfolge der Ereignisse für den durch die CPU 10 erfolgenden Zugriff auf den Pufferbus 26 ist wie folgt beschaffen:
  • 1) Die CPU 10 beginnt einen Durchflußzyklus durch Zugreifen auf eine Speicherstelle im Bereich von 80 bis FF;
  • 2) der Zyklus wird durch Negieren eines READY-Signals ausgedehnt;
  • 3) die Adresse wird durch die CPU-Zugriffs-Anforderungs-Logik-Einheit 110 dekodiert, um die für den Zugriff vorgesehene Pufferbus-Einrichtung/Speichereinrichtung zu bestimmen, und es wird eine Anforderung für den internen Bus- Arbiter 100 erzeugt;
  • 4) wenn der Bus-Arbiter 100 die CPU-Zugriffs-Anforderung akzeptieren kann, wird der entsprechende Zyklus durchgeführt; und
  • 5) der Zyklus wird durch Ausgeben des READY-Signals beendet.
  • Der Pufferbus-Arbiter 10& benutzt ein festes Prioritätenschema mit den folgenden Prioritäten, die im folgenden in absteigender Ordnung aufgelistet sind:
  • CPU-Anforderung
  • Intern-Sequencer-Anforderung (zur Fehlerkorrektur)
  • Auffrischungs -Anforderung
  • FIFO zu/von Puffer
  • Host-Adapter zum/vom Puffer
  • Wie bereits erwähnt, werden zusätzlich zu dem Pufferspeicher 28 zwei Einrichtungen auf dem Pufferbus 26 gestützt: die Host- Adapter-Einrichtung 24 und der Fehlerprozessor 30. Wenn die CPU 10 auf eine Adresse zugreift, die in einer dieser Einrichtungen 24 oder 30 abgebildet ist, erfolgt ein Zugriff auf die gewählte Einrichtung. Die der Einrichtung 24 oder 30 zugeführte Adresse ist die gleiche wie die Adresse auf den unteren fünf Bits 258 der CPU-Adress-Leitungen (A[A:0]). Die oberen Bits 260 werden auf bw gesteuert.
  • Die Adressen 80 bis 9F sind in der Host-Adapter-Einrichtung 24 abgebildet, und die Adressen CO bis DF sind in dem externen Fehlerprozessor 30 abgebildet.
  • Der externe Pufferspeicher 28 kann jederzeit einen Zugriff durch die CPU 10 erfahren, indem an dem im Pufferspeicher 28 abgebildeten Registerraum ein Lese- oder Schreibvorgang vorgenommen wird. Dies bedeutet, daß die Pufferspeicher-Stelle als eine Registerstelle des Subsystems der CPU 10 erscheint. Jedes Mal, wenn die CPU 10 einen Pufferspeicher-Zugriff initiiert, indem sie auf den entsprechenden Registerraum zugreift, wird der verlangte Zugriff durchgeführt. Zum Durchführen des Zugriffs muß der Arbiter 100 einen Arbitrierungsvorgang ausführen, da der Pufferbus 26 zu diesem Zeitpunkt möglicherweise für einen anderen Zyklus benötigt wird. Das READY-Signal wird verwendet, um den CPU-Zyklus wie gewünscht zu verlängern.
  • Ein Teil der Adresse der zum Zugriff vorgesehenen Pufferspeicher-Stelle wird von dem Pufferspeicher-Pomter 260 erzeugt, der während vorheriger Schreib-Zyklen durch die CPU 10 geladen worden ist. Es sind drei Pufferspeicher-Zugriffs-Modi vorgesehen: fester Zugriffs-Modus, sequentieller Zugriffs-Modus und Paragraphen-Random-Modus. Sie können durch entsprechendes Programmieren eines nicht gezeigten Pointer-Steuerregisters gewählt werden.
  • In dem festen Zugriffs-Modus ist ein Zugriff auf die von dem CPU-Pointer adressierte Stelle vorgesehen. Jedes Mal, wenn die CPU 10 auf die Adress-Stelle EO zugreift, erfolgt ein Zugriff auf die Stelle, auf die der CPU-Pointer weist. Der an dieser Speicherstelle gespeicherte Wert wird an die CPU 10 rückgeführt, um die Lese-Operation abzuschließen. Es ist zu beachten, daß das Schreiben von Daten in den Pufferspeicher auch jederzeit dadurch erfolgen kann, daß der bereits erwähnte Pomter-Mechanismus verwendet wird. Anders ausgedrückt, können gemäß der vorliegenden Beschreibung jedes Mal, wenn ein Zugriff auf den Speicher möglich ist, die Daten durch Verwendung des gleichen Zugriffsmechanismus gelesen oder geschrieben werden. Nachfolgende CPU-Zugriffe auf andere Stellen in dem Pufferspeicher 28 verlangen ein Aktualisieren des CPU-Pointers.
  • Die speziellen Schritte, die in dem festen Zugriffs-Modus verwendet werden, sind die folgenden:
  • 1) Die CPU programmiert den CPU-Pointer mit der Adresse der gewünschten Speicherstelle;
  • 2) die CPU programmiert das Pomter-Steuerregister mit dem Code für den festen Zugriffs-Modus;
  • 3) die CPU initiiert einen Peripherie-Steuereinrichtungs- Zugriffszyklus an der entsprechenden Registerstelle (E0 bei der bevorzugten Ausführungsform);
  • 4) die CPU initiiert einen Lese-Zyklus oder einen Schreib- Zyklus, je nach Situation;
  • 5) die CPU-Zugriffs-Anforderungs-Logik detektiert den CPU- Zugriff, erzeugt eine Anforderung für den Bus-Arbiter, und verlängert den CPU-Zyklus durch Negieren des READY-Signals;
  • 6) wenn der Bus-Arbiter die Durchführung des CPU-Zugriffs- Zyklus erlaubt, übermittelt der CPU-Pointer die Adresse der gewünschten Stelle an den Pufferspeicher;
  • 7) die Daten werden aus der adressierten Speicherstelle ausgelesen und an die CPU rückgeführt (Lese-Zyklus), oder die von der CPU gelieferten Daten werden in der adressierten Speicherstelle eingeschrieben (Schreib-Zyklus), je nach Situation; und
  • 8) der CPU-Zugriffs-Zyklus wird durch Ausgeben des READY- Signals beendet.
  • In dem sequentiellen Zugriffs-Modus erfolgt jedes Mal, wenn die CPU auf die Stellen-Adresse EO zugreift, ein Zugriff auf die Stelle, auf die der CPU-Pointer weist. Für Lese-Operationen wird der an dieser Speicherstelle gespeicherte Wert an die CPU 10 rückgeführt. Ferner wird der CPU-Pointer inkrernentiert.
  • Falls die CPU 10 erneut auf die Registerstelle EO zugreift, ohne den CPU-Pointer zu aktualisieren, erfolgt ein Zugriff auf die nächste sequentielle Speicherstelle, und für Lese-Operationen wird der an dieser Speicherstelle gespeicherte Wert an die CPU 10 rückgeführt. Dies erlaubt einen schnellen sequen tiellen Zugriff auf den Pufferspeicher 28, ohne daß die CPU 10 wiederholte Aktualisierungen des CPU-Pointers durchzuführen braucht.
  • Die speziellen Schritte, die bei dem sequentiellen Zugriffs- Modus verwendet werden, sind die folgenden:
  • 1) Die CPU programmiert den CPU-Pointer mit der Adresse des ersten Speicherstellen-Arrays, auf das in einer Sequenz zugegriffen werden soll;
  • 2) die CPU programmiert das Pomter-Steuerregister mit dem Code für den sequentiellen Zugriffs-Modus;
  • 3) die CPU initiiert einen Peripherie-Steuereinrichtungs- Zugriffszyklus an der entsprechenden Registerstelle (EO bei der bevorzugten Ausführungsform);
  • 4) die CPU initiiert einen Lese-Zyklus oder einen Schreib- Zyklus, je nach Situation;
  • 5) die CPU-Zugriffs-Anforderungs-Logik detektiert den CPU- Zugriff, erzeugt eine Anforderung für den Bus-Arbiter, und verlängert den CPU-Zyklus durch Negieren des READY-Signals;
  • 6) wenn der Bus-Arbiter die Durchführung des CPU-Zugriffs- Zyklus erlaubt, übermittelt der CPU-Pointer die Adresse der gewünschten Stelle an den Pufferspeicher;
  • 7) die Daten werden aus der adressierten Speicherstelle ausgelesen und an die CPU rückgeführt (Lese-Zyklus), oder die von der CPU gelieferten Daten werden in der adressierten Speicherstelle eingeschrieben (Schreib-Zyklus), je nach Situation;
  • 8) der CPU-Zugriffs-Zyklus wird durch Ausgeben des READY- Signals beendet;
  • 9) die Peripherie-Steuereinrichtung inkrementiert den CPU- Pointer derart, daß dieser auf die nächste Stelle in dem Pufferspeicher weist; und
  • 10) die CPU greift wahlweise auf die nächste Stelle in dem Pufferspeicher zu, indem sie die oben erwähnten Schritte (3) - (8) ausführt.
  • In dem Paragraphen-Random-Modus wird jedes Mal, wenn die CPU 10 auf die Stellen E0 bis FF zugreift, die Adresse der zum Zugriff vorgesehenen Stelle errechnet, indem die oberen Bits in dem CPU-Pointer und die unteren fünf Bits aus der von der CPU 10 zugeführten Register-Adresse verkettet werden. Die in dieser Weise gebildet Adresse wird verwendet, um auf den Pufferspeicher 28 zuzugreifen, und bei Lese-Operationen wird der in diesem gespeicherte Wert an die CPU 10 rückgeführt.
  • Dieser Modus erlaubt der CPU 10, zuerst einen Pomter zu einem 32-Byte-Paragraphen des Pufferspeichers 28 zu erstellen, indern sie die Basis-Adresse dieses Paragraphen in den CPU-Pointer schreibt. Dann kann die CPU in schneller, beliebiger Weise auf diesen Speicherblock zugreifen. Die Adressen E0 bis FF sind in den Pufferspeicher 28 abgebildet.
  • Die speziellen Schritte, die bei dem Paragraphen-Random-Zugriffs-Modus verwendet werden, sind die folgenden:
  • 1) Die CPU programmiert den CPU-Pointer mit der Basis-Adresse der Adresse irgendeiner Speicherstelle in dem Paragraphen, da bei diesem Modus die unteren fünf Bits des Pointers nicht verwendet werden;
  • 2) die CPU programmiert das Pointer-Steuerregister mit dem Code für den Paragraphen-Random-Zugriffs-Modus;
  • 3) die CPU initiiert einen Peripherie-Steuereinrichtungs- Zugriffszyklus an der entsprechenden Registerstelle (E0-FF bei der bevorzugten Ausführungsform);
  • 4) die CPU initiiert einen Lese-Zyklus oder einen Schreib- Zyklus, je nach Situation;
  • 5) die CPU-Zugriffs-Anforderungs-Logik detektiert den CPU- Zugriff, erzeugt eine Anforderung für den Bus-Arbiter, und verlängert den CPU-Zyklus durch Negieren des READY-Signals;
  • 6) wenn der Bus-Arbiter die Durchführung des CPU-Zugriffs- Zyklus erlaubt, übermittelt der CPU-Pointer die oberen 19 Bits der Adresse, wobei die unteren 5 Bits der Adresse aus denjenigen Bits erhalten werden, die von der CPU in deren aktuellem Zugriffs-Zyklus angewandt werden;
  • 7) die Daten werden aus der adressierten Speicherstelle ausgelesen und an die CPU rückgeführt (Lese-Zyklus), oder die von der CPU gelieferten Daten werden in der adressierten Speicherstelle eingeschrieben (Schreib-Zyklus), je nach Situation;
  • 8) der CPU-Zugriffs-Zyklus wird durch Ausgeben des READY- Signals beendet;
  • 9) die CPU greift wahlweise auf irgendeine andere Stelle in dem adressierten 32-Byte-Block in dem Pufferspeicher zu, indem sie die oben erwähnten Schritte (3) - (8) ausführt.
  • Obwohl vorstehend drei Verfahren beschrieben wurden, mit denen die CPU 10 auf den Pufferspeicher 28 zugreifen kann, kann die CPU 10 auch auf Host-Adapter-Register zugreifen, und zwar speziell in der folgenden Weise:
  • 1) Die CPU initiiert einen Peripherie-Steuereinrichtungs- Zugriffs-Zyklus an der entsprechenden Registerstelle (80-9F bei der bevorzugten Ausführungsform);
  • 2) die CPU initiiert einen Lese-Zyklus oder einen Schreib- Zyklus, je nach Situation, zum Lesen aus dem Register oder zum Schreiben in das Register;
  • 3) die CPU-Zugriffs-Anforderungs-Logik detektiert den CPU- Zugriff, erzeugt eine Anforderung für den Bus-Arbiter, und verlängert den CPU-Zyklus durch Negieren des READY-Signals;
  • 4) wenn der Arbiter die Durchführung des CPU-Zugriffs-Zyklus erlaubt, wird der Wert, der an den unteren 5 Bits des CPU- Adress-Busses plaziert ist, als Register-Adresse der Host- Adapter-Einrichtung verwendet;
  • 5) die oberen Adress-Bits werden auf null gesteuert;
  • 6) die Daten werden aus der adressierten Register ausgelesen und an die CPU rückgeführt (Lese-Zyklus), oder die von der CPU gelieferten Daten werden in das adressierte Register eingeschrieben (Schreib-Zyklus);
  • 7) das entsprechende Wahl-Signal und das Lese- oder Schreib- Steuersignal wird aktiviert; und
  • 8) der CPU-Zugriffs-Zyklus wird durch Ausgeben des READY- Signals beendet.
  • Schließlich kann die CPU auch auf die Fehler-Prozessor-Register zugreifen, und zwar speziell in der folgenden Weise:
  • 1) Die CPU initiiert einen Peripherie-Steuereinrichtungs- Zugriffs-Zyklus an der entsprechenden Registerstelle (C0- DF bei der bevorzugten Ausführungsform);
  • 2) die CPU initiiert einen Lese-Zyklus oder einen Schreib Zyklus, je nach Situation, zum Lesen aus dem Register oder zum Schreiben in das Register;
  • 3) die CPU-Zugriffs-Anforderungs-Logik detektiert den CPU- Zugriff, erzeugt eine Anforderung für den Bus-Arbiter, und verlängert den CPU-Zyklus durch Negieren des READY-Signals;
  • 4) wenn der Bus-Arbiter die Durchführung des CPU-Zugriffs- Zyklus erlaubt, wird der Wert, der an den unteren 5 Bits des CPU-Adress-Busses plaziert ist, als Register-Adresse der Fehler-Prozessor-Einrichtung verwendet;
  • 5) die oberen Adress-Bits werden auf null gesteuert;
  • 6) die Daten werden aus der adressierten Register ausgelesen und an die CPU rückgeführt (Lese-Zyklus), oder die von der CPU gelieferten Daten werden in das adressierte Register eingeschrieben (Schreib-Zyklus);
  • 7) das entsprechende Wahl-Signal und das Lese- oder Schreib- Steuersignal wird aktiviert; und
  • 8) der CPU-Zugriffs-Zyklus wird durch Ausgeben des READY- Signals beendet.
  • Da dem Fachmann auf dem Gebiet weitere Modifikationen und Änderungen ersichtlich sein werden, die zur Anpassung an bestimmte Betriebsbedingungen und umgebungen vorgenommen werden können, ist die Erfindung nicht im Sinne einer Beschränkung auf das zur Beschreibung gewählte Beispiel aufzufassen; vielmehr umfaßt die Erfindung sämtliche Änderungen und Modifikationen, die nicht von dem durch die Ansprüche definierten Umfang der Erfindung abweichen.

Claims (21)

1. Verfahren, um einer CPU zu ermöglichen, mittels einer mehrere Register aufweisenden Peripherie-Steuereinrichtung über einen Puffer-Bus auf Daten zuzugreifen, die sich in einer Speichereinrichtung befinden, mit den folgenden Schritten:
(a) Initiieren eines Peripherie-Steuereinrichtungs-Zugriffszyklus an einer vorbestimmten Speicherstelle;
(b) Initiieren eines CPU-Zugriffszyklus;
(c) Erzeugen einer Anforderung für ein Bus-Arbiter:
(d) Verlängern des CPU-Zugriffszyklus durch Negieren eines READY-Signals;
(e) Ausgeben der Adresse der Speicherstelle an die Speichereinrichtung, wenn der Bus-Arbiter die Ausführung des CPU-Zugriffszyklus erlaubt;
(f) Zugreifen auf die Daten an der adressierten Speicherstelle; und
(g) Beenden des CPU-Zugriffszyklus durch Wirksammachen des READY-Signals.
2. Verfahren nach Anspruch 1, dem die folgenden Schritte vorhergehen:
(a) Programmieren eines CPU-Pointers auf die Adresse einer vorbestimmten Speicherstelle, und
(b) Programmieren eines Pointersteuerregisters mit einem vorbestimmten Code.
3. Verfahren nach Anspruch 2, ferner mit den folgenden Schritten:
(j) Inkrementieren des CPU-Pointers derart, daß dieser auf die nächste Speicherstelle in der Speichereinrichtung verweist; und
(k) Zugreifen auf die nächste Speicherstelle durch Durchführen der Schritte (c) bis (i).
4. Verfahren nach Anspruch 1, bei dem der Schritt des Ausgebens der Adresse der Speicherstelle umfaßt: das Ausgeben eines ersten Sets vorbestimmter Bits der von dem CPU-Pointer spezifizierten Adresse und das Ausgeben eines zweiten Sets vorbestimmter Bits der von der CPU spezifizierten Adresse in dem aktuellen Zugriffszyklus der CPU.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem der Datenzugriff das Lesen in der Speichereinrichtung gespeicherter Daten umfaßt.
6. Verfahren nach einem der Ansprüche 1 bis 41 bei dem der Datenzugriff das Speichern von Daten in der Speichereinrichtung umfaßt.
7. Verfahren, um einer CPU zu ermöglichen, mittels einer mehrere Register aufweisenden Peripherie-Steuereinrichtung über einen Puffer-Bus auf Daten zuzugreifen, die sich in einem Einrichtungsregister befinden, mit den folgenden Schritten:
(a) Initiieren eines Peripherie-Steuereinrichtungs-Zugriffszyklus an einer vorbestimmten Registerstelle;
(b) Initiieren eines CPU-Zugriffszyklus;
(c) Erzeugen einer Anforderung für einen Bus-Arbiter:
(d) Verlängern des CPU-Zugriffszyklus;
(e) Überführen eines durch einen Teil eines CPU-Adress- Busses repräsentierten Wertes in eine Adresse des Einrichtungsregisters, wenn der Bus-Arbiter die Ausführung des CPU-Zugriffszyklus erlaubt;
(f) Zugreifen auf die Daten an der Einrichtungsregisterstelle;
(g) Aktivieren eines Select-Signals und eines Zugriffssteuersignals; und
(h) Beenden des CPU-Zugriffszyklus.
8. Verfahren nach Anspruch 7, bei dem der CPU-Zugriffszyklus durch Negieren eines READY-Signals verlängert wird und der CPU-Zugriffszyklus durch Wirksammachen des READY-Signals beendet wird.
9. Verfahren nach Anspruch 7 oder 8, bei dem Host-Adapter Register in das Einrichtungsregister hinein abgebildet werden.
10. Verfahren nach Anspruch 9, bei dem der Daten-Zugriff das Lesen in den Host-Adapter-Registern gespeicherter Daten umfaßt.
11. Verfahren nach Anspruch 9, bei dem der Daten-Zugriff das Speichern von Daten in den Host-Adapter-Registern umfaßt.
12. Verfahren nach Anspruch 7 oder 8, bei dem Fehlerprozessor- Register in das Einrichtungsregister hinein abgebildet werden.
13. Verfahren nach Anspruch 12, bei dem der Daten-Zugriff das Lesen in den Fehlerprozessor-Registern gespeicherter Daten umfaßt.
14. Verfahren nach Anspruch 12, bei dem der Daten-Zugriff das Speichern von Daten in den Fehlerprozessor-Registern umfaßt.
15. Pufferspeicher-Subsystem für eine Periphene-Steuereinrichtung, mit:
(a) einem Puffer-Datenkommunikationsbus (26);
(b) einer mit dem Puffer-Datenkommunikationsbus (26) verbundenen Peripherie-Steuereinrichtung (20) mit:
i. mehreren Registern (200,202,204,206,208),
ii. einem Bus-Arbiter (100) zum Vermitteln des über den Puffer-Datenkommunikationsbus (26) erfolgenden Zugriffs auf Daten an einer Speicherstelle einer Speichereinrichtung (28),
(c) einem mit der Peripherie-Steuereinrichtung (20) verbundenen CPU-Datenkommunikationsbus (22);
(d) einer von dem Puffer-Datenkommunikationsbus (26) isolierten CPU (10) mit:
i. einer Einrichtung zum Initiieren eines Peripheriesteuerungs-Zugriffszyklus;
ii. einer Einrichtung zum Initiieren eines CPU-Zugriffszyklus derart, daß die CPU auf eine Adresse in dem Registerraum der Peripherie-Steuereinrichtung (20) zugreifen kann;
iii. einer Zugriffsanforderungs-Logik zum Erzeugen einer Anforderung für den Bus-Arbiter (100) zum Vermitteln des Zugriffs und zum anschließenden Verlängern des CPU-Zugriffszyklus durch Negieren eines READY-Signals;
iv. einer Einrichtung, um eine Adresse einer Speichereinrichtungs-Speicherstelle, auf die über den Puffer-Datenkommunikationsbus (26) zugegriffen werden soll, auszugeben, wenn der Bus-Arbiter (100) den CPU-Zugriff auf diese erlaubt;
v. eine Einrichtung zum Lesen/Schreiben von Daten aus der oder in die Adresse des Einrichtungsregisters, und
vi. einer Einrichtung zum Beenden eines CPU-Zugriffszyklus mittels einer Einrichtung zum Wirksammachen eines READY-Signals.
16. Pufferspeicher-Subsystem nach Anspruch 15, bei dem ein Prozessor-Zugriff auf in der Speichereinrichtung (28) gespeicherte Daten nur durch die Peripherie-Steuereinrichtung erlaubt ist.
17. Pufferspeicher-Subsystem nach Anspruch 15, bei dem die Peripherie-Steuereinrichtung ein Steuerregister zum Identifizieren der Speichereinrichtung (28) aufweist.
18. Pufferspeicher-Subsystem nach Anspruch 15, bei dem die Peripherie-Steuereinrichtung ferner eine Pomter-Steuereinrichtung zum Identifizieren vorbestimmter Speicherstellen in der Speichereinrichtung (28) aufweist.
19 Pufferspeicher-Subsystem für eine Periphene-Steuereinrichtung, mit:
(a) einem Puffer-Datenkommunikationsbus (26);
(b) einer mit dem Puffer-Datenkommunikationsbus (26) verbundenen Peripherie-Steuereinrichtung (20) mit:
i. mehreren Registern (200,202,204,206,208),
ii einem Bus-Arbiter (100) zum Vermitteln des über den Puffer-Datenkommunikationsbus (26) erfolgenden Zugriffs auf Daten in dem Register eines Einrichtungsregisters (24,30),
(c) einem mit der Peripherie-Steuereinrichtung (20) verbundenen CPU-Datenkommunikationsbus (22);
(d) einer von dem Puffer-Datenkommunikationsbus (26) isolierten CPU (10) mit:
i. einer Einrichtung zum Initiieren eines Peripheriesteuerungs-Zugriffszyklus;
ii. einer Einrichtung zum Initiieren eines CPU-Zugriffszyklus derart, daß die CPU auf eine Adresse in dem Registerraum der Peripherie-Steuereinrichtung (20) zugreifen kann;
iii. einer Zugriffsanforderungs-Logik zum Erzeugen einer Anforderung für den Bus-Arbiter (100) zum Arbitrieren des Zugriffs und zum anschließenden Verlängern des CPU- Zugriffszyklus;
iv. einer Einrichtung zum Überführen eines durch einen Teil eines CPU-Adress-Busses repräsentierten Wertes an das Einrichtungsregister (24,30) auf dem Puffer-Datenkommunikationsbus (26), wenn der Bus-Arbiter (100) den CPU-Zugriff auf diesen erlaubt;
v. eine Einrichtung zum Lesen/Schreiben von Daten aus der oder in die Adresse des Einrichtungsregisters,
vi. einer Einrichtung zum Aktivieren eines Select- Signals und eines Zugriffssteuersignals, und
vii. einer Einrichtung zum Beenden eines CPU-Zugriffszyklus.
20. Pufferspeicher-Subsystem nach Anspruch 19, bei dem ein Prozessor-Zugriff auf in dem Einrichtungsregister (24,30) gespeicherte Daten nur durch die Peripherie-Steuereinrichtung erlaubt ist.
21. Pufferspeicher-Subsystem nach Anspruch 19, bei dem die Peripherie-Steuereinrichtung ein Steuerregister zum Identifizieren des Einrichtungsregisters (24,30) aufweist.
DE68928040T 1988-09-09 1989-09-04 Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren Expired - Lifetime DE68928040T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/242,743 US5239636A (en) 1988-09-09 1988-09-09 Buffer memory subsystem for peripheral controllers

Publications (2)

Publication Number Publication Date
DE68928040D1 DE68928040D1 (de) 1997-06-19
DE68928040T2 true DE68928040T2 (de) 1998-01-08

Family

ID=22916012

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68928040T Expired - Lifetime DE68928040T2 (de) 1988-09-09 1989-09-04 Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren

Country Status (7)

Country Link
US (1) US5239636A (de)
EP (1) EP0358423B1 (de)
JP (1) JP2853809B2 (de)
AT (1) ATE153150T1 (de)
DE (1) DE68928040T2 (de)
ES (1) ES2102979T3 (de)
GR (1) GR3023419T3 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999994A (en) * 1991-01-31 1999-12-07 Ast Research, Inc. Dual path computer control system
US5829043A (en) * 1991-04-15 1998-10-27 Gilet, Deceased; Roger Coupler circuit and its use in a card and process
JPH0561951A (ja) * 1991-08-30 1993-03-12 Fujitsu Ltd イメージ処理装置
US6343363B1 (en) 1994-09-22 2002-01-29 National Semiconductor Corporation Method of invoking a low power mode in a computer system using a halt instruction
US5524268A (en) * 1992-06-26 1996-06-04 Cirrus Logic, Inc. Flexible processor-driven control of SCSI buses utilizing tags appended to data bytes to determine SCSI-protocol phases
US5613135A (en) * 1992-09-17 1997-03-18 Kabushiki Kaisha Toshiba Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
TW276312B (de) * 1992-10-20 1996-05-21 Cirrlis Logic Inc
US5588125A (en) * 1993-10-20 1996-12-24 Ast Research, Inc. Method and apparatus for increasing bus bandwidth on a system bus by inhibiting interrupts while posted I/O write operations are pending
US5666516A (en) * 1993-12-16 1997-09-09 International Business Machines Corporation Protected programmable memory cartridge having selective access circuitry
US5625800A (en) * 1994-06-30 1997-04-29 Adaptec, Inc. SCB array external to a host adapter integrated circuit
US5564023A (en) * 1994-06-30 1996-10-08 Adaptec, Inc. Method for accessing a sequencer control block by a host adapter integrated circuit
JPH08106733A (ja) * 1994-10-07 1996-04-23 Hitachi Ltd 情報記憶媒体利用システム
WO1996032674A2 (en) * 1995-04-13 1996-10-17 Cirrus Logic, Inc. Semiconductor memory device for mass storage block access applications
US5564027A (en) * 1995-04-20 1996-10-08 International Business Machines Corporation Low latency cadence selectable interface for data transfers between busses of differing frequencies
US5983025A (en) * 1995-06-07 1999-11-09 International Business Machines Corporation Computer system buffers for providing concurrency and avoid deadlock conditions between CPU accesses, local bus accesses, and memory accesses
US7076149B1 (en) * 1998-07-20 2006-07-11 Thomson Licensing Digital video apparatus user interface
JP4233373B2 (ja) * 2003-04-14 2009-03-04 株式会社ルネサステクノロジ データ転送制御装置
JPWO2009139109A1 (ja) * 2008-05-13 2011-09-15 パナソニック株式会社 メモリ制御装置、およびこれを備えた情報処理装置
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7507050A (nl) * 1975-06-13 1976-12-15 Philips Nv Geheugensysteem.
US4075691A (en) * 1975-11-06 1978-02-21 Bunker Ramo Corporation Communication control unit
US4236210A (en) * 1978-10-02 1980-11-25 Honeywell Information Systems Inc. Architecture for a control store included in a data processing system
JPS57169865A (en) * 1981-04-14 1982-10-19 Fuji Xerox Co Ltd Picture information storage device
US4543627A (en) * 1981-12-14 1985-09-24 At&T Bell Laboratories Internal communication arrangement for a multiprocessor system
US4538224A (en) * 1982-09-30 1985-08-27 At&T Bell Laboratories Direct memory access peripheral unit controller
US4875154A (en) * 1983-10-13 1989-10-17 Mitchell Maurice E Microcomputer with disconnected, open, independent, bimemory architecture, allowing large interacting, interconnected multi-microcomputer parallel systems accomodating multiple levels of programmer defined heirarchy
US4604683A (en) * 1984-12-10 1986-08-05 Advanced Computer Communications Communication controller using multiported random access memory
JPS61189386A (ja) * 1985-02-13 1986-08-23 三菱電機株式会社 配管用絶縁接続装置の製造方法
US4672613A (en) * 1985-11-01 1987-06-09 Cipher Data Products, Inc. System for transferring digital data between a host device and a recording medium
JPS6344364A (ja) * 1986-08-12 1988-02-25 Olympus Optical Co Ltd 光デイスク制御装置
EP0371034A4 (en) * 1987-07-02 1993-02-24 Exabyte Corporation Method and apparatus for data buffer management

Also Published As

Publication number Publication date
JP2853809B2 (ja) 1999-02-03
ATE153150T1 (de) 1997-05-15
DE68928040D1 (de) 1997-06-19
EP0358423B1 (de) 1997-05-14
GR3023419T3 (en) 1997-08-29
ES2102979T3 (es) 1997-08-16
US5239636A (en) 1993-08-24
EP0358423A2 (de) 1990-03-14
JPH02114350A (ja) 1990-04-26
EP0358423A3 (de) 1991-03-13

Similar Documents

Publication Publication Date Title
DE68928040T2 (de) Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE68926036T2 (de) Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher
DE3889366T2 (de) Interface für ein Rechnersystem mit reduziertem Befehlssatz.
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE3909896C2 (de)
DE69124905T2 (de) Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem
DE112011103916B4 (de) Speicherzugriffseinheit für gemeinsame Speichernutzung zwischen mehreren Prozessoren
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69029238T2 (de) Serielle Datenübertragung
DE69021899T2 (de) DMA-Steuerung.
DE102006002526B4 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE68923944T2 (de) RAM mit doppelten Ein/Ausgängen.
DE4003759C2 (de) Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE3885985T2 (de) Speichersteueranordnung für ein Daten verarbeitendes System.
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE3438869A1 (de) Computersystem mit adressumwandlung
DE69029815T2 (de) Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung
DE69123987T2 (de) Stossbetrieb für Mikroprozessor mit externem Systemspeicher
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE60314641T2 (de) Verfahren, system und programm zur konfiguration von teilnehmern auf einem bus fürein-/ausgabeoperationen
DE68924893T2 (de) Datenübertragungsverfahren.
EP0437160A2 (de) Hauptspeicherkarten mit Einzelbit-Setz- und Rücksetz-Funktion

Legal Events

Date Code Title Description
8364 No opposition during term of opposition