DE69131186T2 - Verfahren zum Steuern eines Pufferspeichers für einen Magnetplattenspeicher - Google Patents

Verfahren zum Steuern eines Pufferspeichers für einen Magnetplattenspeicher

Info

Publication number
DE69131186T2
DE69131186T2 DE69131186T DE69131186T DE69131186T2 DE 69131186 T2 DE69131186 T2 DE 69131186T2 DE 69131186 T DE69131186 T DE 69131186T DE 69131186 T DE69131186 T DE 69131186T DE 69131186 T2 DE69131186 T2 DE 69131186T2
Authority
DE
Germany
Prior art keywords
bit
address
error detection
buffer memory
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69131186T
Other languages
English (en)
Other versions
DE69131186D1 (de
Inventor
Dhiru N. Desai
David M. Lewis
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology International
Seagate Technology LLC
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 Seagate Technology International, Seagate Technology LLC filed Critical Seagate Technology International
Publication of DE69131186D1 publication Critical patent/DE69131186D1/de
Application granted granted Critical
Publication of DE69131186T2 publication Critical patent/DE69131186T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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
    • 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)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Dram (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Diese Erfindung bezieht sich auf ein Verfahren zur Steuerung von Pufferspeichern für Magnetplatten-Speichersysteme.
  • Zwischenspeichereinrichtungen, wie z. B. dynamische Lese-/- Schreibspeicher- (DRAM-) Bauteile werden in vielen Fällen in Verbindung mit magnetischen Speichermedien als Pufferspeicher zur vorübergehenden Speicherung der Zeicheninformation verwendet. Jedes Zeichen wird beispielsweise durch ein 8-Bit-Informationswort und ein Paritätsbit dargestellt. Typischerweise wird die Information zeichenweise in eine Zwischenspeichereinrichtung eingelesen, wobei neun parallele Datenbit-Leitungen verwendet werden. DRAM-Bauteile sind typischerweise als 4- oder 1-Bitbreite Bauteile erhältlich, so daß die Speicherung der jedem Informationswort zugeordneten zusätzlichen Paritätsbits unhandlich ist, was dazu führt, daß das Paritätsbit nicht gespeichert wird oder in einer getrennten Speichereinrichtung gespeichert wird.
  • Es ist ein Ziel der Erfindung, eine Steuereinrichtung für und ein Verfahren zur Steuerung von DRAM-Pufferspeichern für ein Magnetplatten-Speichersystem zu schaffen, die bzw. das eine wirkungsvolle Ausnutzung von üblichem, geringe Kosten aufweisenden DRAM-Speicher zur Speicherung von Informationsdaten und Paritätsdaten in einer Vielzahl von DRAM-Speicherbetriebsarten ermöglicht.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zur Zwischenspeicherung und Rückgewinnung von q-Bit-Zeicheninformationsdaten für ein Informationsspeichersystem in einer y-Bit breiten Pufferspeichereinheit geschaffen, die eine Vielzahl von DRAM-Bauteilen aufweist, wobei q größer als y ist, und das Verfahren durch die folgenden Schritte gekennzeichnet ist:
  • Schaffung einer virtuellen Speicheradresse für jede Einheit von g-Bit-Zeicheninformationsdaten, wobei die Zeicheninformationsdaten in einem Block organisiert werden, der z derartige Informationszeichen umfaßt,
  • Umsetzen der virtuellen Speicheradressen in entsprechende Adressen von Speicherplätzen in der Pufferspeichereinheit zur Speicherung von y-Bit-Gruppen des Blockes in der Pufferspeichereinheit, wobei der Umsetzungsschritt:
  • das Auswählen einer Reihenadresse zur Speicherung des Blockes,
  • die Auswahl einer Basis-Spaltenadresse für den Block, und
  • das aufeinanderfolgende Weiterschalten der Basis- Spaltenadresse einschließt, um zusätzliche Spaltenadressen für aufeinanderfolgende y-Bit-Gruppen des Blockes zu schaffen,
  • Übertragung jeder der y-Bit-Gruppen des Blockes über einen y-Bit-Datenbus an einen Adressenplatz in der Pufferspeichereinheit, der durch den Umsetzungsschritt bestimmt ist,
  • Schaffung eines x-Bit-Fehlerdetektions-Codewortes für jeden Block,
  • Auswahl einer Adresse zur Speicherung des x-Bit-Fehlerdetektions-Codewortes in der Pufferspeichereinheit, wobei die Auswahl einer Adresse folgendes einschließt:
  • das Auswählen einer Fehlerdetektions-Codewort-Reihenadresse,
  • die Auswahl einer Fehlerdetektions-Codewort-Basisspaltenadresse für eine erste y-Bit-Gruppe des x-Bit- Fehlerdetektions-Codewortes,
  • das Weiterschalten der Fehlerdetektions-Codewort- Basisspaltenadresse um y zur Schaffung einer zweiten Spaltenadresse für eine zweite y-Bit-Gruppe des x-Bit-Fehlerdetektions-Codewortes, und
  • Übertragen des Fehlerdetektions-Codewortes über den y-Bit-Datenbus an die ausgewählten Adressenplätze für das x-Bit-Fehlerdetektions-Codewort in der Pufferspeichereinheit.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird ein Verfahren zur vorübergehenden Speicherung und Rückgewinnung von 8-Bit-Zeicheninformations-Daten für ein Magnetplatten-Informationsspeichersystem in einer Anzahl von 4 · n-DRAN-Pufferspeicherkonfigurationen geschaffen, das durch die folgenden Schritte gekennzeichnet ist: Schaffung einer virtuellen Speicheradresse für jede Einheit von 8-Bit-Zeicheninformationsdaten, wobei die Zeicheninformationsdaten in einem 16-Byte- Block organisiert sind, Umsetzen der virtuellen Speicheradressen in entsprechende Adressen von Speicherplätzen in dem 4 · n-Pufferspeicher zur Speicherung von 4-Bit-Gruppen des 16-Byte-Blockes in dem 4 · n-DRAM-Pufferspeicher, wobei der Umsetzungsschritt die Auswahl einer Reihenadresse zur Speicherung des 16-Byte-Blockes, die Auswahl einer Basis-Spaltenadresse für den 16-Byte-Block und die aufeinanderfolgende Weiterschaltung der Basis-Spaltenadresse zur Schaffung zusätzlicher Spaltenadressen für aufeinanderfolgende 4-Bit-Gruppen des 16-Byte-Blockes einschließt, und Übertragen jeder der 4-Bit-Gruppen des 16-Byte-Blockes über einen 4-Bit-Datenbus an die verschiedenen vorbestimmten Adressenplätze in einer der 4 · n-DRAM-Pufferspeicherkonfigurationen, worin n die Größe des 4-Bit-breiten DRAM ist, beispielsweise n = 32Kb, n = 64 Kb, n = 256 Kb usw., wie dies durch den Umsetzungsschritt bestimmt ist.
  • In vorteilhafter Weise wird ein Fehlerdetektions-Codewort in Form eines 8-Bit-Paritätswortes für den 16-Byte-Block geschaffen und durch die Auswahl einer Paritätswort-Reihenadresse, die Auswahl einer Paritätswort-Basisspaltenadresse für eine erste 4-Bit-Gruppe des 8-Bit-Paritätswortes und die Weiterschaltung der Paritätswort-Spaltenadresse zur Schaffung einer zweiten Spaltenadresse für eine zweite 4-Bit-Gruppe des 8-Bit-Paritätswortes gespeichert. Das Fehlerdetektions-Codewort wird dann über den 4-Bit-Datenbus an die verschiedenen vorbestimmten Adressenplätze in dem 4 · n-Pufferspeicher für das 8-Bit-Paritätswort übertragen.
  • Der Umsetzungsschritt kann die Auswahl von Reihen- und Spaltenadressen unter Verwendung von Multiplexerschaltungen einschliessen. Das Verfahren kann weiterhin den Schritt der Zwischenspeicherung der Reihen- und Spalten-Adressen in Zwischenspeicherschaltungen einschließen, wobei der Schritt des Weiterschaltens den Schritt der Zuführung der Ausgänge der Zwischenspeicherschaltungen über mit den Eingängen der Zwischenspeicherschaltungen verbundene Multiplexerschaltungen zur Weiterschaltung der Spaltenadressen einschließt.
  • Wahlweise kann der 4 · n-Pufferspeicher einen DRAM umfassen, der in einer Seitenbetriebsweise oder in einer statischen Spaltenbetriebsweise arbeitet.
  • Ein weiteres Ziel der Erfindung wird durch die Merkmale des Anspruchs 10 gelöst.
  • Die Erfindung wird im folgenden in Form eines Beispiels unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
  • Fig. 1 ein Gesamtfunktionsblockschaltbild einer integrierten Schaltung in Form eines SCSI-Steuergerätes ist, das eine DRAM-Schnittstellenschaltung zur Kommunikation mit einem DRAM-Pufferspeicher über eine 4-Bit-Datenleitung einschließt,
  • Fig. 2 ein Blockschaltbild eines Pufferspeicher-Steuerabschnittes des SCSI-Steuereinrichtung ist,
  • Fig. 3 ein Blockschaltbild des Pufferspeicher-Steuerabschnittes ist, das die Schnittstellen zeigt, die zur Übertragung von Daten von einen Plattenspeicher zu einem Hauptcomputer erforderlich sind,
  • Fig. 4 ein Blockschaltbild ist, das die Speicherung von Zeicheninformationsdaten und Paritätsdaten in dem Pufferspeicher zeigt, wenn Daten von einem Hauptcomputer zu einem Plattenspeicher geschrieben werden.
  • Fig. 5 ein Zeitsteuerdiagramm für eine normale seitenweise Blockübertragung von Daten zwischen einer Steuereinrichtung und einem DRAM-Pufferspeicher ist,
  • Fig. 6 ein Zeitsteuerdiagramm für eine Blockübertragung mit statischer Spaltenbetriebsweise von Daten zwischen der Steuereinrichtung und einem DRAM- Pufferspeicher ist,
  • Fig. 7 ein Zeitsteuerdiagramm für eine verschachtelte seitenweise Blockübertragung von Daten zwischen der Steuereinrichtung und einem DRAM-Pufferspeicher ist,
  • Fig. 8 ein Blockschaltbild der DRAM-Schnittstellenschaltung der Steuereinrichtung ist,
  • Fig. 9 ein Schaltbild eines Zustandsmaschinen-Abschnittes der DRAM-Schnittstellenschaltung ist, und
  • Fig. 10 ein Schaltbild eines Adressenfolgeschaltungs- Abschnittes der DRAM-Schnittstellenschaltung ist.
  • Fig. 1 zeigt ein Blockschalbild einer 68 Anschlußstifte aufweisenden integrierten Kleincomputer-Systemschnittstellen-(SCSI-) Steuerschaltung 10. Wie dies in dem Schaltbild gezeigt ist, sind verschiedene Schnittstellen über Signal-Busleitungen mit einer Speichersteuereinheit 12 verbunden. Eine Formatierungseinheit 14 bildet eine Schnittstelle an eine magnetische Speicherplatte über verschiedene Signalleitungen. Ein NRZ-Signal an einer Leitung 16 ist ein Eingangs-/Ausgangs-Signal in einem NRZ-Datenformat, das einen Datenbitstrom zu oder von der Logik in der Formatierungseinheit 14 bildet. Ein RD-REF-CLK- (Lese-/Bezugs- Takt-) Signal an einer Leitung 18 ist ein Lese-/Bezugs-Takt, der das Taktsignal für die Formatierungseinheit 14 bildet, das von einer Daten-Trenneinrichtung der Magnetplattenelektronik geliefert wird. Die Frequenz dieses Taktsignals reicht von 5 MHz bis 24 MHz. Ein Lese-Torsteuersignal RG an einer Signalleitung 20 ist ein Signal, das einen Lesekanal freigibt und bewirkt, daß die Steuerschaltung 10 NRZ-Daten von der Magnetplatte annimmt. Ein Schreib-Torsteuersignal WG an einer Signalleitung 22 ist ein Signal, das Schreib-Treiber freigibt und bewirkt, daß die Steuerschaltung 10 NRZ-Daten an die Magnetplatte abgibt. Ein INPUT/COAST- (Eingangs-/Leerlauf-) Signal an einer Leitung 24 und ein OUTPUT- (Ausgangs-) Signal an einer Leitung 26 sind Allzwecksignale, die zur Synchronisation der Formatierungseinrichtung 14 mit externer Hardware verwendet werden. Ein INDEX-Signal an einer Leitung 28 ist ein INDEX-Signal von dem Magnetplattenlaufwerk und wird einmal pro Umdrehung der Platte geliefert. Ein SECTOR-/WAM-/AMD-Signal an einer Leitung 30 ist ein Sektor- Eingang, ein Eingang für die Erfassung der Adressenmarke oder ein Ausgang für die Schreibadressenmarke zu oder von der Formatierungseinrichtung 14, in Abhängigkeit von der Betriebsart des Systems. Die Formatierungseinrichtung 14 enthält weiterhin eine Fehlerkorrektur-Codeschaltung ECC 32. Zwischen der Speichersteuereinheit 12 und der Formatierungseinrichtung 14 laufende Signale werden auf einer Signal-Busleitung 34 geführt.
  • Die Kommunikation zwischen der Speichersteuereinheit 12 und einem externen Mikroprozessor, wie z. B. einem Steuergerät vom Typ 8051 der Fa. Intel, wird mit einer Mikroprozessor-Schnitt stellenschaltung 40 abgewickelt, die mit der Speichersteuerschaltung 12 über eine Busleitung 42 in Verbindung steht. Ein bei niedrigem Pegel aktives Chipauswahlsignal CS auf einer Signalleitung 44 gibt die integrierte Steuerschaltung 10 entweder für einen Lese- oder einen Schreib-Betrieb frei. Ein bei niedrigem Pegel aktives Lesedatensignal RD an einer Signalleitung 46 bewirkt in Verbindung mit dem CS-Signal, daß Daten von einem festgelegten Register in der Speichersteuerschaltung 12 auf einen Datenbus AD bewegt werden, der in der gezeigten Weise durch eine Busleitung 52 gebildet ist. Der Mikroprozessor- Adressen-/Datenbus AD (7 : 0) ist ein Eingangs-/Ausgangs-Bus mit bei hohem Pegel aktiven Signalen, die auf bidirektionalen Signalleitungen geliefert werden, die in Schnittstellenverbindung mit einem multiplexierten Mikroprozessor-Adressen-/Datenbus des externen Mikroprozessors stehen. Ein bei niedrigem Pegel aktives Schreibdatensignal WR an einer Signalleitung 48 bewirkt in Verbindung mit dem CS-Signal, daß Daten von dem Datenbus AD zu einem bestimmten Register innerhalb der Speichersteuereinheit 12 bewegt werden. Ein Unterbrechungsanforderungssignal IRQ an einer Signalleitung 54 ist ein bei niedrigem Pegel aktives Ausgangssignal von einer Mikroprozessor-Schnittstellen-Unterbrechungssteuerschaltung 56, um die Betriebsweise des externen Mikroprozessors zu unterbrechen. Eine Taktsteuerschaltung 58 innerhalb der integrierten Schaltung 10 liefert geeignete Taktsignale an eine Takt-Busleitung 60 an die Mikroprozessor-Schnittstellenschaltung 40. Signale von der Mikroprozessor-Schnittstellenschaltung 40 an die Formatierungseinrichtung 14 werden auf einer Busleitung 62 geliefert.
  • Eine SCSI-Schnittstellenschaltung 70 ergibt die Kommunikation auf einem SCSI-Bus 92 von einem Hauptcomputer an die Speichersteuereinheit 12. Bei niedrigem Pegel aktive Eingangs-/Ausgangs- Signalleitungen DB (7 : 0) sind die SCSI-Datenleitungen. Ein bei niedrigem Pegel aktives Eingangs-/Ausgangs-Besetzt-SCSI- Steuersignal BSY wird an einer Signalleitung 74 geliefert. Ein bei niedrigem Pegel aktives Eingangs-/Ausgangs-SCSI-SEL- Steuersignal wird an einer Signalleitung 76 geliefert. Ein bei niedrigem Pegel aktives Eingangs-/Ausgangs-Befehls-/Daten-SCSI- Steuersignal C/D wird an einer Signalleitung 78 geliefert. Ein bei niedrigem Pegel aktives Eingangs-/Ausgangs-Nachrichten-SCSI- Steuersignal MSG wird an einer Signalleitung 82 geliefert. Ein bei niedrigem Pegel aktives Eingangs-/Ausgangs-Anforderungssignal REQ bildet in Verbindung mit einem bei niedrigem Pegel aktiven Eingangs-/Ausgangs-Bestätigungssignal ACK an einer Leitung 46 eine SCSI-Datenübertragungs-Quittierung. Ein bei niedrigem Pegel aktives Eingangs-/Ausgangs-SCSI-Abruf-Steuersignal ATN wird an einer Signalleitung 88 geliefert. Ein bei niedrigem Pegel aktives Eingangs-/Ausgangs-SCSI-Rücksetzsignal wird an einer Signalleitung 90 geliefert. Alle die vorstehenden SCSI- Steuersignale werden gemäß den SCSI-Normen geliefert. Die SCSI- Schnittstellenschaltung 70 ist mit der Speichersteuerschaltung über den Signalbus 92 gekoppelt.
  • Eine DRAM-Schnittstellenschaltung 100 zur Schaffung einer Kommunikation mit einem DRAM-Pufferspeicher ist mit der Speichersteuerschaltung 12 über einen Signalbus 101 gekoppelt. Externe Verbindungen von der DRAM-Schnittstellenschaltung 100 an den DRAM-Pufferspeicher werden über verschiedene Signalleitungen geschaffen. Ein bei niedrigem Pegel aktives Ausgangs-Reihenadressen-Auftastsignal RAS an einer Signalleitung 102 ergibt ein Adressen-Auftastsignal für den DRAM-Pufferspeicher. Ein bei niedrigem Pegel aktives Eingangs-/Ausgangs-Spaltenadressen- Auftastsignal CAS an einer Signalleitung 140 ergibt ein Adressen-Auftastsignal für einen ersten oder einen einzigen DRAM. Ein zweites bei niedrigem Pegel aktives Ausgangsspaltenadressen- Auftastsignal CAS2 an einer Signalleitung 106 liefert ein Adressenauftastsignal für einen zweiten DRAM. Ein bei niedrigem Pegel aktives Ausgangs-Schreib-Auftastsignal W wird an einer Signalleitung 108 geliefert. Ein bei niedrigem Pegel aktives Ausgangsfreigabesignal G an einer Signalleitung 110 ist ein DRAM-Ausgangstreiber-Freigabesignal. Ein Adressenbus 112 liefert 9 Bits einer DRAM-Adresse A (8 : 0). Bei hohem Pegel aktive Eingangs-/Ausgangssignale werden an einem DRAM-Datenbus DQ (3 : 0) geliefert.
  • Fig. 2 zeigt schematisch die Schnittstellenschaltungen für die integrierte Schaltung 10. Die Daten werden zu und von den drei Busleitungen 72, 34, 52 und dem DRAM-Datenbus 114 übertragen. Daten von dem SCSI-Datenbus 72, die Hauptcomputerdaten sind, werden in einen Hauptcomputer-FIFO-Speicher 120 eingegeben. Formatierte Daten von der Formatierungseinrichtung 14 werden in einen Formatierungs-FIFO-Speicher 122 eingegeben. Lese-/Schreib- Daten von dem Mikroprozessor auf dem Bus 52 werden in einen Fenster-RAM 124 eingegeben. Bytebreite Datenübertragungen zu und von jeder dieser asynchronen Schnittstellen erfolgen an die jeweiligen FIFO-Speicher. Halbbyte-breite Übertragungen erfolgen zu und von dem DRAM zwischen den jeweiligen FIFO-Speichern unter der Steuerung einer Zustandsmaschine 126.
  • Verschiedene unterschiedliche DRAM-Konfigurationen können gerätemäßig ausgeführt werden, die folgendes einschließen: eine Seitenbetriebsart oder statische Spaltenbetriebsart mit einem 4 · 64-DRAM; zwei 4 · 64K-DRAM-Bausteine; eine Seitenbetriebsart oder statische Spaltenbetriebsart mit zwei 4 · 256-DRAM; und zwei 4 · 256K-DRAM-Bausteine. Die Schaltung liefert weiterhin zwei Halbbytes für die Parität für jede 32 Halbbyte-Übertragung. Übertragungen zu und von dem DRAM erfolgen in Blöcken von 32 Halbbytes oder 16 Bytes. Eine Entscheidungsschaltung 128 ergibt Priorität für jeden Schnittstellenbetrieb mit dem DRAM. Eine Plattenfolgeschaltung für die Magnetplatte, die formatierte Daten von dem Format-FIFO-Speicher 122 liefert, hat die höchste Priorität. Die Aktualisierung des DRAM-Pufferspeichers hat die nächstniedrigere Priorität. Daten von dem Mikroprozessor von dem Lese-/Schreib-Bus, die in dem Fenster-RAM 124 gespeichert werden, haben die nächstniedrigere Priorität. Schließlich haben Hauptcomputerdaten auf dem SCSI-Bus 72, die in dem Hauptcomputer-FIFO-Speicher 120 gespeichert werden, die niedrigste Priorität. Die Entscheidungsschaltung 128 führt eine Entscheidung am Ende jeder 16-Byte-Übertragung durch und ermöglicht es lediglich einer Schnittstelle zu einer Zeit, einen Zugriff auf den DRAM auszuführen. Eine Paritätsgenerator-/Prüfschaltung 130 liefert die beiden Halbbytes der Parität für jede Übertragung von 32 Halbbytes.
  • Fig. 3 ist ein Blockschaltbild der Pufferspeicher-Steuereinrichtung, das die Schnittstellen zeigt, die zur Übertragung von Daten von einem Plattenspeicher zu einem Hauptcomputer auf dem SCSI-Bus erforderlich sind. Die Steuereinrichtung kann drei asynchrone Schnittstellen an den DRAM-Pufferspeicher 130 handhaben. Fig. 3 zeigt schematisch, wie verschiedene Sektoren des DRAM-Pufferspeichers 130 verwendet werden. Während die Platteninformation den Sektor n+2 des DRAM-Pufferspeichers 130 von dem Platten- oder Format-FIFO-Speicher 122 füllt, kann der Mikroprozessor den Sektor n+1 korrigieren, und der mit dem SCSI-Bus 72 verbundene Hauptcomputer kann den Sektor n über den Hauptcomputer-FIFO 120 lesen.
  • Fig. 4 zeigt schematisch die Speicherung von Zeicheninformationsdaten und Paritätsdaten in dem Pufferspeicher, wenn die Daten von dem SCSI-Bus 72 auf den Plattenspeicher geschrieben werden, der mit dem Bus 34 verbunden ist. Informationen von dem Hauptcomputer-FIFO 120 werden in den DRAM in 16-Byte-Datenblöcken eingegeben. Die Parität für diesen Block wird von dem Paritätsgenerator 130 erzeugt und in dem Paritätsabschnitt des DRAM-Pufferspeichers 130 gespeichert. Zum Auslesen werden die Daten sowohl von dem Paritätsspeicherbereich als auch von dem Informationsspeicherbereich des DRAM-Pufferspeichers 80 zu dem Formatierung-FIFO 122 ausgelesen. Die Paritätsprüfung an den Ausgangsdaten, die aus dem DRAM-Pufferspeicher 130 ausgelesen werden, wird von der Paritätsprüfeinrichtung 130b durchgeführt. Die Parität wird während der Schreibbetriebsart erzeugt und während der Lesebetriebsart geprüft. Die Parität wird in einem getrennten Platz in dem DRAM geschrieben, wobei 2K Byte an Adressenraum für die Parität für jeweils 32K Bytes des Gesamtspeichers erforderlich sind.
  • Die Fig. 5, 6 und 7 zeigen Zeitsteuerdiagramme für verschiedene DRAM-Pufferspeicherkonfigurationen, zu und von denen Datenblöcke zwischen der Speichersteuerlogik 12 und dem DRAM-Pufferspeicher 130 übertragen werden. Die DRAM-Schnittstelle 100 verarbeitet Datenblöcke, die eine Länge von 16 Byte aufweisen. Alle Übertragungen von geringeren Datenmengen werden von der Steuerlogik mit Füllzeichen ergänzt, bevor die DRAM-Schnittstelle 100 die Informationsblöcke empfängt. Die Puffersteuerlogik berechnet weiterhin die Parität, die aus zwei Halbbytes einer longitudinalen Parität für 32 Halbbytes an Daten ist. Die DRAM-Schnittstelle 100 führt eine Neuabbildung der Basisadresse der Information durch, um die interne Logik zu vereinfachen. Die Parität wird jedoch immer an die oberen 1/16 des Adressenraumes des DRAM-Pufferspeichers bei Betrachtung von der Innenseite aus gesetzt. Es können verschiedene Größen des DRAM-Pufferspeichers verwendet werden, und diese Größen schließen 32K, 64K, 128K und 256K ein. Ein 256K-DRAM ergibt einen 32K-Pufferspeicher. Zwei 256K-DRAM-Bauteile ergeben einen 64K-Pufferspeicher. Ein 1M-DRAM ergibt einen 128K-Pufferspeicher. Zwei 1M-DRAM-Bausteine ergeben einen 256K-Pufferspeicher.
  • Die Übertragungssequenz für einen Datenblock zu einem in normaler Seitenbetriebsart betriebenen DRAM ist in Fig. 5 gezeigt. Zunächst wird die Reihenadresse geliefert. Dann werden 32 Spalten an Daten übertragen. Dann wird die Paritäts-Reihenadresse geliefert, gefolgt von der Paritätsinformation von den zwei Paritätsspalten. Es sei bemerkt, daß, wenn ein DRAM mit Einzelseiten-Betriebsart verwendet wird, auf jede Spalte der Information mit Ausnahme der letzten, ein Spalten-Vorlade-Zyklus folgt.
  • Fig. 6 zeigt die Zeitsteuersignale für einen einzelnen DRAM mit statischer Spaltenbetriebsart. Wenn ein einzelner DRAM mit statischer Spaltenbetriebsart verwendet wird, werden die Informationen von einer Spalte eine nach der anderen übertragen, ohne daß ein dazwischenliegender Vorlade-Zyklus erforderlich ist. Hierdurch wird die Geschwindigkeit der Datenübertragung stark vergrößert. Wenn zwei DRAM-Speicher verwendet werden, so werden sie automatisch abgewechselt, so daß ein Vorladezyklus für einen DRAM gleichzeitig mit dem Spaltenzyklus für den anderen erfolgt. Dies führt zu der gleichen Geschwindigkeit, wie sie ein DRAM mit statischer Spaltenbetriebsweise ergeben würde. Daher besteht kein Vorteil in der Verwendung von in statischer Spaltenbetriebsweise betriebenen DRAM-Bausteinen, die kostspieliger sind, in einer Konfiguration mit zwei RAM-Bausteinen. Wenn es erforderlich ist, DRAM-Bausteine in einer statischen Spaltenbetriebsweise bei einer Konfiguration mit zwei RAM-Bausteinen zu verwenden, so können diese Speicher in einer Seitenbetriebsart verwendet werden.
  • Fig. 7 zeigt ein Zeitsteuerdiagramm für eine verschachtelte Seitenbetriebsart.
  • Aus dem Zeitsteuerdiagramm ist zu erkennen, daß die Übertragung eines einzelnen 16-Byte-Informationsblockes in einer normalen Seitenbetriebsart 72 Perioden des DRAM-Taktes erfordert, während die gleiche Übertragung in einer statischen Spalten- oder verschachtelten Seitenbetriebsart 40 Perioden des DRAM-Taktes erfordert. Mit dieser Information kann die Berechnung der erforderlichen Geschwindigkeit eines DRAM zur Erzielung einer Pufferbandbreite sowie der Taktgeschwindigkeit erfolgen. Für einen einzelnen Seitenbetriebsart-DRAM ist die minimal erforderliche Zykluszeit gleich der Spaltenzugriffszeit. Demgegenüber ist für einen einzelnen in statischer Spaltenbetriebsweise betriebenen DRAM oder für zwei in der Seitenbetriebsart betriebene DRAM- Bausteine für einen minimale Zykluszeit gleich der Spaltenzugriffszeit plus einer Adressensteuerungs-Versetzungszeit. Es wird empfohlen, daß die nominelle Zykluszeit etwas langsamer als die minimale Zykluszeit gesetzt wird, um Geschwindigkeitsänderungen aufgrund von Spannungswelligkeiten auf den DRAM- Leistungsversorgungen zu berücksichtigen. Wenn ein 32K-Puffer unter Verwendung eines einzelnen 256K-Seitenbetriebsart-DRAM vom Typ Texas Instruments TMS4464-12 verwendet wird, so wird eine 16 ns-Spaltenzugriffszeit erreicht. Der Takt wird auf eine Zykluszeit von mehr als 61,8 ns eingestellt. Die langsamste Zykluszeit für den Schlimmstfall ist dann 63,8 ns für eine Gesamtzeit von 4594 ns zur Übertragung eines 16-Byte-Informationsblockes oder eine garantierte Bandbreite von 3,48 Megabyte/Sekunde. Wenn zwei 256K-Seitenbetriebsart-DRAM-Bausteine verwendet werden, wird der Takt auf mehr als 64,9 ns eingestellt, mit einer langsamen Zeit im Schlimmstfall von 66,9 ns, wodurch 2676 ns zur Übertragung eines Informationsblockes mit einer garantierten Bandbreite von 5,98 Megabyte/Sekunde erforderlich sind. Wenn eine volle 8-Megabyte-Handbreite erforderlich ist, muß ein Informationsblock alle 1961 ns übertragen werden, wobei eine Aktualisierung berücksichtigt ist, und die Zeit für den schlimmsten Fall beträgt 49 ns. Dies würde die Verwendung eines in statischer Spaltenbetriebsart betriebenen DRAM oder von zwei in der Seitenbetriebsart betriebenen DRAM-Bausteinen mit einer Spaltenzugriffszeit von weniger als 45,7 ns erfordern.
  • Fig. 8 ist ein Blockschaltbild einer Steuerlogikschaltung. Es zeigt die Hauptelemente der DRAM-Schnittstellenschaltung 100 nach Fig. 1. Die DRAM-Schnittstellenschaltung 100 schließt eine Steuer-Zustandsmaschine (Steuer-FSM) 200 und einen Adressengenerator 202 ein. Der Adressengenerator 202 liefert die Adressensignale an einen Signalbus 112 an den DRAM-Pufferspeicher. Ein DRAM-Taktsignal wird an einem Eingangsanschluß 204 geliefert. Das DRAM-Taktsignal wird an die Steuerzustandsmaschine 200, den Adressengenerator 202 und einen Block von vier Paaren von D-Flip-Flop-Schaltungen verteilt, von denen eine typische mit der Bezugsziffer 206 bezeichnet ist. Jedes Paar von D-Flip-Flop- Schaltungen verarbeitet jeweils 1 Bit von 4 Bits von Lesedaten, die an einem Signalbus 208 empfangen werden, oder von Schreibdaten, die an einem Signalbus 210 empfangen werden. Jedes der jeweiligen Lese-Datenbits und Schreib-Datenbits wird mit dem DRAM-Takt in jeweiligen D-Flip-Flop-Schaltungen 212, 214 zeitlich nachgesteuert. Der Block 206 zeigt die Zeitnachsteuer- Schaltung für das i-te Bit. Die zeitlich nachgesteuerten Lesedaten werden in einem Datenbus 216 neu zusammengesetzt, und die zeitlich nachgesteuerten Schreibdaten werden in einem Datenbus 218 zusammengesetzt, wie dies gezeigt ist.
  • Die Steuerzustandsmaschine 200 empfängt den DRAM-Takt an einer Signalleitung 220. Ein Rücksetzsignal wird an einer Signalleitung 222 empfangen. Ein Startsignal wird an einer Signalleitung 224 empfangen. Ein Auffrisch-Befehlssignal wird an einer Signalleitung 226 empfangen. Ein Signal, das anzeigt, daß eine statische Spalten-DRAM-Betriebsart verwendet wird, wird an einer Signalleitung 230 empfangen. Ein Signal, das anzeigt, daß zwei DRAM-Bausteine verwendet werden sollen, wird an einer Signalleitung 232 empfangen. Die Steuerzustandsmaschine 200 liefert ein invertiertes Reihenadressen-Auswahlsignal RAS an der Signalleitung 102, ein invertiertes Spaltenadressen-Signal CAS an der Signalleitung 104, ein zweites Spaltenadressen-Signal CAS2 an der Signalleitung 106, ein invertiertes DRAM-Schreib-Auftastsignal W an der Signalleitung 108 und ein DRAM-Ausgangsansteuer- Freigabesignal G an der Signalleitung 110. Wenn 16 Informationsbytes übertragen wurden, so wird ein DONE (erledigt)-Signal an einer Signalleitung 234 geliefert.
  • Der Adressengenerator 202 liefert in der bereits erwähnten Weise neun Adressenbits auf dem Signalbus 112 an den DRAM. Der Adressengenerator schließt einen Zähler ein, der von der Basisadresse aus zählt, die als Eingang an den Adressengenerator an einer Signalleitung 236 geliefert wird. Ein Signal, das anzeigt, daß 2 DRAM-Bausteine für die Pufferspeicherung verwendet werden, wird an einer Signalleitung 232 geliefert. Ein Signal, das anzeigt, ob RAM-Bausteine mit 1 Megabit verwendet werden, wird an einer Signalleitung 240 geliefert. Die Zähler in dem Adressengenerator 202 werden durch ein Zählfreigabesignal freigegeben, das von der Steuerzustandsmaschine 200 an einer Signalleitung 242 geliefert wird. Ein Signal wird von dem Adressengenerator 202 an einer Signalleitung 243 an die Steuerzustandsmaschine 200 abgegeben, wenn in dem Adressengenerator eine Zählung von 32 erreicht wurde, was anzeigt, daß das Ende eines Datenblockes erreicht wurde.
  • Signale laufen zwischen der Steuerzustandsmaschine 200 und dem Adressengenerator 202 auf Signalleitungen 242, 244, 245, 246, 247 und 248. Dies sind Lenkungs- und Steuersignale für die Multiplexerlogik. Ein Signal Apply_Row (wende Reihe an) an der Leitung 248 steuert den Multiplexer, um die Datenreihenadresse zu bilden. Ein Signal Apply_Col (wende Spalte an) an der Leitung 247 weist den Multiplexer an, die Datenspaltenadresse zu bilden. Ein Signal Apply_Par_Row (wende Paritätsreihe an) an der Leitung 246 bildet die Paritätsreihenadresse. Ein Signal Apply_Par_Col (wende Paritätsspalte an) an der Leitung 245 bil det die Paritätsspaltenadresse. Ein Signal Apply_1st_Col an der Leitung 244 gibt an, daß dies die erste Spaltenadresse entweder der Daten- oder der Paritätsgruppe ist und bewirkt, daß die Zählbits auf Null gesetzt werden. Ein Signal Count_Ena (Zähl Freigabe) an der Leitung 242 bewirkt den Zählbeginn. Wenn das Signal Apply_Col oder Apply_Par_Col wahr ist, und keines der Signale Apply_1st_Col oder Count_Ena wahr ist, so werden die Zählbits so gehalten, wie sie gerade sind. Das Signal Terminal- Count (Zählende) an der Leitung 243 ist das an die Steuerzustandsmaschine 200 zurückgelieferte Signal dafür, daß die Zählsequenz für die Datenbits abgeschlossen ist, und es ermöglicht es der Steuerzustandsmaschine 200 sich zu den Zuständen zu bewegen, in denen die Parität geschrieben oder gelesen wird.
  • Funktionell entspricht die in Fig. 8 gezeigte DRAM-Schnittstellenschaltung der DRAM-Schnittstellenschaltung 100 nach Fig. 1.
  • Normalerweise würde es zur Unterstützung einer großen Anzahl von unterschiedlichen Größen von DRAM-Bausteinen erforderlich sein, daß eine große Anzahl von Adressen von einer Schaltung, wie z. B. dem Adressengenerator 202 multiplexiert wird. Es ist jedoch möglich, die erforderlichen Adressen in einer derartigen Weise zu falten, daß die Anzahl von Adressenbits, die erforderlich sind, um alle die für den Speicher für ein vorgegebenes Bit erforderlichen Adressen zu schaffen, effektiv von neun auf ungefähr vier verringert werden kann. Die nachfolgende Tabelle 1 zeigt ein übliches Schema zur Schaffung von Verbindungen für 14 Bits von internen Adressen, die mit IA14 bis IA4 bezeichnet sind (wie sie auf dem Signalbus 236 geliefert werden) zu den mit A8 bis A0 bezeichneten DRAM-Adressenleitungen (die an dem Adressenbus 112 geliefert werden) an den DRAM.
  • Die Tabelle 1 ist für zwei DRAM-Pufferspeichergrößen gezeigt. Die erste ist eine 32K-DRAM-Pufferspeichergröße, die gerätemäßig mit 4 · 64K-DRAM ausgeführt ist. Die zweite ist eine 64k- DRAM-Pufferspeichergröße, die gerätemäßig durch zwei 4 · 64K-DRAM- Bausteine ausgeführt ist. Für jeden dieser Fälle sind verschiedene der Bitleitungen für die internen Adressen mit den DRAM- Adressenbitleitungen über Multiplexer verbunden. Beispielsweise werden unter Bezugnahme auf das Zeitsteuerdiagramm nach Fig. 6 die internen Adressen für die Datenreihe in der ersten Zeile der Tabelle geliefert, die die ROW- (Reihen-) Zeile ist. Die DRAM- Adressenleitung A7 empfängt die interne Adressenleitung 14. Die DRAM-Adressenleitung A6 empfängt die interne Adressenleitung 13. Die DRAM-Adressenleitung A5 empfängt die interne Adressenleitung 12 usw.. Die Adressen für die Datenspalten werden als 32 unterschiedliche Spaltenadressen in der COLUMN- (Spalten-) Zeile der Tabelle 1 geliefert. Die DRAM-Adressenbits A4 bis A0 werden von Zählerbits CNT4 bis CNT0 geliefert, die Ausgangsbits eines internen Zählers sind. Die dritte Reihe in der Tabelle 1 enthält die Paritätsreihenadressen, und die vierte Reihe in der Tabelle 1 enthält die Paritätsspaltenadressen. Für das erste Beispiel der Tabelle 1 werden 35 Adressen an den DRAM geliefert, um einen Zugriff auf eine Reihe, 32 Spalten und eine Paritätsreihe und -spalte auszuführen. In ähnlicher Weise zeigt das zweite Beispiel der Tabelle 1 die Adressenmultiplexierung, die für einen 64K-DRAM-Pufferspeicher erforderlich ist. Tabelle 1
  • Es sei bemerkt, daß für die Tabelle 1 zur Berücksichtigung von zwei unterschiedlichen Speicherkonfigurationen acht unterschiedliche interne Adressenleitungen typischerweise geändert werden müssen. Diese Änderungen werden durch Multiplexieren der entsprechenden internen Adressenleitung und der Zählerausgangsleitungen an ausgewählte DRAM-Adressenleitungen bewirkt.
  • Die Tabelle 2 zeigt, wie die Logik gemäß der Erfindung interne Adressen und Zähler auf die DRAM-Adressenleitungen für vier unterschiedliche Speicherkonfigurationen abbildet. Es sei bemerkt, daß die Schreibweise IAn sich auf die interne Adresse bezieht, wobei angenommen wird, daß diese Information als Bits 17 : 4 dargeboten wird, wobei die Schreibweise 'Bits 17 : 4' den Bereich von Bits, beginnend mit dem höchstbewerteten Bit 17 zum niedrigstbewerteten Bit 4 anzeigt. CNTN bezieht sich auf die Halbbyte- Zählung, die fünf Ausgangsbits aufweist (s. Tabelle 2, Cntn = 0 bis Cntn = 4), die in der Lage sind, 32 unterschiedliche Spaltenadressen darzustellen, beispielsweise von der Spaltenadresse 1 bis 32. Wenn zwei DRAM-Bausteine verwendet werden, so werden lediglich vier Bits der Halbbyte-Zählung verwendet. Ein Vergleich der ersten beiden Beispiele der Tabelle 2 mit den Beispielen der Tabelle 1 zeigt, daß für die Tabelle 1 die DRAM- Bitleitung A7 sieben unterschiedliche interne Bitleitungen aufweist, die auf sie multiplexiert werden. Für die ersten beiden Beispiele der Tabelle 2 hat die Bitleitung A7 lediglich drei interne Bitleitungen, die auf sie multiplexiert werden. Damit erfordert die Tabelle 2 einen kleineren Satz von Multiplexern für die internen Adressen, um die internen Adressen auf die DRAM-Adressenbits abzubilden. Dies ergibt eine beträchtliche Verringerung der Kompliziertheit der Schaltung. Tabelle 2
  • Fig. 9 ist ein ausführlicheres Blockschaltbild einer in Fig. 8 gezeigten Steuerzustandsmaschine 200. Die Steuerzustandsmaschine 200 schließt eine erste programmierbare Logikanordnung (PLA0) 300 und eine zweite programmierbare Logikanordnung (PLA1) 301 ein, die eine kombinatorische Logik zur Kombination der verschiedenen Eingangssignale an die Steuerzustandsmaschine 200 bilden, um Logik-Ausgangssignale zu liefern. Der DRAM-Takt an dem Anschluß 204 taktet eine Anzahl von D-Flip-Flop-Schaltungen, um die kombinatorischen Ausgänge der programmierbaren Logikanordnungen 300, 301 zwischenzuspeichern. Verschiedene andere Logikelemente sind an den Ausgangsanschlüssen der verschiedenen D-Flip-Flop-Schaltungen vorgesehen, um die Ausgangssignale an die verschiedenen Anschlüsse zu liefern, wie dies in den Zeichnungen gezeigt ist.
  • Fig. 10 zeigt die Schaltungseinzelheiten des in Fig. 8 gezeigten Adressengenerators 202. Im wesentlichen führen diese Schaltungen die Verbindungsanordnung der Tabelle 2 gerätemäßig aus. Die an dem Bus 236 gelieferten internen Adressensignale werden auf diesem Bus an verschiedene UND/ODER/INVERTIERUNGS-Stufen verteilt, die als Multiplexer 401 bis 409 wirken, um diese Adressenleitungen entsprechend der internen Logik auszuwählen, die von der Steuerzustandsmaschine 200 und verschiedenen anderen Logikelementen geliefert wird, wie dies in Fig. 10A und 10B gezeigt ist. Das Ausgangssignal jedes dieser Multiplexer 401 bis 409 ist mit den D-Eingangsanschlüssen einer jeweiligen D-Flip- Flop-Schaltung 410 bis 418 gekoppelt, die die Ausgangssignale dieser Multiplexer unter der Steuerung des DRAM-Taktes zwischenspeichert, der an dem Anschluß 204 geliefert wird. Die einzelnen Spalten-Zellsignale CNTN gemäß Tabelle 2 werden von Ausgangssignalen von bestimmten der D-Flip-Flop-Schaltungen 413 bis 418 geliefert und über Multiplexer 420 bis 425 angekoppelt und in Eingänge der D-Flip-Flop-Schaltungen 413 bis 418 eingespeichert.
  • Es sei bemerkt, daß alle in den Zeichnungen gezeigten Logikelemente übliche Zellen und Bausteine sind, die von der ATNT 1,25 Mikron-CMOS-Zellenbibliothek geliefert werden.

Claims (14)

1. Verfahren zur vorübergehenden Speicherung und Rückgewinnung von q-Bit-Zeicheninformationsdaten für ein Informationsspeichersystem in einer y-Bit-breiten Pufferspeichereinheit, die eine Vielzahl von DRAM-Bausteinen aufweist, wobei q größer als y ist,
gekennzeichnet durch die folgenden Schritte:
Schaffung einer virtuellen Speicheradresse für jede Einheit von q-Bit-Zeicheninformationsdaten, wobei die Zeicheninformationsdaten in einem Block organisiert sind, der z derartige Informationszeichen umfaßt,
Umsetzen der virtuellen Speicheradressen in entsprechende Adressen von Speicherplätzen in der Pufferspeichereinheit zur Speicherung von y-Bit-Gruppen des Blockes in der Pufferspeichereinheit, wobei der Umsetzungsschritt:
das Auswählen einer Reihenadresse für die Speicherung des Blockes,
die Auswahl einer Basis-Spaltenadresse für den Block, und
die aufeinanderfolgende Weiterschaltung der Basis- Spaltenadresse zur Schaffung zusätzlicher Spaltenadressen für aufeinanderfolgende y-Bit-Gruppen des Blockes einschließt,
Übertragen jeder der y-Bit-Gruppen des Blockes über einen y-Bit-Datenbus zu einem Adressenplatz in der Pufferspeichereinheit, der durch den Umsetzungsschritt bestimmt ist,
Schaffung eines x-Bit-Fehlerdetektions-Codewortes für jeden derartigen Block;
Auswählen einer Adresse zur Speicherung des x-Bit- Fehlerdetektions-Codewortes in der Pufferspeichereinheit, wobei dieses Auswählen einer Adresse:
das Auswählen einer Fehlerdetektions-Codewort-Reihenadresse,
das Auswählen einer Fehlerdetektions-Codewort-Basis- Spaltenadresse für eine erste y-Bit-Gruppe des x-Bit- Fehlerdetektions-Codewortes,
das Weiterschalten der Fehlerdetektions-Codewort- Basis-Spaltenadresse um y zur Schaffung einer zweiten Spaltenadresse für eine zweite y-Gruppe des x-Bit- Fehlerdetektions-Codewortes einschließt, und
Übertragen des Fehlerdetektions-Codewortes über den y-Bit-Datenbus an die ausgewählten Adressenplätze für das x-Bit- Fehlerdetektions-Codewort in der Pufferspeichereinheit.
2. Speicher nach Anspruch 1, bei dem die Fehlerdetektions-Codeworte in einem ersten im wesentlichen zusammenhängenden Adressenraum in der Pufferspeichereinheit gespeichert werden und die Zeicheninformationsdaten- Einheiten in einem zweiten, im wesentlichen zusammenhängenden Adressenraum in der Pufferspeichereinheit gespeichert werden, der von dem ersten Adressenraum getrennt ist, wobei die Fehlerdetektions-Codeworte getrennt von den Zeicheninformationsdaten gespeichert werden, auf die sie sich beziehen.
3. Verfahren nach Anspruch 1 oder 2, bei dem die Umsetzung der virtuellen Speicheradresse die Auswahl der Reihen- und Spaltenadresse unter Verwendung von Multiplexerschaltungen einschließt.
4. Verfahren nach einem der Ansprüche 1 bis 3, das weiterhin die Zwischenspeicherung der Reihen- und Spaltenadressen in Zwischenspeicherschaltungen umfaßt, und bei dem die aufeinanderfolgende Weiterschaltung der Basisspaltenadresse die Ankopplung von Ausgängen der Zwischenspeicherschaltungen über Multiplexerschaltungen einschließt, die mit den Eingängen der Zwischenspeicherschaltungen gekoppelt sind.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die Pufferspeichereinheit einen DRAM umfaßt, der in einer Seitenbetriebsart arbeitet.
6. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die Pufferspeichereinheit einen DRAM umfaßt, der in einer statischen Spaltenbetriebsart arbeitet.
7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem die Übertragung des Fehlerdetektions-Codewortes die Bildung einer Adresse für jedes gelieferte der Fehlerdetektions- Codeworte aus der Basisadresse des Blockes von Daten durch Rechtsverschieben der Basisadresse des Blockes von Daten um eine vorgegebene Anzahl von Bits und durch Füllen der auf diese Weise freiwerdenden oberen Bitpositionen mit einem festen Bitmuster einschließt.
8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem q gleich 8, x gleich 8, y gleich 4 und z gleich 16 ist.
9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Informationsspeichersystem einen Magnetplatte einschließt.
10. Verfahren zur vorübergehenden Speicherung und Rückgewinnung von q-Bit-Zeicheninformationsdaten für ein Informationsspeichersystem in einer y-Bit-breiten Pufferspeichereinheit, die eine Vielzahl von DRAM-Bausteinen aufweist, wobei q größer als y ist,
gekennzeichnet durch die folgenden Schritte:
Schaffung einer virtuellen Speicheradresse für jede Einheit der q-Bit-Zeicheninformationsdaten, wobei die Zeicheninformationsdaten in einem Block mit z derartigen Informationszeichen organisiert sind,
Umsetzen der virtuellen Speicheradressen in entsprechende Adressen von Speicherplätzen in der Pufferspeichereinheit zur Speicherung von y-Bit-Gruppen des Blockes in der Pufferspeichereinheit, wobei der Umsetzungsschritt:
das Auswählen einer Reihenadresse für die Speicherung des Blockes,
die Auswahl einer Basis-Spaltenadresse für den Block, die Zwischenspeicherung der Reihen- und Basis-Spaltenadressen in Zwischenspeicherschaltungen, und das aufeinanderfolgende Weiterschalten der Basis- Spaltenadresse zur Schaffung zusätzlicher Spaltenadressen für aufeinanderfolgende y-Bit-Gruppen des Blockes durch Koppeln von Ausgängen der Zwischenspeicherschaltungen über Multiplexerschaltungen einschließt, die mit Eingängen der Zwischenspeicherschaltungen gekoppelt sind, um die Spaltenadressen weiterzuschalten, und
die Übertragung jeder der y-Bit-Gruppen des Blockes über einen y-Bit-Datenbus an einen Adressenplatz in der Pufferspeichereinheit, der durch den Umsetzungsschritt bestimmt ist.
11. Verfahren nach Anspruch 10, das weiterhin folgende Schritte umfaßt:
Schaffen eines x-Bit-Fehlerdetektions-Codewortes für jeden der Blöcke,
Auswahl einer Adresse zur Speicherung des x-Bit-Fehlerdetektions-Codewortes in der Pufferspeichereinheit, wobei die Auswahl einer Adresse folgendes einschließt:
das Auswählen einer Fehlerdetektions-Codewort-Reihen- Adresse,
das Auswählen einer Fehlerdetektions-Codewort-Basis- Spaltenadresse für eine erste y-Bit-Gruppe des x-Bit- Fehlerdetektions-Codewortes,
das Weiterschalten der Fehlerdetektions-Codewort- Basis-Spaltenadresse um y zur Schaffung einer zweiten Spaltenadresse für eine zweite y-Bit-Gruppe des x-Bit-Fehlerdetektions-Codewortes, und
Übertragen des Fehlerdetektions-Codewortes über den y-Bit-Datenbus an die ausgewählten Adressenplätze für das x-Bit-Fehlerdetektions-Codewort in der Pufferspeichereinheit.
12. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die aufeinanderfolgende Weiterschaltung der Basis- Spaltenadresse zur Schaffung zusätzlicher Spaltenadressen für aufeinanderfolgende y-Bit-Gruppen des Blockes die aufeinanderfolgende Weiterschaltung der Basis-Spaltenadresse um y umfaßt, um zusätzliche Adressenspaltenadressen für aufeinanderfolgende y-Bit-Gruppen des Blockes zu schaffen.
13. Verfahren nach einem der Ansprüche 10, 11 und 12 unter Rückbeziehung auf Anspruch 11, bei dem die Auswahl einer Fehlerdetektions-Codewort-Reihenadresse die Auswahl einer Fehlerdetektions-Codewort-Reihenadresse umfaßt, die von der für die Speicherung des Blockes ausgewählten Reihenadresse verschieden ist, und bei dem die Auswahl eines Fehlerdetektions-Codewortes die Auswahl einer Fehlerdetektions- Codewort-Basis-Spaltenadresse für eine erste y-Bit-Gruppe des x-Bit-Fehlerdetektions-Codewortes umfaßt, die von der ausgewählten Block-Basis-Spaltenadresse verschieden ist, wobei die Zeicheninformation im wesentlichen zusammenhängend in der Pufferspeichereinheit gespeichert wird, und wobei die Fehlerdetektions-Codeworte im wesentlichen zusammenhängend in der Pufferspeichereinheit und getrennt von den Zeicheninformationsdaten gespeichert werden, auf die sich die Fehlerdetektions-Codeworte beziehen.
14. Verfahren nach einem der Ansprüche 1 bis 13, bei dem die q-Bit-Zeicheninformation aus 8-Bit-Zeicheninformationsdaten besteht, wobei die Zeicheninformation in 16-Byte- Blöcken organisiert ist, wobei der y-Bit-breite Pufferspeicher aus 4-Bit-breitem DRAM besteht, und wobei das x-Bit-Fehlerdetektions-Codewort aus einem 8-Bit-Codewort besteht.
DE69131186T 1990-03-02 1991-02-26 Verfahren zum Steuern eines Pufferspeichers für einen Magnetplattenspeicher Expired - Fee Related DE69131186T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/487,740 US5280601A (en) 1990-03-02 1990-03-02 Buffer memory control system for a magnetic disc controller

Publications (2)

Publication Number Publication Date
DE69131186D1 DE69131186D1 (de) 1999-06-10
DE69131186T2 true DE69131186T2 (de) 1999-08-26

Family

ID=23936929

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69131186T Expired - Fee Related DE69131186T2 (de) 1990-03-02 1991-02-26 Verfahren zum Steuern eines Pufferspeichers für einen Magnetplattenspeicher

Country Status (6)

Country Link
US (1) US5280601A (de)
EP (1) EP0444885B1 (de)
JP (1) JP2772150B2 (de)
DE (1) DE69131186T2 (de)
HK (1) HK1013344A1 (de)
SG (1) SG47724A1 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655147A (en) * 1991-02-28 1997-08-05 Adaptec, Inc. SCSI host adapter integrated circuit utilizing a sequencer circuit to control at least one non-data SCSI phase without use of any processor
IL100127A0 (en) * 1991-03-11 1992-08-18 Future Domain Corp Scsi controller
US5371861A (en) * 1992-09-15 1994-12-06 International Business Machines Corp. Personal computer with small computer system interface (SCSI) data flow storage controller capable of storing and processing multiple command descriptions ("threads")
US5537425A (en) * 1992-09-29 1996-07-16 International Business Machines Corporation Parity-based error detection in a memory controller
US5659690A (en) * 1992-10-15 1997-08-19 Adaptec, Inc. Programmably configurable host adapter integrated circuit including a RISC processor
US5379261A (en) * 1993-03-26 1995-01-03 United Memories, Inc. Method and circuit for improved timing and noise margin in a DRAM
KR0139776B1 (ko) * 1993-11-26 1998-07-15 이헌조 씨디 그래픽스 디코더의 디램제어장치
WO1995016950A1 (en) * 1993-12-14 1995-06-22 Apple Computer, Inc. Method and apparatus for transferring data between a computer and a peripheral storage device
US5983309A (en) * 1994-07-27 1999-11-09 Seagate Technology, Inc. Autonomous high speed address translation with defect management for hard disc drives
US5729719A (en) * 1994-09-07 1998-03-17 Adaptec, Inc. Synchronization circuit for clocked signals of similar frequencies
WO1996032674A2 (en) * 1995-04-13 1996-10-17 Cirrus Logic, Inc. Semiconductor memory device for mass storage block access applications
US5692165A (en) * 1995-09-12 1997-11-25 Micron Electronics Inc. Memory controller with low skew control signal
US5765203A (en) * 1995-12-19 1998-06-09 Seagate Technology, Inc. Storage and addressing method for a buffer memory control system for accessing user and error imformation
US6021482A (en) * 1997-07-22 2000-02-01 Seagate Technology, Inc. Extended page mode with a skipped logical addressing for an embedded longitudinal redundancy check scheme
US6148388A (en) * 1997-07-22 2000-11-14 Seagate Technology, Inc. Extended page mode with memory address translation using a linear shift register
US6009547A (en) * 1997-12-03 1999-12-28 International Business Machines Corporation ECC in memory arrays having subsequent insertion of content
US6925589B1 (en) * 1998-10-29 2005-08-02 International Business Machines Corporation Method for translating physical cell-coordinates of a memory product to n-dimensional addresses
JP3778540B2 (ja) * 1999-05-17 2006-05-24 東芝デジタルメディアエンジニアリング株式会社 信号処理回路及び情報記録装置
JP2002170399A (ja) * 2000-12-05 2002-06-14 Fujitsu Ltd 半導体装置
US20040268033A1 (en) * 2003-06-24 2004-12-30 Seagate Technology Llc Refreshing data in a data storage device
US7836380B2 (en) * 2006-10-31 2010-11-16 Intel Corporation Destination indication to aid in posted write buffer loading
US7961532B2 (en) * 2008-06-27 2011-06-14 Rambus Inc. Bimodal memory controller

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2112256B (en) * 1981-11-18 1985-11-06 Texas Instruments Ltd Memory apparatus
US4514806A (en) * 1982-09-30 1985-04-30 Honeywell Information Systems Inc. High speed link controller wraparound test logic
US4683555A (en) * 1985-01-22 1987-07-28 Texas Instruments Incorporated Serial accessed semiconductor memory with reconfigureable shift registers
US4916603A (en) * 1985-03-18 1990-04-10 Wang Labortatories, Inc. Distributed reference and change table for a virtual memory system
US4819152A (en) * 1985-04-05 1989-04-04 Raytheon Company Method and apparatus for addressing a memory by array transformations
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
JPS62149099A (ja) * 1985-12-23 1987-07-03 Toshiba Corp メモリアクセス制御回路
US4803621A (en) * 1986-07-24 1989-02-07 Sun Microsystems, Inc. Memory access system
US4845664A (en) * 1986-09-15 1989-07-04 International Business Machines Corp. On-chip bit reordering structure
JPS63186345A (ja) * 1987-01-29 1988-08-01 Toshiba Corp アドレス多重化制御回路
US5007020A (en) * 1987-03-18 1991-04-09 Hayes Microcomputer Products, Inc. Method for memory addressing and control with reversal of higher and lower address
US5057837A (en) * 1987-04-20 1991-10-15 Digital Equipment Corporation Instruction storage method with a compressed format using a mask word
EP0303752B1 (de) * 1987-08-20 1993-06-02 International Business Machines Corporation Speicherzugriffssteuerungsvorrichtung in einem Gemischtdatenformatsystem
US4992956A (en) * 1987-10-08 1991-02-12 Advanced Micro Devices, Inc. Apparatus for assembling data for supply to a scanning output device
US4888773A (en) * 1988-06-15 1989-12-19 International Business Machines Corporation Smart memory card architecture and interface
US4916654A (en) * 1988-09-06 1990-04-10 International Business Machines Corporation Method for transfer of data via a window buffer from a bit-planar memory to a selected position in a target memory
US5058005A (en) * 1988-09-09 1991-10-15 Compaq Computer Corporation Computer system with high speed data transfer capabilities
US5065312A (en) * 1989-08-01 1991-11-12 Digital Equipment Corporation Method of converting unique data to system data

Also Published As

Publication number Publication date
US5280601A (en) 1994-01-18
DE69131186D1 (de) 1999-06-10
JP2772150B2 (ja) 1998-07-02
JPH06131124A (ja) 1994-05-13
HK1013344A1 (en) 1999-08-20
EP0444885A3 (de) 1995-01-25
EP0444885A2 (de) 1991-09-04
EP0444885B1 (de) 1999-05-06
SG47724A1 (en) 1998-04-17

Similar Documents

Publication Publication Date Title
DE69131186T2 (de) Verfahren zum Steuern eines Pufferspeichers für einen Magnetplattenspeicher
DE3909896C2 (de)
DE69232458T2 (de) Programmierbare Zeitsteuerung für Speicher
DE69027030T2 (de) Eine fehlertolerante datenspeicherungsanordnung
DE2803989C2 (de) Digitaldatenspeicher mit wahlfreiem Zugriff
DE2617408C3 (de) Speichermodul fur ein Datenverarbeitungsgerät mit Speicherhierarchie
DE69826863T2 (de) Verfahren und vorrichtung zur abstimmung eines zur verrieglung digitaler signalen gebrauchten taktsignals und speichervorrichtung die sie verwendet
DE2948159C2 (de) Integrierter Speicherbaustein mit wählbaren Betriebsfunktionen
DE60016220T2 (de) Speichererweiterungsmodul mit einer vielzahl von speicherbanken und einer banksteuerungschaltung
DE3724317C2 (de)
DE69422120T2 (de) Synchroner dynamischer Speicher mit wahlfreiem Zugriff
DE69509134T2 (de) Doppelbankspeicher und systeme, die diesen benutzen
DE19882486B4 (de) Synchroner, nicht-flüchtiger Seitenmodus-Speicher
DE68922975T2 (de) Speichereinheit mit zwei Toren.
DE2230987C2 (de)
DE3587375T2 (de) Schaltung zur zwischenspeicherung von bilddaten.
DE2061854A1 (de) Speicher aus Schieberegistern
DE19900365A1 (de) Hochgeschwindigkeits-Halbleiterspeichervorrichtung, die eine Datensequenz für eine Burst-Übertragung ändern kann
DE10147592A1 (de) System und Verfahren zum Vorsehen geichzeitiger Zeilen- und Spaltenbefehle
DE4019135A1 (de) Serieller speicher auf ram-basis mit parallelem voraus-lesen
DE69123987T2 (de) Stossbetrieb für Mikroprozessor mit externem Systemspeicher
DE69326494T2 (de) Halbleiterspeicheranordnung
DE69029815T2 (de) Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung
US6035381A (en) Memory device including main memory storage and distinct key storage accessed using only a row address
DE1499607B1 (de) Zugriffschaltung fuer umlaufspeicher in einer datenverarbei tungsanlage

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: SEAGATE TECHNOLOGY LLC, SCOTTS VALLEY, CALIF., US

8328 Change in the person/name/address of the agent

Free format text: HENKEL, FEILER & HAENZEL, 81675 MUENCHEN

8339 Ceased/non-payment of the annual fee