DE69326236T2 - Speicher mit variabeler Verschachtelungshöhe und verwandte Konfigurationseinheit - Google Patents

Speicher mit variabeler Verschachtelungshöhe und verwandte Konfigurationseinheit

Info

Publication number
DE69326236T2
DE69326236T2 DE69326236T DE69326236T DE69326236T2 DE 69326236 T2 DE69326236 T2 DE 69326236T2 DE 69326236 T DE69326236 T DE 69326236T DE 69326236 T DE69326236 T DE 69326236T DE 69326236 T2 DE69326236 T2 DE 69326236T2
Authority
DE
Germany
Prior art keywords
memory
module
field
code
modules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69326236T
Other languages
English (en)
Other versions
DE69326236D1 (de
Inventor
Antonio Grassi
Daniele Zanzottera
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.)
Bull SAS
Original Assignee
Bull HN Information Systems Italia SpA
Bull HN Information Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull HN Information Systems Italia SpA, Bull HN Information Systems Inc filed Critical Bull HN Information Systems Italia SpA
Publication of DE69326236D1 publication Critical patent/DE69326236D1/de
Application granted granted Critical
Publication of DE69326236T2 publication Critical patent/DE69326236T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf einen Speicher mit variablem Verschachtelungspegel und einen zugehörigen Konfigurator.
  • Es ist bekannt, daß bei modernen Datenverarbeitungssystemen die Arbeitsspeichereinheit eine "Flaschenhals"-Begrenzung für das System bildet.
  • Während die verschiedenen Prozessoren mit sehr kurzen Operationszyklen in der Größenordnung von einigen 10 Nanosekunden arbeiten können, sind die Arbeitsspeicher, die gegenwärtig in Verwendung sind, die aus Kostengründen von dem DRAM-Typ sind, inhärent langsamer, wobei die Lese/Schreibzeit in der Größenordnung von Hunderten von Nanosekunden liegen kann.
  • Jeder Speicherzyklus erfordert eine Auswahloperation, damit an dem Speicherort geschrieben oder von demselben gelesen wird, die um so komplexer und langsamer wird, je größer die Größe oder Kapazität des Speichers ist.
  • Um diese Begrenzung zu verhindern, wurden Speicher des sogenannten verschachtelten Typs seit langem vorgeschlagen, die eine Mehrzahl von diskreten und unabhängig adressierbaren Speichermodulen besitzen.
  • Somit können mehrere Module gleichzeitig für Lese- und/oder Schreiboperationen zu einer Zeit aktiviert werden.
  • Da die Datenadressierung und die Transferoperation allgemein durch einen einzelnen Kommunikationskanal oder Bus, der von unterschiedlichen Prozessoren und Speichermodulen gemeinsam verwendet wird, durchgeführt wird, finden in der Praxis die Speicherzugriffsoperationen nicht völlig gleichzeitig, sondern vielmehr hintereinander statt.
  • Jedoch überlappen Lese/Schreibzyklen zeitlich stark.
  • Der Grundsatz, der verschachtelten Speichern zugrundeliegt, besteht in der lokalen und sequentiellen Beschaffenheit von Daten und Befehlen.
  • Wenn ein Prozeß ausgeführt wird und daher Instruktionen gelesen oder Daten gelesen/geschrieben werden, werden die verwendeten Informationen allgemein durch aufeinanderfolgende Adressen identifiziert.
  • Folglich kann, wenn aufeinanderfolgende Adressen auf unterschiedliche Speichermodule zeigen, der Zugriff auf die verschiedenen Module in zeitlicher Überlappung stattfinden.
  • Beispielsweise kann bei dem einfachsten Fall eines zweifach verschachtelten Speichers, der zwei Module aufweist, das niederstwertige Bit in einer Adresse, das alternierend geradzahlige und ungeradzahlige Adressen definiert, verwendet werden, um entsprechend seinem Pegel eines der Module, die somit dem Speichern von Informationen mit geradzahliger bzw. ungeradzahliger Adresse zugeordnet sind, auszuwählen.
  • Die Verschachtelung muß nicht auf zwei Speichermodule begrenzt sein, wobei eine Anzahl N von niederstwertigen Adreßbits ermöglicht, daß zwei Speichermodule auf eine einfache, schnelle und wiederholte Art und Weise ausgewählt werden.
  • Niederstwertige Bits in einer Adresse bedeuten hier diejenigen Bits einer Adresse, die die Informationseinheit identifizieren, die durch eine Lese/Schreiboperation von einem Speicher gelesen oder in denselben geschrieben wird.
  • Diese Einheit oder dieser Eintrag kann ein oder mehrere Byte aufweisen, üblicherweise eine Anzahl von Byte, die gleich einer Potenz von 2 ist.
  • Allgemein ist die Informationseinheit, die durch eine Adres se identifiziert wird, das Byte.
  • Folglich werden die Adreßbits, die das Byte in der Informationseinheit, die gelesen oder geschrieben wird, identifizieren, verwendet, um weder den Speicher noch seine Module zu adressieren.
  • Speicher der verschachtelten Art können nur auf eine einfache Art und Weise implementiert werden, wenn alle Module die gleiche Kapazität besitzen und zahlenmäßig einer Potenz von 2 entsprechen.
  • Der Pegel oder der Grad einer Verschachtelung hängt von der Anzahl der Module ab: wenn diese Anzahl 2 ist, beträgt der Verschachtelungspegel oder der -Grad 2, wenn dieselbe 4 ist, besitzt die Verschachtelung einen Grad von 4, usw..
  • In Systemen, bei denen der Speicher erweitert werden kann und die Anzahl von installierten Modulen verändert werden kann, um die Anforderungen eines Benutzers zu erfüllen und in Bezug auf vorhersehbare technologische Entwicklungen, können die verschiedenen Module unterschiedliche Kapazitäten zwischen Modulen besitzen (allgemein ein Mehrfaches einer Basiskapazität), wobei eine Modulverschachtelung basierend auf einer Modulauswahl, die mit den niederstwertigen Bits durchgeführt wird, nicht möglich ist, und wobei der Speicher als ein Stapel von Modulen eingestellt ist, wobei jedes Modul durch Adressen einer stets zunehmenden Wertigkeit adressiert werden, wobei eine Modulauswahl unter Verwendung der Bits der größten Adreßwertigkeit durchgeführt wird.
  • Bestenfalls werden die verschiedenen Module als zusammengesetzt aus einer Mehrzahl von Blöcken, die Basiskapazitäten aufweisen, betrachtet, wobei die verschiedenen Blöcke in einer zunehmenden Adreßreihenfolge angeordnet sind, derart, daß Blöcke, die zu unterschiedlichen Modulen gehören, einander der Reihe nach folgen.
  • Dies wird als hohe Verschachtelung bezeichnet, um dieselbe von der richtigen Verschachtelung, die auf den niederstwertigen Bits basiert, zu unterscheiden, welche auch als niedrige Verschachtelung oder einfache Verschachtelung bezeichnet wird.
  • Auf diese Weise kann ein Vorteil aus dem Ort der Informationen, für die Daten und Instruktionen allgemein durch Adressen, die auf unterschiedliche Speicherbereiche zeigen, identifiziert sind, gezogen werden, wobei in dem Fall mehrerer gleichzeitiger Prozesse die Daten- und Instruktionsbereiche, die durch die verschiedenen Prozesse verwendet werden, üblicherweise unterschiedlich sind, und daher verschiedenen Speicherblocks zugeordnet sind.
  • Es ist klar, daß bei diesen Strukturen das Adreßsequenzkriterium nicht verwendet werden kann.
  • Stattdessen sind Speicher, die mehrere Module aufweisen, erwünscht, die ungeachtet der Anzahl von Modulen und deren Kapazität (niedrige) Verschachtelungsstrukturen liefern können und die, selbst bei variablen Speicherkonfigurationen, die Anzahl von installierten Modulen am besten ausnutzen, um eine Verschachtelung des höchstmöglichen Pegels und die größtmögliche Speicherkapazität zu erhalten.
  • Diese Ergebnisse werden durch einen Speicher mit variablem Verschachtelungspegel und zugehöriger Konfigurationseinrichtung der vorliegenden Erfindung erhalten, bei der im Fall eines Speichers, der aus einer Mehrzahl von unabhängig adressierbaren Modulen, die in einer beliebigen Anzahl und mit verschiedenen Kapazitäten, die Mehrfache einer Basiskapazität sind, vorgesehen sind, eine Einrichtung zum Erkennen der Anzahl N von installierten Modulen und deren Kapazität C vorgesehen ist. Dem Speicher ist ferner eine Konfigurationslogik zugeordnet, die durch Informationen über die Anzahl und Kapazität der eingestellten Module eingestellt ist, die eine vorbestimmte Anzahl von höchst- und niederst wertigen Bits einer Speicheradresse empfängt und auf die empfangenen Bits durch das Ausgeben eines Modulauswahlcodes und eines Adreßbitauswahlcodes zur Auswahl der Bits, die bei der Adressierung in dem Modul verwendet werden sollen, oder sogar direkt von bestimmten Bits zum Adressieren in dem Modul, anspricht.
  • Vorzugsweise weist die Formatierungslogik einen Lese/Schreibspeicher einer adäquaten Kapazität auf.
  • Diese Logik ist hoch flexibel dahingehend, daß dieselbe nicht nur ermöglicht, daß der höchste Verschachtelungsgrad für die tatsächliche Konfiguration des installierten Speichers übernommen wird, sondern ferner die Freiheit liefert, entweder die hohen oder niedrigen Verschachtelungstypen zu wählen, um variierende Anforderungen der Prozesse, die ausgeführt werden, aufzunehmen.
  • Bei bestimmten Prozeßtypen kann sich tatsächlich zeigen, daß eine hohe Verschachtelung vorteilhafter ist als eine niedrige Verschachtelung, obwohl in den meisten Fällen das Gegenteil gilt.
  • Gemäß einem weiteren Aspekt dieser Erfindung umfaßt, um die Speicherkapazität der Konfigurationslogik zu minimieren, dieselbe eine Mehrzahl von Registern, von denen jedes für einen spezifischen (geringen) Verschachtelungspegel von allen Pegeln, die für die verschiedenen Speicherkonfigurationen möglich sind, bestimmt ist, und von denen jedes angepaßt ist, um einen Auswahlcode eines zugeordneten Moduls mit seinem Verschachtelungspegel zu speichern.
  • In diesem Fall werden in den Lese/Schreibspeicher der Konfigurationslogik nur die höchstwertigen Adreßbits eingegeben, wobei übereinstimmend mit den eingegebenen Bits ein binäres Signal, das den zu verwendenden Verschachtelungstyp anzeigt, und ein Code, der das zu verwendende Modul (hohe Verschachtelung) oder den Verschachtelungspegel (niedrige Verschach telung), entsprechend dem Verschachtelungstyp definiert, ausgegeben werden.
  • Ferner wird ein zweiter Code, der die höchstwertigen Bits, die zur Moduladressierung verwendet werden sollen, darstellt, oder mit gleichem Ergebnis ein zweiter Steuer/Modifikationscode der höchstwertigen Bits, die zur Moduladressierung verwendet werden sollen, erzeugt.
  • Der Code, der den Verschachtelungspegel anzeigt, ermöglicht zusammen mit den niederstwertigen Bits, daß eines der verschiedenen Register zum Lesen des Modulauswahlcodes, der in demselben enthalten ist, und dadurch zum Bewirken der Modulauswahl, ausgewählt wird.
  • Gemäß einem weiteren Aspekt dieser Erfindung besteht der Speicher aus Platinen, von denen jede aus zwei wechselseitig zugeordneten Modulen besteht, wobei die Register, die zum Speichern des Modulauswahlcodes vorgesehen sind, einen Platinen- oder Modulpaar-Auswahlcode speichern, wobei die Auswahl zwischen den zwei zugeordneten Modulen auf der Platine durch das niederstwertige Adreßbit bewirkt wird.
  • Folglich kann die Anzahl der erforderlichen Register reduziert sein.
  • Die Merkmale und Vorteile dieser Erfindung werden aus der folgenden Beschreibung eines bevorzugten Ausführungsbeispiels derselben und den beigefügten Zeichnungen offensichtlich. Es zeigen:
  • Fig. 1 in schematischer Blockform einen Speicher mit variablem Verschachtelungspegel, der diese Erfindung verkörpert;
  • Fig. 2 ein Speicheradreßformat für den Speicher in Fig. 1;
  • Fig. 3 bis 9 schematisch einige der verschiedenen mög lichen Konfigurationen eines Speichers mit variablem Verschachtelungspegel, die in dem Speicher von Fig. 1 entsprechend der Anzahl von installierten Modulen und deren Kapazität implementiert sein können;
  • Fig. 10 ein bevorzugtes Ausführungsbeispiel einer Konfigurationseinrichtung für den Speicher in Fig. 1;
  • Fig. 11 einen Speicher, bei dem die Module in Paaren angeordnet sind, wobei jedes Paar auf einer einzelnen Platine angeordnet ist;
  • Fig. 12 ein modifiziertes Ausführungsbeispiel des Konfigurators für einen Speicher, der paarweise angeordnete Module aufweist; und
  • Fig. 13 ein weiteres modifiziertes Ausführungsbeispiel des Konfigurators für einen Speicher, der paarweise angeordnete Module aufweist.
  • Bezugnehmend auf Fig. 1 weist ein Datenverarbeitungssystem, speziell ein Multiprozessorsystem, eine Mehrzahl von Verarbeitungseinheiten PU1, PU2, PUN, die durch einen Systembus 4, durch den die verschiedenen Prozessoren Adressen, Daten und Befehle zu einem Speicher senden und Informationen, die von dem Speicher gelesen werden, empfangen, mit einem Arbeitsspeicher 3 verbunden sind.
  • Der Arbeitsspeicher 3 besitzt ein Eingangsadressen-Latchregister 5 (ADR), ein Moduladressen-Latchregister 6 (MADR) und eine Mehrzahl von Gehäusen 8, 9, 10 für eine entsprechende Mehrzahl 11, 12, 13 von Speicherkarten oder -Modulen, die, bei dem Beispiel von Fig. 1, zahlenmäßig acht sind und mit MOD1, MOD2, ... bzw. MD08 bezeichnet sind.
  • Die Anzahl von Modulen, die tatsächlich in die entsprechenden Gehäuse installiert sind, hängt von den Bedürfnissen des Benutzers ab.
  • Beispielsweise ist es möglich, daß ein Benutzer anfänglich nur ein Speichermodul und später die Installation von einem oder mehreren weiteren Speichermodulen, von denen jedes möglicherweise eine höhere Kapazität als die des Moduls, das anfänglich installiert wurde, aufweist, benötigt.
  • Der Arbeitsspeicher besitzt eine Speicherkonfigurationseinheit 14 (der hierin nachfolgend als der Konfigurator bezeichnet wird), die eines der verschiedenen installierten Module entsprechend der Adresse, die in dem Register 5 (ADR) empfangen und zwischengespeichert wird, auswählt und aktiviert.
  • Das Problem des Identifizierens der installierten Module und deren Kapazitäten wurde durch ein bekanntes System, wie es beispielsweise in den Europäischen Patenten EP-A-0080626 und EP-A-0108346 beschrieben ist, gelöst.
  • Alternativ sind, wie in der Figur gezeigt ist, die verschiedenen Module miteinander und mit Prozessoren durch einen Zwei-Leitungs-Konfigurations-Überwachungskanal des I²CBUS- Types verbunden, der ermöglicht, daß einer der Prozessoren die verschiedenen Module abfragt, um deren Vorliegen und Kapazität zu überprüfen und folglich den Konfigurator 14 einstellt, der durch die Schnittstellenschaltungen 7A ebenfalls mit dem Kanal 7 verbunden ist.
  • Der I²CBUS (Inter-Integrated Circuit Bus) wurde spezifisch für diese Art einer Steuerfunktion definiert und ist zusammen mit einer Mehrzahl von Schnittstellen- und Steuerkomponenten, die diesen Bus verwenden, in "Data Handbook 8051-based 8-bit Microcontroller", veröffentlicht von Philips 1991, vollständig beschrieben.
  • Der Konfigurator 14 dieser Erfindung umfaßt im wesentlichen eine erste Schaltungseinrichtung 15, in die ein erstes Feld von niederstwertigen Adreßbits AMID einer der Reihe nach zu nehmenden Gewichtung und ein zweites Feld von höchstwertigen Bits AHIGH einer der Reihe nach abnehmenden Gewichtung eingegeben wird, und die entsprechend den empfangenen Bits einen Modulauswahlcode MODSEL und einen Adreßbitauswahlcode BITSEL ausgibt.
  • Der Code MODSEL wird über einen Kanal 16 zu einem Decodierer 17 gesendet.
  • Der Decodierer 17 gibt zur Auswahl der verschiedenen Module eines einer Mehrzahl von Auswahlsignalen SEL1, SEL2, SEL8 aus.
  • Der Code BITSEL kann als ein Austauschadreßfeld für die Felder ALOW und AHIGH, die durch die Schaltungseinrichtung 15 empfangen werden, direkt dem Eingang des Registers 6 zugeführt werden, oder alternativ aus Gründen, die später erklärt werden, als eine bevorzugte Lösung dem Eingang einer Auswahllogik 18, die im wesentlichen einen Decodierer und Multiplexer aufweist, zugeführt werden.
  • In die Auswahllogik 18 werden das Bitfeld ALOW und das Bitfeld AHIGH eingegeben, wobei dieselbe entsprechend dem Code BITSEL geeignete Adreßeingangsbits auswählt und dieselben als Moduladreßbits (MBIT) in das Register 6 eingibt.
  • Das Register 6 empfängt direkt von dem Register 5 ein Bitfeld AMID, das die Adreßbits, die nicht in den anderen zwei Feldern enthalten sind, aufweist.
  • Folglich wird eine Moduladresse MADR, die einen Modulort auswählt, in das Register 6 geladen.
  • Die Moduladresse in dem Register MADR kann herkömmlicherweise in eine Zeilenadresse RAD und eine Spaltenadresse CAD aufgeteilt sein, die zu aufeinanderfolgenden Zeiten unter Verwendung eines Verteilungskanals 6B über einen Multiplexer 6A den verschiedenen Modulen 11, 12, 13 zugeführt werden.
  • Fig. 2 zeigt die Struktur oder das Format einer Speicheradresse, die bei dem System von Fig. 1 verwendet wird, bei dem angenommen wird, daß die Speichermodule, die zahlenmäßig zwischen 1 und 8 variieren, jeweils eine Kapazität von entweder 32 Mbyte bzw. 128 Mbyte aufweisen.
  • Ferner wird angenommen, daß der Speicherparallelismus ein 32-Byte-Parallelismus ist.
  • Die maximale Speicherkapazität, die installiert werden kann, beträgt daher 1 Gbyte, wobei eine Adresse, die aus 30 Bit A00 ... A29 gebildet ist, erforderlich ist, um jedes Byte einzeln zu adressieren.
  • Die fünf niederstwertigen Bits A25:A29 identifizieren das Byte, das in dem Eintrag oder dem adressierbaren Speicherort adressiert wird; dieselben partizipieren daher nicht an dem Speicheradressierungsprozeß, der nur unter Verwendung der Bits A0 ... A24 durchgeführt wird.
  • Dies ermöglicht, daß 32 M-Einträge, die nicht alle vorliegen müssen, identifiziert werden.
  • Ein Modul mit einer Kapazität von 32 Mbyte, d. h. 1 M-Eintrag, erfordert 20 Bits, um einen Eintrag auszuwählen.
  • Ein Modul mit einer Kapazität von 128 Mbyte, d. h. 4 M-Einträgen, erfordert 22 Bit, um einen Eintrag auszuwählen.
  • Hierin wird nachfolgend die Kapazität des Speichers und der Module als die Anzahl von adressierbaren Einträgen ausgedrückt, wobei das Wort "Eintrag" weggelassen wird.
  • Die Bits A00 ... A24 sollten verschiedenartig entsprechend der Anzahl der eingebauten Module und deren Kapazität verwendet werden, um den höchstmöglichen Verschachtelungsgrad zu liefern.
  • Folglich wird das 3-Bit-Feld 20, A22 bis A24, vollständig oder teilweise entsprechend der Anzahl der eingebauten Module verwendet, um eines der Module auszuwählen und basierend auf den niederstwertigen Bits eine Verschachtelung zu liefern.
  • Wenn die Bits A22 bis A24 jedoch nur teilweise (oder überhaupt nicht) an der Modulauswahl partizipieren, muß der verbleibende Abschnitt des Felds (oder das gesamte Feld) zum Adressieren in dem Modul und zum Unterstützen bei der Erzeugung der Moduladresse verwendet werden.
  • Die Moduladresse wird durch das Zwischenfeld 21, das die 17 Adreßbits A(05 : 21) als eine invariante Komponente enthält, unterstützt.
  • Die Bits A02, A03, A04 ersetzen die Bits A22, A23 bzw. A24 als Moduladreßbits, wenn die Bits A22, A23, A24 an der Modulauswahl partizipieren, um einen niedrigen 2-, 4-, 8-Weg- Verschachtelungszustand zu definieren.
  • Auf diese Weise kann ohne weiteres eine 20-Bit-Adresse gebildet werden, die ermöglicht, daß ein Modul adressiert wird, wenn das letztgenannte eine Kapazität von 1 M besitzt.
  • Es sollte jedoch in Erinnerung gehalten werden, daß die Module eine Kapazität von 4 M besitzen können. In diesem Fall sollten zum Adressieren des Moduls zwei zusätzliche Bits verwendet werden, die bei einem Speicher, der ohne (mit einer geringen) Verschachtelung konfiguriert ist, die Bits A03, A04 sind, die von dem Register 5 ausgegeben werden.
  • Bei einem Speicher mit (geringer) Verschachtelung können diese 2 Bits aus folgenden Gründen nicht ohne Modifikationen verwendet werden:
  • 1) Wenn der Speicherblock, der durch die Bits A00, A04 identifiziert ist, verschachtelt ist, wurden die Bits A03, A04 bereits als Ersatzmittel für die Bits A23, A24 verwendet und müssen wiederum durch höherwertigere Bits ersetzt werden.
  • 2) Selbst wenn der Speicherblock, der durch die Bits A00, A04 identifiziert ist, nicht verschachtelt ist, kann derselbe in einem Modul einen Abschnitt oder Block der verwendet ist, um einen geringen Verschachtelungspegel zu liefern, identifizieren, wobei die Bits A03, A04 modifiziert werden sollten, um dies zu berücksichtigen.
  • Somit ist es üblicherweise notwendig, die Bits A03, A04 zu modifizieren, indem dieselben durch Bits A3M, A4M, die gemäß der Speicherkonfiguration und der Verschachtelungspegel, die für in der Reihe vorhergehende Speicherorte bezüglich derjenigen, die durch die Bits A00 bis A04 identifiziert sind, übernommen sind, ersetzt werden.
  • Diese Auswahl und Modifikation wird durch die Schaltungseinrichtung 15 durchgeführt, die bei den einfachsten Ausführungsbeispielen einen Lese/Schreibspeicher mit zugeordneten Tabellenfunktionen aufweist, die jedem möglichen Eingangsadreßcode, der aus den 8 Bits A(0 : 4) und A(22 : 24) einen Modulauswahlcode (MODSEL), naheliegend einen 3-Bit-Code, und einen Code zuordnet, der Moduladreßbits BITSEL, die in das Register 6 geladen werden sollen, darstellt.
  • Wenn die Darstellung dieser Bits angewiesen wird, die Einrichtung 15 zu verlassen, muß der Code BITSEL selbstverständlich 6 Bit (A24A, A23M, A22M, A4M, A3M) aufweisen.
  • Die Korrelation zwischen Adressen, die dem Speicher 15 zugeführt werden, und den abgehenden Codes wird durch das Schreiben derartiger Speichercodes 15 durch die Schnittstellenschaltungen 7A auf der Grundlage der Anzahl von Modulen, die tatsächlich installiert sind, deren Kapazitäten und der Verschachtelungspegel, die als ein Ergebnis erhalten werden können, eingestellt.
  • Bei diesem Lösungsansatz muß der Speicher 15 erkennbar eine relativ große Kapazität und einen hohen Parallelismus besitzen.
  • Bei dem Beispiel sollte der Speicher 15 eine Kapazität von 2&sup8; = 256 Einträgen und einen Parallelismus von zumindest 9 Bits besitzen.
  • Der Parallelismus des Speichers 15 nimmt weiter zu, wenn der Speicher 15 mehr Anzeigen liefern muß, wie z. B. ein Signal OVERM, das die Erkennung einer Speicheradresse über die installierte Kapazität hinaus anzeigt.
  • Daher werden die Moduladressen am besten durch eine Auswahllogik (18 in Fig. 1) gebildet, die die geeigneten Bits gemäß dem BITSEL-Code 19 in das Register 6 laden wird, und nicht auf eine direkte Art und Weise.
  • Da bei dem Beispiel von Fig. 8 vier mögliche Verschachtelungssituationen existieren und zwei Bits A03, A04 eine Modifikation erfordern, wird ein 4-Bit-Code ausreichen, um die Logik 18 zu steuern, die einen Decodierer aufweisen kann, um (entsprechend den eingegebenen Bits) die zwei modifizierten Bits A3M, A4M und die Steuersignale eines Triplets von Multiplexern für eine selektive Übertragung der Bits A24, A04, A23, A03, A22, A02 zu erzeugen.
  • Auf diese Weise kann der Speicherparallelismus reduziert werden.
  • Der Speicher 15 wird durch den Kanal I²CBUS und die Schnittstellenschaltungen 7A, die dem Speicher 15 in üblicher Form eine Schreibadresse, einen Schreibbefehl und die Informationen, die geschrieben werden sollen, die alle in herkömmlicher Weise durch das Zeitgebungssignal zeitlich gesteuert werden, liefern, mit geeigneten Informationen beschrieben, wie sie durch einen der Prozessoren in geeigneter Form verarbeitet werden.
  • Bevor ein bevorzugtes Ausführungsbeispiel des Konfigurators 14 sowie Abweichungen desselben detailliert beschrieben werden, sollten die Fig. 3 bis 9 betrachtet werden, die bestimmte Speichersituationen, die erhalten werden können, sowie die diesen Situationen zugeordneten Verschachtelungspegel, darstellen.
  • Der physische Speicherraum kann als ein Stapel von ordentlich gestapelten adressierbaren Orten betrachtet werden, die in Blöcke unterteilt und zwischen Modulen verteilt sind.
  • Die Adressen, die erforderlich sind, um einen Ort zu identifizieren, variieren zwischen 1 und nicht mehr als 32 M, entsprechend der Anzahl von installierten Modulen und deren Kapazitäten.
  • Fig. 3 zeigt den physischen Speicherraum, der verfügbar ist, wenn ein einzelnes Modul 30 installiert ist.
  • Es ist klar, daß in diesem Fall keine Verschachtelung möglich ist, wobei nur die Bits A22 ... A24 zur Moduladreßbildung beitragen würden.
  • Wenn die Modulkapazität 1M beträgt, müssen die Bits A00 ... A04 auf einem Logikpegel von 0 sein.
  • Andernfalls würden dieselben auf einen Speichereintrag zeigen, der physisch nicht verfügbar ist.
  • Der Konfigurator 14 kann in diesem Fall wie herkömmlich eingestellt sein, um eine "Überspeicher"-Anzeige zu liefern.
  • Die Funktion des Konfigurators 14 liegt elementar darin, alle empfangenen partiellen Adressen ungeachtet des Logikpegels der Bits A22 ... A24 dem speziellen Gehäuse 8, 9 ...
  • 10 (Fig. 1), in dem sich das Modul 30 befindet, zuzuordnen und die Logik 18 zu steuern, um die Bits A22 ... A24 durch die letztgenannte zu übertragen und dieselben in das MADR- Register 6 zu laden.
  • Ziemlich ähnlich ist der Fall eines einzelnen Moduls mit einer Kapazität von 4 M, das installiert ist, wobei der einzige Unterschied darin besteht, daß die Bits A03 und A04 einen Logikpegel von 1 aufweisen können und verwendet werden, um die Moduladresse zu bilden.
  • Es kann nun beobachtet werden, daß, um zu ermöglichen, daß die Module in einer zufälligen Reihenfolge in die verschiedenen lebensfähigen Gehäuse installiert werden (dies umfaßt die Notwendigkeit, daß die Einheit 14 einen Gehäuseauswahlcode entsprechend dem Gehäuse, in den das Modul installiert ist, erzeugt), die Steuerung der Logik 18 von der Auswahl des Gehäuses/Moduls getrennt sein muß.
  • Es ist daher notwendig, daß die Einheit 15 zwei diskrete Codes erzeugt, einen zum Steuern der Logik 18 und einen weiteren zum Auswählen des Gehäuses und des zugeordneten Moduls.
  • Später wird in dieser Beschreibung ein Ausführungsbeispiel erläutert, das diese Begrenzung überwinden kann.
  • Fig. 4 zeigt den physischen Speicherraum, der im Fall von zwei Speichermodulen 31, 32, die installiert sind und die gleiche Kapazität von 1 M oder 4 M aufweisen, verfügbar ist.
  • In diesem Fall beträgt die installierte Kapazität entweder 1 + 1 = 2 M oder 4 + 4 = 8 M, wobei ein Speicher vom doppelt verschachtelten Typ unter Verwendung des niederstwertigen Bits A24, um eines der beiden Module auszuwählen, geschaffen werden kann.
  • Entsprechend dem Pegel des Eingangsbits A24 wird die Einheit 15 einen Auswahlcode, um eines der Module auszuwählen, und einen Steuercode zu der Logik 18 erzeugen, die die Bits A22, A23 in das Register 6 übertragen wird, jedoch nicht das Adreßbit A24.
  • Das Bit A04 wird stattdessen in das Register 6 übertragen.
  • Fig. 5 zeigt den Fall eines Paars von Modulen, eines 33 mit einer Kapazität von 1 M und ein weiteres 34 mit einer Kapazität von 4 M, das als aus vier Blöcken, von denen jeder eine Kapazität von 1 M aufweist, gebildet betrachtet werden kann, die installiert sind.
  • Die installierte Kapazität beträgt daher 5 M.
  • Hier kann ebenfalls ein doppelt verschachtelter Speicher implementiert werden, indem ein Block von dem Modul 34 mit dem Modul 33 gekoppelt wird.
  • Jedoch kann eine solche Verschachtelung nur für eine Kapazität von 1 + 1 M implementiert werden, nämlich für einen Satz von Adressen, die, vorzugsweise, jedoch nicht notwendigerweise, in dem Bereich von 0 bis 2 M liegen.
  • Die Adressen in dem Bereich von 2 M bis 5 M entsprechen einem Speicherraum, auf den ohne Verschachtelung zugegriffen werden kann.
  • Die Trennung zwischen den zwei Räumen ist durch die höchstwertigen Bits A02, A03 definiert, die bei einem Pegel von 1 eine Adresse höher als 2 M bzw. 4 M identifizieren.
  • Folglich wird die Einheit 15 ansprechend auf die eingegebenen Bits A02, A03 einen Auswahlcode ausgeben, der eines der beiden Module 33, 34 entsprechend dem Logikpegel des Bits A24 auswählt, wenn A2, A3 = 0.
  • Andernfalls (A2 = 1 oder A3 = 1) wählt dieselbe das Modul 34 aus.
  • In dem erstgenannten Fall werden die Bits A22 ... A23, jedoch nicht A24, durch die Logik 18 in das Register 6 geladen, wobei das Bit A24 durch das Bit A04 substituiert wird.
  • In dem letztgenannten Fall werden die Bits A22 ... A24 alle in das Register 6 geladen.
  • Fig. 6 zeigt den Fall eines Modul-Triplets 35, 36, 37, das installiert ist, wobei eines der Module (35) eine Kapazität von 4 M aufweist, während die anderen zwei eine Kapazität von 1 M aufweisen.
  • In diesem Fall kann ein doppelt verschachtelter Speicher implementiert werden, indem ein erster Block 35A von dem Modul 35 mit dem Modul 36 gekoppelt wird, während ein zweiter Block 35B von dem Modul 35 mit dem Modul 37 gekoppelt wird.
  • Folglich wird eine doppelte Verschachtelung für eine Gesamtkapazität von 4 M geliefert, wobei auf einen Speicher von 2 M, der den Adressen von 4 bis 6 M entspricht, ohne Verschachtelung zugegriffen werden kann.
  • Es ist zu sehen, daß in diesem Fall den Modulen 35 und 36 Adressen in dem Raum von 0 bis 2 M zugeordnet sein sollten, und den Modulen 35 und 37 Adressen in dem Raum von 2 bis 4 M.
  • Hier wird die Einheit 15 wiederum ansprechend auf die Bits A02, A03 und A24 das Auswahlsignal für das geeignete Modul ausgeben, wobei dieselbe in jedem Fall (unabhängig von A24) das Modul 35 auswählt, wenn A02 = 1. Wiederum wird, wenn A02 = 0, das Bit A04 in das Register 6 geladen, um das Bit A24 zu ersetzen.
  • Fig. 7 zeigt den Fall von vier Modulen 38, 39, 40, 41 mit der gleichen Kapazität von 1 M oder 4 M, oder unterschiedlichen Kapazitäten, die eingebaut sind. Ersichtlich kann in diesem Fall mit Modulen gleicher Kapazität eine Verschachtelung eines vierfachen Pegels unter Verwendung der Bits A23, A24 implementiert werden, um die Auswahl der verschiedenen Module durch die Einheit 15 zu bewirken.
  • Die Bits A3, A4 werden anstelle der Bits A23, A24 in das Register 6 geladen.
  • Wenn die Module unterschiedliche Kapazitäten besitzen, wobei beispielsweise zwei Module 38, 39 eine Kapazität von 4 M aufweisen, und zwei Module 40 und 41 eine Kapazität von 1 M aufweisen, kann eine vierfache Verschachtelung für den Speicherraum in dem Raum von 0 bis 4 M erhalten werden und eine doppelte Verschachtelung für den Speicherraum in dem Bereich von 4 M bis 10 M.
  • Gleichartige Betrachtungen gelten für den Fall von drei Modulen mit einer Kapazität von 4 M, wenn zwei Blöcke von 2 M von einem der Module keine Verschachtelung liefern würden, und für den Fall, für den nur eines der Module eine Kapazität von 4 M aufweist, wenn eine vierfache Verschachtelung für den Speicherraum in dem Bereich von 0 bis 4 M implementiert sein kann.
  • Fig. 8 zeigt den Fall einer 6-Modul-Installation, bei dem zwei Module 42, 43 eine Kapazität von 4 M aufweisen, währen die restlichen 44, 45, 46, 47 eine Kapazität von 1 M besitzen.
  • Ersichtlich ermöglichen in diesem Fall die Module 42, 43, 44, 45, daß eine Vierfachverschachtelung für den Speicherraum in dem Bereich von 0 bis 4 M geschaffen wird, die Module 42, 43 und 46, 47 ermöglichen, daß eine weitere Vierfachverschachtelung für einen weiteren Speicherraum in dem Bereich von 4 bis 8 M geschaffen wird, während die verbleibenden Module 42, 43 ermöglichen, daß eine doppelte Verschach telung für den verbleibenden Speicherraum in dem Bereich von 8 bis 12 M geschaffen wird.
  • Im Lichte dieser Betrachtungen wird eine Untersuchung der anderen möglichen Konfigurationen mit 5, 7, 8 eingebauten Modulen, die die gleiche oder unterschiedliche Kapazitäten aufweisen, eine einfache Sache.
  • Allgemein kann bei den unterschiedlichen möglichen Konfigurationen des eingebauten Speichers eine Anzahl von Modulen (oder eines Bruchteils derselben im Fall von Modulen mit einer Kapazität von 4 M) derart zugeordnet sein, daß der höchstmögliche Verschachtelungspegel in der Konfiguration erhalten werden kann, wobei die restlichen Module (oder Bruchteile) verwendet werden können, um einen Verschachtelungspegel eines geringeren Grads zu erhalten, wobei optional ein einzelnes Modul oder ein Bruchteil als ein Rest belassen werden kann, der als nicht verschachtelt auszuwählen ist.
  • Es ist ersichtlich, daß, wenn die Umstände es ratsam erscheinen lassen, die Verschachtelungsspeichereinstellung ganz oder teilweise infolge einer Voreinstellung der Einheit 15 durch eine Speicherstruktur mit einer Verschachtelung des hohen Typs ersetzt werden kann.
  • Beispielsweise zeigt Fig. 9 den Fall eines Speichers mit fünf eingebauten Modulen 48, 49, 50, 51, 52 von denen die ersten zwei eine Kapazität von 4 M besitzen, während der Rest eine Kapazität von 1 M besitzt. Die ersten zwei Module können zugeordnet werden, um eine doppelte (niedrige) Verschachtelung für einen Speicherraum in dem Bereich von 0 bis 8 M zu liefern, wohingegen die anderen drei Module einen Speicherraum in dem Bereich von 8 bis 11 M mit einer Verschachtelung des hohen Typs bilden können.
  • Diese drei Module machen für ihre Auswahl nur erforderlich, daß die höchstwertigen Adreßbits verwendet werden.
  • Bei dem Beispiel von Fig. 1 können alle diese Zuordnungen von Speicherräumen und adressierten Modulen ohne weiteres durch eine Einheit 15 implementiert werden, die einen RAM- Speicher aufweist, in den die Bits A00 ... A04 und die Bits A22 ... A24 eingegeben werden, d. h. der eine Kapazität von 2&sup5;&spplus;³ = 256 Einträgen aufweist.
  • Der Speicherparallelismus ermöglicht das Speichern eines 3-Bit-Codes zum Auswählen von einem der acht Module und zumindest eines 4-Bit-Codes zum Steuern der Auswahllogik 18.
  • Gemäß einem weiteren Aspekt dieser Erfindung ist die durch die Schaltungseinrichtung 15 erforderliche Speicherkapazität zum Umwandeln der Adreßbits in einen Modulauswahlcode und einen Moduladreßbitauswahlcode reduziert, ohne Beschränkungen hinsichtlich der Wahlfreiheit unter den möglichen eingeführten Verschachtelungs-Pegeln und -Typen, unter Verwendung einer Struktur, beispielsweise der, die in Fig. 10 gezeigt ist, bei der das funktionelle Kriterium des Auswählens der Speichermodule auf eine indirekte Art und Weise besteht, das den Verschachtelungs-Typ und -Pegel, die mittels eines ersten Codes jeder Adresse zugeordnet wurden, definiert.
  • Dieser Code wird zusammen mit dem niederstwertigen Adreßbit A22 ... A24 verwendet, um durch ein Multiplexernetzwerk einen von verschiedenen Gehäuse/Modulauswahlcodes, die in einer Mehrzahl von Registern gespeichert sind, die jeweils einem speziellen Verschachtelungs-Typ und -Pegel zugewiesen sind, auszuwählen.
  • Auf diese Weise kann die Schaltungseinrichtung 15 als eine Mehrzahl von Registern und Multiplexern, die einem Konfigurationsspeicher zugeordnet sind, in den nur die höchstwertigen Bits A00 ... A04 eingegeben werden und der daher eine start reduzierte Kapazität aufweist, implementiert sein. Das Minimieren der Speicherkapazität ist aus verschiedenen Aspekten vorteilhaft: der Konfigurator ist einfacher mit ande ren Schaltungen integrierbar, um beispielsweise eine Speichersteuereinheit, die auf einem einzelnen integrierten Element (Chip) vorgesehen ist, zu bilden, wobei die Zeit zum Beschreiben und Einstellen desselben minimiert ist.
  • In Fig. 10 besteht die Formatierungseinheit aus einem Formatierungsspeicher 53, einer Mehrzahl von Registern 54 bis 65, einer Mehrzahl von Multiplexern 66 bis 73 und einem Paar von Decodierern 74, 75.
  • Die Speicher 53 und die Register 54 bis 65 werden durch die Schnittstellenschaltungen 15A über den Bus I²CBUS mit geeigneten Codes beladen, wobei die Anzahl der installierten Speichermodule, deren Kapazität, mögliche Verschachtelungspegel und Auswahlen, die durch ein Überwachungsprogramm oder einen Bediener getroffen wurden, um den einen oder anderen Verschachtelungstyp von allen, die möglich sind, aufzunehmen, berücksichtigt wird.
  • Es ist eine einfache Angelegenheit zu verifizieren, daß bezüglich des möglichen Vorliegens einer beliebigen Anzahl von installierten Modulen zwischen 1 und 8 mit einer Kapazität von entweder 1 M oder 4 M unter allen Umständen, wenn der höchstmögliche Verschachtelungspegel ausgewählt ist, die Speicherkonfiguration durch Codes beschrieben werden kann, die in den Registern 54 bis 65 enthalten sind, wobei jedem derselben die Aufgabe des Speicherns eines Modulauswahlcodes, der durch einen vorbestimmten Verschachtelungspegel charakterisiert ist, zugewiesen ist.
  • Für jede Konfiguration des installierten Speichers ist die größte Anzahl von Modulen, die vorliegen und zugeordnet sind, um eine doppelte Verschachtelung zu liefern, 4, die in Sätzen von 2 zugeordnet sind.
  • Folglich sind die Register 54, 55 und 56, 57 dazu bestimmt, einen Auswahlcode zu speichern, um eines dieser Module auszuwählen.
  • Dieser 3-Bit-Code, wie er jeweils bei 2WAL, 2WBL, 2WAU, 2WBU gezeigt ist, definiert das Gehäuse, das das identifizierte Modul enthält, der dann in jedem der Gehäuse angeordnet sein kann.
  • In gleicher Weise ist für jede Konfiguration von installiertem Speicher die maximale Anzahl von vorliegenden Modulen, die zugeordnet sind, um eine vierfache Verschachtelung zu liefern, 8, die in Sätzen von 4 zugeordnet sind.
  • Folglich sind die Register 58 bis 61 und 62 bis 65 jeweils dazu bestimmt, einen Auswahlcode zum Auswählen von einem dieser Module zu speichern.
  • Hier definieren ebenfalls 3-Bit-Codes das Gehäuse, das das identifizierte Modul enthält.
  • Schließlich kann eine Achtfachverschachtelung nur implementiert sein, wenn alle acht Module installiert sind.
  • In diesem Fall kann die Modulauswahl durch die Verwendung der niederstwertigen Adreßbits A22, A23, A24 direkt erfolgen.
  • Die Ausgänge der Register 54, 55 und 56, 57 sind mit den Eingängen der Multiplexer 66 bzw. 67 verbunden.
  • Die Ausgänge der Register 58 ... 61 und 62 ... 65 sind mit den Eingängen der Multiplexer 68 bzw. 69 verbunden.
  • Die Multiplexer 66, 67 werden durch das niederstwertige Bit A24 gesteuert, während die Multiplexer 68, 69 durch das niederstwertige Bitpaar A23, A24 gesteuert werden.
  • Die Ausgänge der Multiplexer 66, 67, 68, 69 sind mit den Eingängen des Multiplexers 70 verbunden, der ferner auf einem fünften Satz von Eingängen das Bit-Triplet A22, A23, A24 empfängt.
  • Der Multiplexer wird durch einen 3-Bit-Code INT.L, der von dem Speicher 53 ausgegeben wird, gesteuert. Der Speicher 53, der nur durch die fünf höchstwertigen Bits A(00 : 04), die von dem Register 5 ausgegeben werden, adressiert wird, und der daher eine Kapazität von nur 32 Einträgen aufweist, gibt zusätzlich zu dem Code INT. L ein 1-Bit-Signal HIGHINT, das den Speicherraum, der durch die Bits A(00 : 04) als durch eine hohe oder geringe Verschachtelung charakterisiert identifiziert ist, definiert, und ein Paar von Bits A3M, A4M, die direkt in das Register 6 (MADR) geladen werden, aus.
  • Entsprechend des Logikpegels des Signals HIGHINT besitzt der Code INT.L zwei Bedeutungen: Für eine geringe Verschachtelung definiert derselbe den Verschachtelungspegel (2, 4 oder 8) und welche der zwei Sätze von Registern ausgewählt werden sollen.
  • Für eine hohe Verschachtelung definiert derselbe direkt, welches Modul, oder exakter welches Gehäuse, ausgewählt werden soll.
  • Die Ausgänge des Multiplexers 70 sind mit den Eingängen des Decodierers 74 verbunden, in den ferner der Code INT. L und das Signal HIGHINT eingegeben werden.
  • Gemäß dem Pegel von HIGHINT decodiert der Decodierer 74 den Code, der durch den Multiplexer 70 empfangen wird, oder alternativ den Code INT.L, in eines von acht Modulauswahlsignalen SEL1 ... SEL8.
  • Das Signal HIGHINT und der Code INT.L werden ferner in den Decodierer 75 eingegeben, dessen Ausgänge 76, 77, 78 die Doppelmultiplexer 71, 72 bzw. 73 steuern.
  • In den Multiplexer 71 werden die Adreßbits A22 und A02 eingegeben.
  • In den Multiplexer 72 werden die Adreßbits A23 und A03 eingegeben.
  • In den Multiplexer 73 werden die Adreßbits A24 und A04 eingegeben.
  • Wenn das Signal HIGHINT anzeigt, daß die Verschachtelung, die verwendet wird, eine hohe Verschachtelung ist, übertragen die Multiplexer 71, 72, 73 die Bits A22, A23, A24 zu dem Ausgang und laden dieselben in das Register 6.
  • Wenn HIGHINT anzeigt, daß die verwendete Verschachtelung die niedrige Verschachtelung ist (auf einem Pegel, der durch den Code INT. L definiert ist), werden die Bits A24, A23, A22 vollständig oder teilweise durch die Bits A04, A03, A02, die von den Multiplexern 71, 72, 73 ausgegeben werden, ersetzt.
  • Das Register 6 empfängt ferner die Bits A(05 : 21) von dem Register 5, um den Moduladressierungscode zu vervollständigen.
  • Die Anzahl der Register nimmt mit der der Module, die in den Speicher installiert werden können, und daher mit der Anzahl von möglichen Verschachtelungspegeln, zu. Beispielsweise würde das vorher beschriebene Ausführungsbeispiel bei einer Anwendung desselben auf einen Speicher, der 16 Module mit einer Kapazität von 1 M oder 4 M aufweisen kann, eine Konfigurationsspeicherkapazität von 64 Einträgen und 28 Register erfordern, mit einer zugehörigen erhöhten Komplexität des Multiplex-Schaltungsaufbaus.
  • Die Registerkapazität sollte ebenfalls von 3 auf 4 Bits erhöht sein, um eines von 16 möglichen Modulen zu identifizieren.
  • Gemäß einem weiteren Aspekt dieser Erfindung ist die Anzahl der erforderlichen Register durch die Aufnahme bestimmter Beschränkungen hinsichtlich der Wahlfreiheit bezüglich der Anzahl von Modulen, die installiert werden können, und deren Zuordnung in verschachtelte Strukturen begrenzt.
  • Die Beschränkungen bestehen im wesentlichen darin, eine Speicherstruktur, die auf Platinen 103, 104, 105 basiert, vorzusehen, wie in Fig. 11 gezeigt ist, von denen jede in einem Gehäuse 106, 107, 108 enthalten ist und ein Paar von Modulen M1A, M1B, M2A, M2B, ... MNA, MNB gleicher Kapazität, die zusammen in ein verschachteltes Paar zugeordnet werden können, aufweist.
  • Durch diese Begrenzung kann die Anzahl der erforderlichen Register halbiert sein, ebenso wie die Komplexität des Multiplex-Schaltungsaufbaus, wie in Fig. 12 gezeigt ist, die eine Formatierungseinheit für einen Speicher, der bis zu 16 Module mit einer Kapazität von entweder 1 M oder 4 M aufweist, zeigt.
  • Es ist ersichtlich, daß in diesem Fall die Speicheradresse 26 Bit aufweisen würde, wobei der höchstmögliche Verschachtelungspegel 16 betragen würde.
  • Die Bits A0 bis A5 identifizieren einen Speicherblock von 1 M in einem Raum von 64 M, der in einem der verschiedenen Module enthalten ist, während die Bits A25 bis A22 ermöglichen, daß eines der verschiedenen Module in dem Fall einer geringen Verschachtelung ausgewählt wird.
  • In Fig. 12 besitzt die Konfigurationseinheit einen Speicher 80, vierzehn Register 81, 82, ... 94, eine Mehrzahl von Multiplexern 95 bis 99, zwei Decodierer 100, 101 und Auswahlschaltungen (grundsätzlich einen Satz von Multiplexern) 102.
  • Der Speicher 80 wird durch die Bits A00 ... A05 adressiert und gibt die Bits A4M, A5M, das Signal HIGHINT und einen 4- Bit-Code INT.L mit einer Funktion, die ähnlich der des homonymen Signals in Fig. 10 ist, aus.
  • Die Register 81, 82 identifizieren jeweils mit 3 Bits ein Paar von Modulen, das zu der gleichen Platine gehört und in einer doppelten Verschachtelung zugeordnet ist.
  • Die zwei Paare von Registern 83, 84 und 85, 86 identifizieren jeweils mit 3 Bits zwei Paare von Modulen, die zu zwei Platinen gehören, die in einer Vierfach-Verschachtelung zugeordnet sind.
  • Die Sätze von vier Registern 87 ... 90 und 91 ... 94 identifizieren vier Paare, jeweils aus Registern, die in einer Achtfachverschachtelung zugeordnet sind.
  • Die Ausgänge der Register 83, 84 und 85, 86 sind jeweils mit den Eingängen der Multiplexer 95, 96, die durch das Adreßbit A24 gesteuert werden, verbunden.
  • Die Ausgänge der Register 87 ... 90 bzw. 91 ... 94 sind jeweils mit den Eingängen der Multiplexer 97, 98, die durch die Adreßbits A23, A24 gesteuert werden, verbunden.
  • Die Ausgänge der Register 81, 82 und die der Multiplexer 95, 96, 97, 98 sind mit den Eingängen des Multiplexers 99 verbunden, der ferner auf einem Satz von Eingängen die vier Adreßbits A25, A24, A23, A22 zum Auswählen eines Moduls in dem Fall einer sechzehnfachen Verschachtelung empfängt, verbunden.
  • Dem 3-Bit-Code, der auf den weiteren Eingängen des Multiplexers empfangen wird, ist ein viertes Bit zugeordnet, das aus dem Bit A25 besteht, um das Modul, das aus dem Modulpaar, das durch die 3-Bit-Codes identifiziert ist, ausgewählt werden soll, auszuwählen.
  • Die verbleibenden Teile der Einheit sind identisch mit denen, die in Verbindung mit Fig. 10 betrachtet wurden.
  • Entsprechend dem Logikpegel des Signals HIGHINT werden drei Bits des Codes INT.L als ein Steuercode für den Multiplexer 99 verwendet, oder alle vier Bit des Codes INT.L werden für den Modulauswahlcode verwendet.
  • Ferner ermöglichen das Signal HIGHINT und der Code INT.L als eine Eingabe zu dem Decodierer 101, daß die Auswahlschaltungen 102 gesteuert werden, um die geeigneten Bits gemäß dem Verschachtelungstyp und seinem Pegel in das Register 6 zu laden.
  • Die Bits A4M und A5M werden direkt von dem Speicher 80 geliefert.
  • Das Ausführungsbeispiel von Fig. 12 beseitigt nicht die Möglichkeit, daß bestimmte Platinen (sogar mehr als eine) ein einzelnes Speichermodul enthalten können.
  • Dieses Ausführungsbeispiel kann beispielsweise als ein Ergebnis der anfänglichen Installation von einer oder mehreren Platinen mit einer minimalen Kapazität, die aus einem einzelnen Modul bestehen, oder als ein Ergebnis einer Ausfallbeschädigung eines Moduls in einem Paar, wobei dieses Modul von der Speicherkonfiguration ausgeschlossen werden muß, auftreten.
  • In diesem Fall können die einzelnen Module oder das überlebende Modul trotzdem als nicht-verschachtelte Module adressiert werden, als hochverschachtelte Module betrachtet werden und ausgewählt werden, wenn das Signal HIGHINT aktiviert wird.
  • Es ist klar, daß sich die vorhergehende Beschreibung auf ein bevorzugtes Ausführungsbeispiel und Variationen desselben bezieht und viele weitere Variationen durchgeführt werden können.
  • Beispielsweise kann das Bit A25, das in den Multiplexer 99 von Fig. 11 eingegeben wird, in den Decodierer 100 eingege ben werden.
  • Ferner und wiederum bezugnehmend auf Fig. 11 kann, wenn die hinzugefügte Beschränkung eingeführt ist, daß alle installierten Module mit Ausnahme von einem in Paaren, die auf der gleichen Platine angeordnet sind, zugeordnet sind, das gleiche Konzept des Wählens zwischen zwei als Paar vorgesehenen Modulen gemäß dem Bit A25 auch auf hochverschachtelte Module angewendet werden, wobei die Auswahl durch das Adreßbit A05, das in den Decodierer 101 eingegeben wird, bewirkt wird.
  • Durch diesen Behelf kann der Speicher 80 durch nur die fünf höchstwertigen Bits A00 ... A04 adressiert werden, wobei seine Kapazität halbiert sein kann.
  • In diesem Fall kann der Code INT.L auf drei Bits reduziert sein, um ferner eine Reduzierung des Speicherparallelismusses zu erreichen.
  • Um die Koexistenz möglich zu machen, kann bei einem modularen Speicher dieses Typs von einer Platine, bei der nur ein Modul aktiv ist (wie es beispielsweise die Folge eines Ausfalls in einem der Module der Platine und dem Ausschluß desselben sein kann), das überlebende aktive Modul durch den Code INT. L, der dasselbe als nicht verschachtelt charakterisiert, durch den Speicher 80 identifiziert werden, indem ein Register, gleichartig zu den Registern 81 ... 94, das einen Modulauswahlcode enthält, ausgewählt wird.
  • Fig. 13 zeigt diese weitere Version und unterscheidet sich von der Lösung von Fig. 12 lediglich in Details.
  • Folglich sind die entsprechenden Schaltungselemente in den zwei Ausführungsbeispielen, die die gleiche Funktion durchführen, mit den gleichen Bezugszeichen bezeichnet.
  • In Fig. 13 umfaßt die Formatierungseinheit als hinzugefügte Elemente ein Vier-Zellen-Register 110, einen Decodierer 111 und zwei Multiplexer 112, 113.
  • In das Register 110 wird ein Drei-Bit-Code geladen, der ein Platinengehäuse identifiziert, in dem ein einzelnes Modul aktiv ist, während das vierte Bit A/B das aktive der zwei Platinenmodule identifiziert.
  • Der Speicher 80 mit einer Kapazität von 32 Einträgen wird nur durch die höchstwertigen Adreßbits A(00 : 04) adressiert und gibt das Signal HIGHINT und den Code INT. L, der in diesem Fall jedoch 3 Bit aufweisen würde, aus.
  • Der Code INT.L steuert den Multiplexer 99, der in diesem Fall acht Sätze von Eingängen aufweist, um den Modulpaarcode, der dem speziellen Verschachtelungspegel, der durch den Code INT.L definiert ist, zugeordnet ist, zu dem Ausgang zu übertragen.
  • In diesem Fall definiert der Code INT.L ebenfalls einen nicht-verschachtelten Zustand, ausschließlich für die Platine, auf der nur ein Modul aktiv ist, und ermöglicht, daß der Code, der in das Register 110 geladen ist, ausgewählt und übertragen wird.
  • Der Decodierer 111, in den der Code INT.L und das Signal HIGHINT eingegeben wird, erkennt den Nichtverschachtelungscode und aktiviert ein Signal NOINT auf einer Leitung 114, um den Multiplexer 113 zu steuern.
  • Der Multiplexer 113 addiert zu dem Code, der von dem Multiplexer 113 ausgegeben wird, ein viertes Bit, das in dem Verschachtelungsfall das Bit A25 enthält, und das in dem Nichtverschachtelungsfall das Bit A/B, das in das Register 110 geladen ist, aufweist.
  • Der Vier-Bit-Code, der somit gebildet wird, wird gemäß der Steuerung durch das Signal HIGHINT in den Decodierer 100 eingegeben.
  • In den Decodierer 100 wird auch der Code INT.L, dem das Bit A05 von dem Adreßkanal zugeordnet ist, eingegeben.
  • Sobald das Signal HIGHINT aktiviert wird, wird dieser Vier- Bit-Code in ein Modulauswahlsignal decodiert.
  • Der Speicher 80 gibt ferner zwei Signale A4M und A5M aus, die die modifizierten Bits, die den Registern MADR6 zugeführt werden sollen, darstellen.
  • Alternativ wird das Signal A5M durch den Multiplexer 112, der durch das Signal NOINT gesteuert wird, auf das Bit A05, das von dem Register 5 ausgegeben wird, angewendet.
  • Wenn die Adresse, die durch den Speicher 80 erkannt wird, das nicht-verschachtelte Modul identifiziert, sollte tatsächlich das Bit A05 direkt verwendet werden, um die Moduladresse zu erzeugen.

Claims (8)

1. Ein Speicher (3) mit einem variablen Verschachtelungspegel, mit folgenden Merkmalen:
unabhängig adressierbaren Speichermodulen (11-13), die in einer Anzahl zwischen Eins und einem Maximum vorgesehen sind, wobei jedes Modul (11-13) eine variable Kapazität, die ein mehrfaches einer Basiskapazität von einem Speicherblock ist, aufweist,
einer Einrichtung (5) zum Speichern einer Adresse (ADR) zum Identifizieren eines Eintrags des Speichers (3), wobei die Adresse (ADR) ein erstes Feld (ALOW) von niederstwertigen Speicheradreßbits mit der Reihe nach zunehmender Wertigkeit, ein zweites Feld (AHIGH) von höchstwertigen Speicheradreßbits mit der Reihe nach abnehmender Wertigkeit und ein drittes Feld (AMID) von Zwischenspeicheradreßbits aufweist,
einer ersten Schaltungseinrichtung (14), die mit Informationen voreingestellt ist, die mit der Anzahl der Module (11-13), der Kapazität jedes Moduls (11-13) und einem gewünschten Verschachtelungspegel korreliert sind, wobei die erste Schaltungseinrichtung (14) Eingänge aufweist, um das erste Feld (ALOW) und das zweite Feld (AHIGH) zu empfangen, und Ausgänge aufweist, um entsprechend den voreingestellten Informationen, dem empfangenen ersten Feld (ALOW) und dem empfangenden zweiten Feld (AHIGH) aus einer Mehrzahl von Modulauswahlsignalen (SEL1-SEL8) ein Modulauswahlsignal und ein Moduladreßfeld (MBIT) zu liefern, wobei keines der Bits des ersten Felds (ALOW), wenn keine Verschachtelung erwünscht ist, oder zumindest eines der Bits des ersten Felds (ALOW) entsprechend dem gewünschten Verschachtelungspegel bei trägt, um das Modulauswahlsignal zu definieren, wobei das zumindest eine Bit des ersten Felds (ALOW) durch entsprechende Bits des zweiten Felds (AHIGH) ersetzt wird, um zum Definieren des Moduladreßfelds (MBIT) beizutragen, und
einer zweiten Schaltungseinrichtung (6), die das dritte Feld (AMID) und das Moduladreßfeld (MBIT) empfängt, um den Eintrag in einem Modul (11-13), der durch das Modulauswahlsignal (SEL1-SEL8) ausgewählt wird, zu adressieren.
2. Ein Speicher nach Anspruch 1, bei dem die Module (11- 13) unterschiedliche Kapazitäten aufweisen, wobei zumindest eines der Module eine Kapazität aufweist, die gleich einem Minimum ist, während ein weiteres der Module eine Kapazität aufweist, die ein Mehrfaches des Minimums ist.
3. Ein Speicher nach Anspruch 1 oder 2, bei dem die erste Schaltungseinrichtung (14) folgende Merkmale aufweist:
einen Lese/Schreib-Speicher (15), der durch das erste Feld (ALOW) und das zweite Feld (AHIGH) adressiert wird, um einen ersten Modulauswahlcode (MODSEL) und einen zweiten Moduladressbit-Auswahlcode (BITSEL) auszugeben;
einen Decodierer (17), der mit dem Speicher (15) verbunden ist, um den ersten Auswahlcode (MODSEL) zu empfangen und den ersten Code (MODSEL) in eines der Mehrzahl von Modulauswahlsignalen (SEL1-SEL8) zu decodieren; und
eine dritte Schaltungseinrichtung (18), die durch den zweiten Code (BITSEL) gesteuert wird, in die das erste Feld (ALOW) und zumindest ein Abschnitt des zweiten Felds (AHIGH) eingegeben wird, um das Moduladreßfeld (MBIT) zu erzeugen.
4. Ein Speicher nach Anspruch 1 oder 2, bei dem die erste Schaltungseinrichtung (14) folgende Merkmale aufweist:
einen weiteren Lese/Schreib-Speicher (53), der durch das zweite Feld (AHIGH) adressiert wird, um ein erstes Signal (HIGHINT) und einen dritten Code (INT.L) auszugeben, der für einen ersten Pegel des ersten Signals (HIGHINT) einen Verschachtelungspegel, der dem zweiten Feld (AHIGH) zugeordnet ist, darstellt, und der für einen zweiten Pegel des ersten Signals (HIGHINT) einen Modulauswahlcode darstellt;
eine Mehrzahl von Registern (54-65), von denen jedes einem vorbestimmten Verschachtelungspegel zugeordnet ist, um einen Modulauswahlcode, der dem vorbestimmten Pegel zugeordnet ist, zu speichern;
eine erste Auswahleinrichtung (66-69), die durch zumindest einen Abschnitt des ersten Felds (ALOW, A23, A24) gesteuert wird, um eines der Register (54-65) aus einer Mehrzahl von Registern, die dem gleichen vorbestimmten Verschachtelungspegel zugeordnet sind, auszuwählen;
eine zweite Auswahleinrichtung (70), die durch den dritten Code (INT.L) gesteuert wird, um eines aus den Registern (54-65), die durch die erste Auswahleinrichtung (66-69) ausgewählt sind, auszuwählen;
einen Decodierer (74, 100), der mit der zweiten Auswahleinrichtung (70) und dem weiteren Lese/Schreib-Speicher (53) verbunden ist, um einen Auswahlcode, der in einem der Register (54-65) gespeichert ist, den dritten Code (INT.L) und das erste Signal (HIGHINT) zu empfangen und die empfangenen Codes in eines der Mehrzahl von Modulauswahlsignalen (SEL1-SEL8) zu decodieren; und
eine dritte Schaltungseinrichtung (75, 71, 72, 73), die durch den dritten Code (INT.L) und das erste Signal (HIGHINT) gesteuert wird, und in die das erste Feld (A22, A23, A24) und zumindest ein Abschnitt des zweiten Felds (A04, A03, A02) eingegeben wird, um einen ersten Abschnitt des Moduladreßfelds (MBIT) zu erzeugen.
5. Ein Speicher nach Anspruch 4, bei dem der weitere Lese/Schreib-Speicher (53) einen zweiten Abschnitt (A3M, A4M) des Moduladreßfelds (MBIT) erzeugt.
6. Ein Speicher nach Anspruch 4, bei dem die Mehrzahl von Modulen (103-105) als Paare von zugeordneten Modulen (M1A, M1B - MNA, MNB) eingestellt sind, wobei die Mehrzahl von Registern (81, 94) einen Auswahlcode eines zugeordneten Modulpaars speichert, wobei der Speicher eine Einrichtung (99, 100) zum Bilden eines Modulauswahlcodes durch das Zuordnen des niederstwertigen Bits in dem ersten Feld (ALOW) zu den Paarauswahlcodes aufweist.
7. Ein Speicher nach Anspruch 6, bei dem der dritte Code (INT.L) für den zweiten Pegel des ersten Signals (HIGH- INT) einen Auswahlcode eines zugeordneten Modulpaars darstellt, der eine Einrichtung (100) zum Bilden des Modulauswahlcodes durch Zuordnen des niederstwertigen Bits (A05) in dem zweiten Feld (AHIGH), das in die erste Schaltungseinrichtung (14) eingegeben wird, zu dem dritten Code aufweist, wobei der weitere Lese/Schreib-Speicher (80) durch die Bits des zweiten Felds (AHIGH) unter Ausschluß des niederstwertigen Bits (A05) adressiert wird.
8. Ein Speicher nach Anspruch 7, mit folgenden Merkmalen:
einem Register (110) zum Speichern eines Auswahlcodes (NOINT), der ein Modul, das nicht in Paaren zugeordnet ist, auswählt, und einer Einrichtung (99, 113) zum Eingeben des Auswahlcodes (NOINT), der ein Modul, das nicht in Paaren zugeordnet ist, auswählt, in den Decodierer (100); und
einer Einrichtung (112) zum selektiven Eingeben eines Bits (A5M) des Moduladreßfelds, das durch den Lese/Schreib-Speicher erzeugt wird, oder des niederstwertigen Bits (A05) des zweiten Felds (AHIGH) in die zweiten Schaltungseinrichtung (6).
DE69326236T 1993-06-16 1993-06-16 Speicher mit variabeler Verschachtelungshöhe und verwandte Konfigurationseinheit Expired - Lifetime DE69326236T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP93830263A EP0629952B1 (de) 1993-06-16 1993-06-16 Speicher mit variabeler Verschachtelungshöhe und verwandte Konfigurationseinheit

Publications (2)

Publication Number Publication Date
DE69326236D1 DE69326236D1 (de) 1999-10-07
DE69326236T2 true DE69326236T2 (de) 1999-12-30

Family

ID=8215184

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69326236T Expired - Lifetime DE69326236T2 (de) 1993-06-16 1993-06-16 Speicher mit variabeler Verschachtelungshöhe und verwandte Konfigurationseinheit

Country Status (3)

Country Link
US (1) US5668974A (de)
EP (1) EP0629952B1 (de)
DE (1) DE69326236T2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0782076A1 (de) * 1995-12-29 1997-07-02 Siemens Aktiengesellschaft Anordnung zum Ermitteln der Konfiguration eines Speichers
DE59610672D1 (de) * 1995-12-29 2003-09-25 Siemens Ag Verfahren und Anordnung zum Konvertieren von Speicheradressen in Speicheransteuersignale
JPH10301842A (ja) * 1997-04-25 1998-11-13 Nec Corp メモリ制御装置
US6226720B1 (en) 1998-12-11 2001-05-01 International Business Machines Corporation Method for optimally configuring memory in a mixed interleave system
US6760822B2 (en) * 2001-03-30 2004-07-06 Intel Corporation Method and apparatus for interleaving data streams
US7017017B2 (en) * 2002-11-08 2006-03-21 Intel Corporation Memory controllers with interleaved mirrored memory modes
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
KR100506448B1 (ko) * 2002-12-27 2005-08-08 주식회사 하이닉스반도체 불휘발성 강유전체 메모리를 이용한 인터리브 제어 장치
US6987470B2 (en) * 2003-11-21 2006-01-17 Qualcomm Incorporated Method to efficiently generate the row and column index for half rate interleaver in GSM
US7395401B2 (en) * 2005-09-30 2008-07-01 Sigmatel, Inc. System and methods for accessing solid-state memory devices
JP5040660B2 (ja) * 2005-12-16 2012-10-03 日本電気株式会社 記憶領域割当システム及び方法と制御装置
US7793059B2 (en) 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
CN101443809A (zh) * 2006-05-09 2009-05-27 皇家飞利浦电子股份有限公司 可编程数据处理电路
US8886898B2 (en) * 2009-08-19 2014-11-11 Oracle America, Inc. Efficient interleaving between a non-power-of-two number of entities
US20110296078A1 (en) * 2010-06-01 2011-12-01 Qualcomm Incorporated Memory pool interface methods and apparatuses
US9256531B2 (en) 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
US9837132B2 (en) * 2013-09-24 2017-12-05 Rambus, Inc. High capacity memory system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4280176A (en) * 1978-12-26 1981-07-21 International Business Machines Corporation Memory configuration, address interleaving, relocation and access control system
US4507730A (en) * 1981-10-01 1985-03-26 Honeywell Information Systems Inc. Memory system with automatic memory configuration
US4430727A (en) * 1981-11-10 1984-02-07 International Business Machines Corp. Storage element reconfiguration
US4788656A (en) * 1984-05-25 1988-11-29 The Johns Hopkins University Cache memory and pre-processor
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
IT1216085B (it) * 1988-03-15 1990-02-22 Honeywell Bull Spa Apparato di selezione veloce di memoria locale.
US5129069A (en) * 1989-01-24 1992-07-07 Zenith Data Systems Corporation Method and apparatus for automatic memory configuration by a computer
JPH0760413B2 (ja) * 1989-05-12 1995-06-28 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・システム
US5269010A (en) * 1990-08-31 1993-12-07 Advanced Micro Devices, Inc. Memory control for use in a memory system incorporating a plurality of memory banks
US5341489A (en) * 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving

Also Published As

Publication number Publication date
US5668974A (en) 1997-09-16
EP0629952A1 (de) 1994-12-21
EP0629952B1 (de) 1999-09-01
DE69326236D1 (de) 1999-10-07

Similar Documents

Publication Publication Date Title
DE69326236T2 (de) Speicher mit variabeler Verschachtelungshöhe und verwandte Konfigurationseinheit
DE3850901T2 (de) Datenverarbeitungsanordnung mit Mitteln zur angrenzenden Adressierung eines Speichers.
DE2637054C3 (de) Steuervorrichtung für einen Pufferspeicher
DE3879637T2 (de) Pufferspeichergeraet und -verfahren, insbesondere fuer die matrixtransposition von datenfolgen.
DE3906497A1 (de) Selbstkonfigurierendes speichersystem
DE69028382T2 (de) Serielle multiplexierte Registerarchitektur für VRAM
DE2445617A1 (de) Hierarchische speicheranordnung
DE2230103A1 (de) Adressiereinrichtung fuer einen speicher
DE3607092A1 (de) Speichermanagementsystem
DE102006062399A1 (de) Halbleiterspeicherbauelement mit mehreren Speicherbereichen, Zugriffsverfahren und Testverfahren
DE3618136C2 (de)
DE2912287B2 (de) Datenverarbeitungsanlage
DE3852251T2 (de) Ein-Chip-Mikrocomputer.
DE69025650T2 (de) Multiprozessorsystem mit Vektorpipelinen
DE69130932T2 (de) Speichersystem
DE2926322C2 (de) Speicher-Subsystem
DE3043100C2 (de)
DE3221872C2 (de) Informations-Speicheranordnung
DE68927202T2 (de) Paralleler Prozessor
DE2718551B2 (de)
DE2415600C2 (de)
DE19628039B4 (de) Speicheradressen-Steuerschaltung
DE3024153A1 (de) Speicher-subsystem
DE69603618T2 (de) System zur rekonfiguration der länge eines xyram-speicher
DE69321544T2 (de) Halbleiterspeicheranordnung

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: BULL ITALIA S.P.A., PREGNANA MILANESE, MAILAND, IT

8327 Change in the person/name/address of the patent owner

Owner name: EUNICS S.P.A., PREGNANA MILANESE, MILANO, IT

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

Representative=s name: HUBER & SCHUESSLER, 81825 MUENCHEN

8327 Change in the person/name/address of the patent owner

Owner name: EUTELIA S.P.A., AREZZO, IT

8327 Change in the person/name/address of the patent owner

Owner name: BULL SAS, LES CLAYES-SOUS-BOIS, FR