DE68928040T2 - Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren - Google Patents
Pufferspeichersubsystem für Peripheriesteuerungen und VerfahrenInfo
- 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
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 80
- 238000000034 method Methods 0.000 title claims description 17
- 238000004891 communication Methods 0.000 claims abstract description 36
- 230000000977 initiatory effect Effects 0.000 claims abstract description 10
- 230000003213 activating effect Effects 0.000 claims 2
- 230000007246 mechanism Effects 0.000 abstract description 12
- 238000012546 transfer Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- WZXXZHONLFRKGG-UHFFFAOYSA-N 2,3,4,5-tetrachlorothiophene Chemical compound ClC=1SC(Cl)=C(Cl)C=1Cl WZXXZHONLFRKGG-UHFFFAOYSA-N 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data 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.
- Gemäß einem Aspekt der Erfindung wird ein gemäß den Ansprüchen ausgebildetes Pufferspeicher-Subsystem für eine Peripherie- Steuereinrichtung geschaffen.
- 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.
- 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.
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)
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)
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 |
-
1988
- 1988-09-09 US US07/242,743 patent/US5239636A/en not_active Expired - Lifetime
-
1989
- 1989-08-29 JP JP1222791A patent/JP2853809B2/ja not_active Expired - Lifetime
- 1989-09-04 ES ES89308916T patent/ES2102979T3/es not_active Expired - Lifetime
- 1989-09-04 EP EP89308916A patent/EP0358423B1/de not_active Expired - Lifetime
- 1989-09-04 DE DE68928040T patent/DE68928040T2/de not_active Expired - Lifetime
- 1989-09-04 AT AT89308916T patent/ATE153150T1/de not_active IP Right Cessation
-
1997
- 1997-05-15 GR GR970400982T patent/GR3023419T3/el unknown
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 |