DE69630388T2 - Speicherstruktur - Google Patents

Speicherstruktur Download PDF

Info

Publication number
DE69630388T2
DE69630388T2 DE69630388T DE69630388T DE69630388T2 DE 69630388 T2 DE69630388 T2 DE 69630388T2 DE 69630388 T DE69630388 T DE 69630388T DE 69630388 T DE69630388 T DE 69630388T DE 69630388 T2 DE69630388 T2 DE 69630388T2
Authority
DE
Germany
Prior art keywords
memory
information
output
input
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 - Lifetime
Application number
DE69630388T
Other languages
English (en)
Other versions
DE69630388D1 (de
Inventor
Ingemar SÖDERQUIST
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Saab AB
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 Saab AB filed Critical Saab AB
Publication of DE69630388D1 publication Critical patent/DE69630388D1/de
Application granted granted Critical
Publication of DE69630388T2 publication Critical patent/DE69630388T2/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/04Addressing variable-length words or parts of words

Description

  • Datenspeicherstruktur
  • Die vorliegende Erfindung bezieht sich auf eine Datenspeicherstruktur der im Oberbegriff des Anspruchs 1 angegebenen Art.
  • Hintergrund der Erfindung
  • Die Entwicklung von Datenspeichern ist gleichzeitig mit der Entwicklung von Prozessoren für Rechner eingetreten. Damit sei gesagt, dass die Entwicklung der Prozessoren die Entwicklung der Speicher gelenkt hat. Aus diesem Grund war es seither Tradition, dass die Information in einem Speicher willkürlich in Bitgruppen (im Weiteren Bytes genannt) aufgeteilt wird, mit einer festen Anzahl Bits, die meistens unabhängig von früher selektierter Information adressiert werden. Daraus ergibt sich, dass der Adressendecoder fähig sein muss, innerhalb einer bestimmten Zugriffszeit eine willkürliche Stelle im Speicher zu erreichen, um dort Information auszulesen oder zu schreiben. Die Datenübertragungsgeschwindigkeit ist umgekehrt proportional der Zugriffszeit. Die Zugriffszeit ist natürlich davon abhängig, nach welcher Fertigungstechnologie der Speicher hergestellt worden ist. Häufig kommt die VLSI-Technologie zur Anwendung, und man bemüht sich, die Größe und Komplexität der Schaltkreise zu minimieren. Bei einer vorgegebenen Technologie wird die Größe des Speichers immer durch die Ausbreitungsgeschwindigkeit der Signale begrenzt. Gleichzeitig besteht auch die Beziehung, dass bei traditioneller Architektur ein größerer Speicherbereich zwangsläufig zu längerer Zugriffszeit führt, da die Komplexität des Adressendecoders mit zunehmender Speichergröße zunimmt. Der Bedarf an Datenverarbeitungsgeschwindigkeit wird ständig größer. Da die Komplexität des Adressendecoders zunimmt und die Ausbreitungsgeschwindigkeit konstant ist, wird die Gesamtspeicherfläche, das heißt die adressierbare Fläche, auf der Information gespeichert werden kann, mit zunehmender Rechnergeschwindigkeit immer kleiner.
  • Auf vielen Anwendungsgebieten, die in den letzten Jahren schlagartig an Bedeutung gewonnen haben, wie Telekommunikation, Radar, Massenspeicher für Rechner usw., wird die Information nicht in der Form von Bytes verarbeitet, sondern als Bytefolgen, die Vektoren genannt werden. In modernen digitalen Telefonsystemen und Datenübertragungssystemen werden Informationspakete, ATM, benutzt. Bei Radarsystemen hat die Information die Form von Impulsen. Nach der Digitalisierung kann der Impuls als ein großer Vektor betrachtet werden, der durch seinen Ausgangspunkt und seine Länge definiert wird.
  • Bei vielen Anwendungen werden große Blöcke miteinander verbundener Bytes auf die gleichen Weise verarbeitet, zum Beispiel ein Textblock in einer Textverarbeitungsanlage. Ein anderes Beispiel ist der Swapspeicher (virtueller Speicher) in einem Rechner. Das gemeinsame Merkmal ist, dass große Mengen von Information (Vektor) in ihrer Gesamtheit verarbeitet werden. Ein Adressieren auf Byteebene wird nicht angewendet.
  • In US, A, 4 747 070 wird eine Speicherstruktur gezeigt, die für eine Speicherung von Vektoren gestaltet ist. Die gezeigte Speicherstruktur ist für M parallele Speicherbänke vorgesehen. Jede Speicherbank ist N Wörter tief. M Wörter können jeweils gleichzeitig aus dem Speicher gelesen werden. Die parallele Speicherstruktur gestattet eine gesteigerte Übertragungsrate zwischen dem Systemspeicher und dem Prozessor. Jede Speicherbank wird separat adressiert.
  • In US, A, 4 858 107 wird eine Speicherstruktur gezeigt, welche die Einführung eines Prioritätsschemas zwischen einer Zentraleinheit und einem Videodisplayprozessor gestattet. Der Speicher ist in Bänke oder Bitebenen organisiert, jede mit einem temporären Flipflop, das in das jeweilige Schieberegister lädt. Jede Speicherbank oder Bitebene ist mit einer separaten Adresse versehen.
  • Zweck der Erfindung
  • Ein Zweck der Erfindung besteht darin, eine Speicherstruktur zu erhalten, die einer Speicherung von Vektoren angepasst ist.
  • Ein anderer Zweck der Erfindung besteht darin, eine Speicherstruktur zu erhalten, die einen schnellen und kontinuierlichen Zugriff zu Speicherplätzen zum Lesen und/oder Schreiben von Vektoren gestattet.
  • Ein weiterer Zweck der Erfindung besteht darin, eine Struktur zu erhalten, bei der das Schreiben eines Vektors und, unabhängig davon, zum gleichen Zeitpunkt das Lesen eines Vektors stattfinden kann.
  • Noch ein weiterer Zweck der Erfindung besteht darin, eine Speicherstruktur zu erhalten, bei der das Schreiben eines Vektors und praktisch gleichzeitig Lesen desselben stattfinden kann.
  • Noch ein anderer Zweck der Erfindung besteht darin, eine Speicherstruktur zu erhalten, bei der die Zeit zur Ausgabe geschriebener Daten bis herunter auf das Taktintervall gesteuert werden kann.
  • Noch ein anderer Zweck der Erfindung besteht darin, eine Speicherstruktur zu erhalten, die als Ergänzung zum gegenwärtigen Typ von Speicherstruktur für einen Rechner benutzt werden kann.
  • Ein weiterer Zweck der Erfindung besteht darin, eine Speicherstruktur zu erhalten, die eine Verarbeitung eines gespeicherten Vektors parallel von einer Vielzahl von Speicherstellen für Vektoren zu gestatten, um entweder den verarbeiteten Vektor neu zu positionieren oder ein Verarbeitungsergebnis zu erhalten.
  • Kurze Zusammenfassung der Erfindung
  • Die oben genannten Zwecke werden durch eine Speicherstruktur erfüllt, die die im kennzeichnenden Teil des Anspruchs 1 genannten Merkmale aufweist. Weitere Merkmale und weitere Entwicklungen der Erfindung gehen aus den anderen An sprüchen hervor.
  • Gemäß der Erfindung hat nach der Konfiguration jede der Speicherstellen im Speicher eine Länge, die der Länge der großen Vektoren angepasst ist, und die parallel angeordnet sind, ausgehend von einer Informationseingabe und tiefer in den Speicher, so dass jeder Vektor ungeteilt aufeinander folgend mit Beginn des Vektors bei der Eingabe in den Speicher gespeichert wird, wobei die Adressierung so ausgeführt ist, dass sie bei der Eingabe in den Speicher stattfindet. Mittel, die als Schieberegister für die Eingabe von Information in ununterbrochener Folge zu den Speicherstellen im Speicher funktionieren.
  • Der Speicher ist vorzugsweise quer in Speicherblöcke unterteilt, so dass jede der Speicherstellen einen Teil in einem Speicherblock hat. Die Speicherstellen im Speicher können durch Verbinden eines oder mehrerer Speicherblöcke verlängert werden. Jeder Speicherblock kann folgendes umfassen:
    als Mittel, die als Schieberegister funktionieren:
    • – einen Eingabepuffer mit serieller Eingabe von Daten analog zu einem Schieberegister;

    als Speicherstellen:
    • – eine Vielzahl Speicherfelder, in welche Information vom Eingabepuffer sequentiell eingegeben werden kann.
  • In diesem Zusammenhang ist in jedem Speicherblock eine Steuerlogik angeordnet, welche Steuerlogik die Eingabe von Information in Speicherfelder über den Eingabepuffer steuert, wobei die Speicherblöcke durch die in diesen vorhandenen, kaskadenförmig aneinander gekoppelten Eingabepuffer kaskadenförmig aneinander gekoppelt sind, so dass Information seriell stufenweise durch eine Anzahl Puffer in den einzelnen aufeinander folgenden Speicherblöcken eingebbar ist, und die Steuerlogik in jedem Speicherblock ist so angeordnet, dass sie die Steuerlogik des nächsten Speicherblocks informiert, wenn die Speicherfelder im eigenen Speicherblock mit Information gefüllt sind oder alle Information aus diesen ausgelesen ist, so dass die Steuerlogik im nächsten Speicherblock die Aufgabe, Information in diesen Speicherblock zu schreiben, übernehmen kann. Für die Ausgabe von Information in ununterbrochener Folge aus den Speicherstellen im Speicher können wie Schieberegister funktionierende Mittel vorhanden sein. Außerdem können Mittel für eine Verarbeitung von parallel in den verschiedenen Speicherblöcken gespeicherten Daten vorhanden sein.
  • Vorteile der Erfindung
  • Die Speicherstruktur gemäß der Erfindung gestattet die Ausgestaltung eines großen und erweiterbaren Speicherraumes für Information, kontinuierliche Datenübertragung und gleichzeitig extrem hohe Übertragungsgeschwindigkeiten. Ein Erweitern des Speicherraums für einen Vektor und dabei der Größe des Speichers kann ohne Einfluss auf die Datenübertragungsgeschwindigkeit durchgeführt werden, da die Schnittstelle zum Speicher von außen gesehen unverändert ist.
  • Bei der Speicherstruktur gemäß der Erfindung kann eine kontinuierliche Datenübertragung mit ungefähr 0,5–1 GBytes/s stattfinden, was mit dem gegenwärtigen Wert von 30–100 MBytes/s zu vergleichen ist. Daraus ergibt sich eine um das zehnfache schnellere Übertragung bei Anwendung der entsprechenden grundlegenden Technologie. Die Speicherstrukturen selbst sind nicht von der angewandten Technologie abhängig, sondern können bei beliebigen Speichertechnologien (RAM, Magnetspeicher, optische Speicher usw.) zur Anwendung kommen.
  • Kurze Beschreibung der Zeichnungen
  • Nachstehend folgt eine Beschreibung der Erfindung unter Bezugnahme auf die beigefügten Zeichnungen, worin:
  • 1 in übersichtlicher Darstellung das Prinzip einer Speicherstruktur gemäß der Erfindung zeigt;
  • 2 eine erste Ausführungsform einer Speicherstruktur gemäß der Erfindung zeigt;
  • 3 die innere Struktur eines Speicherblocks in ausführlicherer Darstellung als in 2 zeigt;
  • 4 ein Ablaufdiagramm für die gesamte Steuerlogik für den Speicher zeigt;
  • 5 ein Ablaufdiagramm für die Steuerlogik in einem Speicherblock zeigt;
  • 6 eine zweite Ausführungsform einer Speicherstruktur gemäß der Erfindung zeigt;
  • 7 eine dritte Ausführungsform einer Speicherstruktur gemäß der Erfindung zeigt. Beschreibung der Ausführungsformen
    Definitionen
    Gespeicherte Information Bezeichnet eine Anzahl Vektoren, die jeder, von außen gesehen, kontinuierlich und in ungeteilter Form bearbeitet werden.
    Vektor Bezeichnet die gesamte kontinuierliche Menge Information, welche in einem Stück verarbeitet werden soll. Ein Vektor wird von außen mit Hilfe eines Ausgangspunkts, oder einer Identität, und der Länge definiert.
    Bytegruppe Der Größe eines Speicherfeldes angepasster Teil eines Vektors. Ein Vektor lässt sich als eine Summe von Bytegruppen beschreiben.
    Speicherstruktur Bezeichnet die Gesamtheit des Systems gem. Fig. 2. Die Speicherstruktur besteht aus einem oder mehreren Speicherblöcken, die Umsetzereinheiten 5, 6 und dieSteuerlogik 4.
    Speicherblock Bezeichnet eine Einheit mit deutlich definierter Funktion, die nur mit den nächsten Nachbarn kommuniziert, siehe Fig. 2. Die Speicherstruktur wird immer um eine ganze Zahl von Speicherblöcken erweitert.
    Speicherstelle Bezeichnet den Teil der gesamten Speicherfläche einer Speicherstruktur, der nach der Konfiguration der Länge des gegenwärtigen Vektors angepasst ist. Die Speicherstellen werden beginnend bei Speicherblock #1 und nach innen verteilt, siehe Fig. 1.
    Speicherebene Der Teil eines Speicherblocks, dem nach der Konfiguration einem bestimmten Vektor (die Identität) zugeteilt ist.
    Speicherfeld Der Teil einer Speicherebene, der in einem Stück verarbeitet wird. Die Größe entspricht der der Eingabe/Ausgabepuffer.
  • Beschreibung der Zeichnungen
  • 1 zeigt eine Anzahl Speicherblöcke #1, #2 ... #M. die in Kaskadenschaltung aneinander gekoppelt sind. Jeder Speicherblock hat einen Informationsteil 1I, 2I ... MI, und Eingabepuffer 1IB bzw. 2IB ... bzw. MIB, einen Ausgabepuffer 1UB bzw. 2UB ... bzw. MUB und eine Steuerlogik 1S bzw. 2S ... bzw. MS. Jeder Speicherblock kann auf einem separaten Chip angeordnet sein, und eine selektierte Anzahl Chips kann miteinander gekoppelt werden, um einen gewählt großen Speicher zu bilden. Es ist auch möglich und angebracht, auf einem Chip mehrere Speicherblöcke einzurichten, wobei mehrere Multiblock-Chips in Kaskadenschaltung aneinander gekoppelt sein können. Jede der Speicherstellen im Speicher hat eine Länge, die der Länge großer Vektoren angepasst ist. Die Blöcke sind parallel zueinander angeordnet und erstrecken sich beginnend bei einer Ein-/Ausgabe für Information und tiefer in den Speicher, so dass jeder Vektor so angeordnet ist, dass er ungeteilt in Folge über die Eingabepuffer gespeichert wird, und zwar beginnend mit dem Vektor am Ein- /Ausgang des Speichers, und ähnlich dass er in Folge über die Ausgabepuffer ausgegeben wird, wenn dieser Bedarf vorliegt (siehe die Ausführungsform in 7). Die Adressierung geschieht an den Ein-/Ausgang des Speichers.
  • Bei der in 2 gezeigten Ausführungsform umfasst die Speicherstruktur eine Anzahl in Kaskadenschaltung gekoppelter Einheiten oder Speicherblöcke #1–#M, Steuerlogik 4 und gegebenenfalls Umsetzereinheiten 5, 6. Die hier gezeigten Speicherblöcke haben jeder einen Teil derselben darstellenden Block mit mehreren Speicherebenen #1I–#1N bzw. „M1–#MN, die hintereinander liegen, wobei jeder eine Anzahl Speicherfelder F1–FP umfasst. Es sei darauf hingewiesen, dass im Weiteren Teil der Beschreibung ein spezielles Speicherfeld im Speicher ein Bezugszeichen hat, das seine Zuordnung zum jeweiligen Speicherblock und zur jeweiligen Speicherebene angibt, z. B. #m, Qi, Fj bezeichnet ein Speicherfeld Fj in der Speicherebene Qi im Speicherblock #m. Dieses Bezugssystem wird durchgehend angewandt.
  • Es ist jedoch offenbar, dass die Speicherblöcke in der Praxis eine Oberflächenstruktur aufweisen können, bei der die Ebenen auf verschiedene Stellen auf der Oberfläche verteilt oder als Speicherfelder in Folge angeordnet sind, so dass zum Beispiel im Falle eines Chips mit mehreren Blöcken die Speicherfelder in Speicherblöcken #2/Speicherebene #Qi in direkter Fortsetzung der Speicherfelder in Speicherblock #1/Speicherebene #Q1 usw. angeordnet sind.
  • Wie aus 3 hervorgeht, hat die Speicherstruktur mehrere adressierbare Speicherstellen oder Speicherebenen Q1 ... Qi ... QN (i = 1 ... N). Jeder Speicherblock #m hat eine Anzahl Speicherfelder F1 bis FP, die jeder adressierbaren Speicherebene Q1 zugeordnet sind.
  • Jeder Speicherblock #m ist physisch in Wm Zeilen (entsprechend N × P in 3) und a × b Spalten organisiert. Jede Zeile bildet ein Speicherfeld und enthält eine Anzahl Bytegruppen oder Wörter (a), jeweils mit einer geeigneten Anzahl Bits (b). Der Speicherblock #m ist deshalb Wm × a × b Bit groß. Die Speicherstruktur hat eine Gesamtgröße von (W1 + W2+ ... + WM) × a × b Bit. Es ist auch der Sonderfall denkbar, dass a, b und W von Speicherblock zu Speicherblock variieren, aber dieser Fall wird hier nicht behandelt.
  • Ein Vektor Vi mit der Länge Li Wörter ist als Li/a Teilvektoren in den Speicherfeldern M1, F1, ..., M1, FP: M2 F1, ..., M2 FP; ..., MN F1, ..., NM FP gespeichert. Nach der Konfiguration gilt, dass Li = a × (Oi1 + Oi2 + ... + OiM) Wörter, worin Oim den Inhalt von Mi Fm (i = 1 – N, m = 1 – P) bezeichnet. Die Größe des Vektors ist demzufolge a × b × (Oi1 + Oi2 + ... OiM) Bit. Für jeden Speicherblock gilt auch, dass die Anzahl Zeilen immer der Summe der Anzahl Speicherfelder entspricht. Wm = O1m + O2m + ... + ONm.
  • Vektoren verschiedener Längen können gleichzeitig in der Speicherstruktur gespeichert werden.
  • Die Speicherstruktur kann auf verschiedene Arten konfiguriert werden. Von außen gesehen werden die Vektoren nur vom Ausgangspunkt (der Identität) #1 Mi F1 aus adressiert, wo i jede beliebige Zahl zwischen 1 und N darstellen kann und F1 das erste Speicherfeld im Speicherblock #1 in der Speicherebene Mi bezeichnet. Die Länge der Vektoren Li wird durch die Konfiguration vorgegeben. Die Konfiguration kann statisch oder dynamisch sein.
  • Bei statischer Konfiguration sind alle Oim vorgegeben. Die Steuerlogik 4 besitzt Information über die Anzahl N Speicherstellen Mi ebenso wie über die Länge der jeweiligen Speicherstellen Li. Die Steuerlogik 1S–MS in den Speicherblöcken besitzt Information über den Ausgangspunkt #1 Qi F1 und die Länge Oim des jeweiligen Speicherblocks. Der Endpunkt #m Qi Fj wird indirekt durch den Ausgangspunkt und die Länge vorgegeben.
  • Bei dynamischer Konfiguration verändert sich die Länge der gegenwärtigen Speicherebene, oder die Speicherstelle Mi ändert sich während des Schreibens. Es wird vorausgesetzt, dass dem Informationsvektor Information über sowohl die Länge als auch andere globale Information folgt. Diese Information ist alternativ in der ersten Bytegruppe als ein Kopf des Vektors Vi zu finden. Die Steuerlogik kann dann diese Information lesen, anwenden und entsprechend ihrer weiteren Ausbreitung in die Speicherstruktur verändern. Nach dem Kopf folgt die Information sequentiell.
  • Bei statischer Konfiguration wird vorausgesetzt, dass der Informationsvektor, der aus einer oder in eine Speicherstelle Qi gelesen bzw. geschrieben wird, hat eine Länge, die der Konfiguration entspricht. Bei der statischen Konfiguration kann der Kopf ausgelassen werden.
  • Jeder Speicherblock #1 hat einen Eingabepuffer iIB mit einem Pufferspeicher, der eine Anzahl Speicherbit für jedes Speicherfeld in der Speicherebene für ankommende Information und einen Ausgabepuffer iUB mit der gleichen Pufferspeichergröße für ausgehende Information umfasst. Darüber hinaus vorhanden ist eine Steuerlogik iS, die das Schreiben und Lesen von Information in der Speicherebene und dabei in welchem Speicherfeld oder welchen Speicherfeldern derselben steuert.
  • Die Rechnereinheit, die über die Schnittstelle 5, 6 (siehe 2) an die Speicherstruktur gemäß der Erfindung angeschlossen ist, ladet die ankommende Information durch den Informationseingang und gibt Information aus über den Informationsausgang in Form von Vektoren, beispielsweise Datenpaketen. Jeder Vektor kann mit einem Identität, Länge usw. enthaltenden Kopf ausgestattet werden. Alternativ kann die erforderliche Information, was für den Fachmann einsichtig ist, auf beliebige andere Art der Schnittstelle zugeführt werden. Eine Steuerlogik 4 ist an die Schnittstelle angeschlossen, um den Speicher in Übereinstimmung mit der bei diesem ausgelesenen Information zu steuern. Die Steuerlogik 4 kann darüber hinaus mit einem (nicht dargestellten) Internspeicher ausgestattet sein, in dem Daten zu den gespeicherten Vektoren, einschl. wo diese im Speicher gespeichert sind, und Information darüber, wo neue Vektoren gespeichert werden können. Somit findet die Adressierung an den Speicher unter dem Einfluss der Steuerlogik 4 statt. Dies ist in 4A erkennbar.
  • Die 4A4C zeigten ein Ablaufdiagramm einer Ausführungsform für die Arbeitsweise der Steuerlogik, teils während einer Aktivierung (4A), teils während des Schreibens in den Speicher (4B) und teils während des Auslesens aus dem Speicher (4C). Die Ablaufdiagramme sind so erläuternd, dass sich eine Beschreibung der einzelnen Stufen erübrigt.
  • Wie aus der nachfolgenden, ausführlicheren Beschreibung hervorgeht, ist die in den Speicher eingegebene Information zweckmäßig vom Paralleltyp, d. h. in form von parallelen Bytes von geeigneter Lände, zum Beispiel 8, 16, 32 Bit. Wenn rein serielle Information eingegeben wird, führt die Umsetzereinheit 5 eine Umsetzung von der Bitform in die Parallelbyteform durch. Auf gleiche Weise sollte gegebenenfalls eine Umsetzung von Parallelbytes in Bit in der Umsetzereinheit 6 stattfinden. Es sei darauf hingewiesen, dass kein Hindernis besteht, dass Eingabeinformation am Informationseingang serielle Form und die Ausgabeinformation am Informationsausgang Parallelform oder umgekehrt hat, wobei dann nur eine der Umsetzereinheiten 5 oder 6 benötigt wird.
  • Währen der dynamischen Konfiguration (siehe 4B) wird der Kopf jedes zu schreibenden Informationsvektors gelesen. Die darin enthaltene Information wird teilweise benutzt, um festzustellen, wie viel Speicherplatz der Vektor in Anspruch nehmen wird, und teilweise dazu, die Steuerlogik 1S im ersten Speicherblock #1 zu aktivieren und ihr Information darüber, wie viele der nachfolgenden Steuerlogiken iS in den anderen Speicherblöcken #1 aktiviert werden müssen.
  • In der Praxis wird jeder gespeicherte Vektor seinen Anfang im Speicherfeld F1 in einer der Ebenen Qi im Speicherblock #1 haben und sich von dort aus tiefer in den Speicher erstrecken. Man kann erwägen, die Speicherung eines Vektors als eine einzelne kontinuierlichen Folge auszuführen. Auf diese Weise werden die Vektoren parallel arrangiert, und deren Adressierung erfolgt am Anfang der einzelnen Ebenen im Speicherblock #1. Viele der Speicherfelder F1–FP werden wirklich in jedem Speicherblock für die Speicherung benutzt, so dass die Speicherung als gefaltet betrachtet werden kann, aber in Wirklichkeit liegt der gesamte Vektor in einer ununterbrochenen Folge, vom Anfang bis zum Ende von Speicherblock zu Speicherblock.
  • Jede Steuerlogik in den Speicherblöcken enthält im Inneren einen Speicher mit Information darüber, welche Speicherebenen und welche Felder darin leer oder bereits gefüllt sind. Wenn Vektoren, die gespeichert werden sollen, ankommen, findet zuerst eine Suche statt, entweder in der Steuerlogik 4 oder in der Steuerlogik 1S, um eine verfügbare Speicherebene zu finden.
  • Wie aus 5, in der eine Ausführung des Ablaufdiagramms für jede Steuerlogik 1S–MS in den Speicherblöcken, hervorgeht, beginnt das Schreiben, wenn die Information, der Vektor, durch die Schnittstelle geht (siehe 2). Die Konfiguration muss nicht vollständig für alle Speicherblöcke erfolgen, denn dies findet nach und nach entsprechend der Ausbreitungsgeschwindigkeit der Information in den Speicher hinein statt. Angenommen, die Ebene Qi, wobei i eine Zahl zwischen 1 und N darstellt, erweist sich als leer. Es ist zu beachten, dass ein Vektor immer in der gleichen Ebene, zum Beispiel Qx, wobei x eine Zahl zwischen 1 und N darstellt, in all den einzelnen Blöcken, d. h. in den Ebenen #1, Qx; #2 Qx; #2 Qx usw., gespeichert wird. Der ankommende Vektor beginnt, in den Eingabepuffer 1IB eingegeben zu werden. Sobald er mit einer Bytegruppe gefüllt ist, erfolgt eine Übertragung desselben in das erste Speicherfeld F1 in der Speicherebene #1 Qx. Der Eingabepuffer ist auf entsprechende Weise mit einem Schieberegister gefüllt, aber die Ausgabe von den Speicherfeldern kann entweder seriell oder parallel erfolgen, vorzugsweise parallel, damit der gesamte Speicherinhalt des Eingabepuffers entleert wird.
  • Auf gleiche Weise findet beim Schieberegister ein direktes Füllen statt, wonach der gesamte Inhalt des Speichers in das nächste Speicherfeld F2 in der Ebene #1 Qx usw. entleert wird, bis das letzte Speicherfeld FP in der Ebene #1 Qx gefüllt ist. Die Steuerlogik hat in diesem Zusammenhang einen (nicht abgebildeten) Eingabe-Feldpointer, der das gegenwärtig für Schreiben benutzte Speicherfeld ansteuert.
  • Daraufhin wird der Eingabepuffer 1IB angesteuert, so dass er mit dem Füllen des Eingabepuffers 2IB beginnt, auf gleiche Weise wie bei einem Schieberegister, und zwar seriell, d. h. Parallelbyte auf Parallelbyte, bis er gefüllt ist. Die gesamte serielle Länge des als Puffer benutzten Schieberegisters wird ab jetzt serielles Byte genannt, denn es repräsentiert die für ein Füllen des Puffers erforderliche Anzahl Taktsignale, d. h. es repräsentiert die serielle Länge einer Parallelbytegruppe.
  • Wenn der Eingabepuffer gefüllt ist, füllt er das erste Speicherfeld F1 in Ebene #2 Qx, und die verschiedenen folgenden Speicherfelder werden danach auf die gleiche Weise gefüllt wie das Speicherfeld in Speicherebene #1 Qx, d. h. gesteuert durch den Feldpointer von der Steuerlogik. Wenn die Speicherebene #1 Qx gefüllt ist, wird die Übertragung von Information in den Eingabepuffer 2IB des Speicherblocks #2 weiter übertragen an den Eingabepuffer des nächsten Speicherblocks und danach von diesem an die Speicherfelder in der nächsten Speicherebene #3Qx in diesem Speicheblock usw. Es sei darauf hingewiesen, dass die Möglichkeit besteht, mit vielen Eingabe- und Ausgabepuffern zu arbeiten, zum Beispiel zur gleichzeitigen Versorgung mehrerer Speicherebenen, obwohl dies in keiner der Figuren gezeigt ist. Auch die Steuerlogik kann mehrfach vorkommen.
  • Es sei darauf hingewiesen, dass Information in Form von sequentiellen Parallelbytes in die Eingabepuffer eingegeben werden kann, wobei jeder Puffer de facto so viele Parallelschieberegister enthält, wie Bit in jedem Byte enthalten sind. Der Ausdruck Parallelbytegruppe bezeichnet die Anzahl Bytes, die einen Eingabe-/Ausgabepuffer füllen. Wenn ein Eingabepuffer in ein Speicherfeld in einer Ebene entleert wird, muss eine sehr große Datenmenge übertragen werden. Deshalb umfasst jedes Speicherfeld eine extrem große Anzahl von Parallelbytegruppen.
  • Daten können unmittelbar nach dem Schreiben wieder aus einem Speicherfeld gelesen oder ausgegeben werden.
  • Wie im Ablaufdiagramm in 5 deutlich erkennbar, wird der Inhalt eines Speicherfeldes während des Lesens zu einem Zeitpunkt parallel mit der gesamten Parallelbytegruppe im ersten Feld in der in Rede stehenden Ebene Ii an den Ausgabepuffer 1UB übertragen und seriell ausgegeben, d. h. Parallelbyte nach Parallelbyte.
  • Wenn die Übertragung an den Ausgabepuffer des vorletzten Speicherfelds in Ebene #1 Qi stattgefunden hat, aktiviert die Steuerlogik 1S die Steuerlogik 2s zur Übertragung des Inhalts des ersten Speicherfelds #2 Qi an den Ausgabepuffer 2UB.
  • Sofort nach der Übertragung des letzten Spiecherfelde FP an den Ausgabepuffer 1UB und wenn dieser seinen Inhalt an Parallelbytes seriell ausgegeben hat, gibt ein Ausgabepuffer 2UB seinen Inhalt Parallelbyte nach Parallelbyte seriell an den Ausgabepuffer 1UB aus, so dass dieser direkt auf den früheren Inhalt des Puffers 1UB folgt.
  • Auf diese Weise gibt es keine Unterbrechung in der Informationsausgabe. Die Information in den Speicherfeldern in Ebene #2 Qi wird schrittweise ausgegeben an den Ausgabepuffer 2UB, gesteuert von einem (nicht dargestellten) Ausgabefeldpointer durch die Steuerlogik 2S, und von diesem seriell über Puffer 1UB ausgegeben. Wenn das vorletzte Speicherfeld FP in Ebene 2i an den Ausgabepuffer 2UB übertragen wird, wird die Steuerlogik für den nächsten Speicherblock aktiviert, damit die Information im Speicherfeld an den Ausgabepuffer des Speicherblocks übertragen wird usw.
  • Bei der oben beschriebenen Ausführungsform gibt jeder Ausgabepuffer in den einzelnen Blöcke seinen Inhalt, eine Parallelbytegruppe, Parallelbyte nach Parallelbyte seriell an den nächsten Ausgabepuffer. Dies bedeutet, dass die Steuerung sowohl bei der Eingabe als auch der Ausgabe Parallelbyte nach Parallelbyte stattfindet. Jede Parallelbytegruppe kann in diesem Fall eine relativ große Anzahl Parallelbytes enthalten, d. h. der Start der Ausgabe eines Vektors mit Daten kann nach dem relativ langen Zeitintervall von einer Anzahl Taktabständen stattfinden, welche durch die Länge der Parallelbytegruppen vorgegeben sind.
  • Es gibt jedoch Anwendungen, bei denen die Steuerung der Datenausgabe auf einem so niedrigen Wert liegt wie der Taktabstand des Systems, in welchem der Speicher gemäß der Erfindung einen Teil darstellt. Die Kopflogik des Speichers besitzt Information darüber, in welcher Parallelbytegruppe die Ausgabe stattfinden soll und auch über die Phasenverschiebung, die innerhalb der Zeitlänge der Parallelbytegruppe erforderlich ist, damit die Ausgabe genau zum erwünschten Zeitpunkt stattfindet.
  • Eine Ausführungsform der Erfindung mit einer Steuerlogik, mit der dies erzielt wer den kann, ist in 6 dargestellt. Es besteht die Möglichkeit einer Ausgabe des gleichen Speicherinhalts an verschiedene Teile des Systems zu voneinander unabhängigen, steuerbaren Zeitpunkten, und in diesem Fall ist es möglich, viele Ausgabepuffer an die Speicherebenen angeschlossen zu haben. Allerdings ist in den Figuren nur ein Ausgabepuffer OUTBUFF dargestellt. Jeder Ausgabepuffer umfasst einen Zwischenpuffer MBUFF, in dem während der Steuerung der Inhalt im Schieberegister sk übertragbar ist. Natürlich weisen die einzelnen Ausgabepuffer die gleiche Arbeitsweise auf, und demzufolge trifft auch für alle OUTBUFF-Ausgabepufter die gleiche Beschreibung zu.
  • Wenn die örtliche Steueranordnung in einem Speicherblock eine Indikation dafür erhält, dass der Speicherinhalt in einer Speicherebene über einen Ausgabepuffer OUTPUT ausgegeben werden soll, wird das erste Speicherfeld in dieser Speicherebene mit Hilfe eines hierfür vorhandenen Steuersignals C-1 in den Zwischenpuffer MBUFF heruntergeladen. Beim entsprechenden Taktsignal für die aktuelle Ausgabe erfolgt eine Übertragung des Inhalts des Zwischenpuffers mit Hilfe eines Steuersignals C-2 in das Schieberegister sk für die getaktete Ausgabe direkt mit Steuerung am Taktgebereingang CLK des Schieberegisters. Die Übertragung des Inhalts des nächsten Speicherfeldes an den Zwischenpuffer OUTBUFF erfolgt entweder direkt auf die Übertragung aus dem Zwischenpuffer an das Schieberegister oder vorzugsweise zu Beginn der nächsten ganzen Parallelbytegruppenperiode. Allerdings steht nichts einer Übertragung in den Zwischenpuffer zu jedem beliebigen Zeitpunkt im Intervall vor der Übertragung in das Schieberegister sk entgegen, beispielsweise während der Taktperiode direkt vor der Übertragung aus dem Zwischenpuffer in das Schieberegister.
  • Wenn dann der gesamte Speicherblock leer ist, so wie vorstehend beschrieben, wird Eingabe in den Ausgabepuffer zwecks weiterer Übertragung an den Ausgang fortgesetzt. Diese Daten werden wegen der gleichen Steuerung für den nächsten folgenden Block direkt als eine zeitlich korrekt fortgesetzte serielle Bytesgruppe in kontinuierlicher Reihenfolge in das Schieberegister sk an dessen seriellem Eingang eingegeben, der mit dem Schieberegister für den folgenden Ausgabepuffer verbunden ist, um durch das Schieberegister an den Ausgang des Speichers ausgegeben zu werden.
  • Ein Beispiel für eine Steuereinrichtung für den ersten Ausgabepuffer OUTBUFF für den Speicherblock für die Ausgabe der jeweiligen Übertragungen von den jeweiligen Speicherfeldern an den Zwischenpuffer MBUFF und danach vom Speicherpuffer an das Schieberegister sk ist unten in 6 dargestellt. Bei der Überprüfung, ob die Ausgabe von in den Speicherebenen auszugebenden Daten zu einem bestimmten Zeitpunkt an Logikschaltung 10 geht, diese zeigt zuerst mit einem Ausgabefeldpointer auf das erste Speicherfeld in den Speicherebenen nach der Passage einer kleinen Gitterschaltung 11, welche den Durchgang von Signalen von der Logikschaltung in Anwesenheit eines Steuersignals CKL/b gestattet, wobei b die von einem Zahler 12 gezählte Anzahl Parallelbyteschritte im Schieberegister SK bezeichnet. Der Ausgabefeldpointer bewegt sich zum nächsten Speicherfeld beim nächsten Steuersignal CLK/b und zum nächsten Speicherfeld beim nächsten Steuersignal usw. Dies ist durch das Oval 13 dargestellt. Darüber hinaus ist die Phasenverschiebung bezüglich der Phase des Ausgabefeldpointers im oberen Teil der Figur für die einzelnen Positionen P1–Pa dargestellt, wo a die Positionslänge eines Speicherfeldes in den einzelnen Feldern Fi und F(i + 1) angibt, wobei C-1 bei dieser Ausführungsform zu Beginn des Ausgabefeldpointers kommt und C-2 steuerbar zur gewünschten Position, z. B. P2, versetzt wird.
  • Der Ausgang vom Zähler 12 wird zusammen mit einem Ausgang von der Logikschaltung 11 in eine zweite Logikschaltung 14 eingegeben, die für den Feldwechsel vorhanden ist. Die Logikschaltung 14 gibt dann, gemäß der dargestellten Ausführungsform, das Signal C-1 an ihrem Ausgang aus, welches Signal im gezeigten Fall die Datenübertragung vom selektierten Speicherfeld über eine kleine Gitterschaltung 15 an den Zwischenpuffer MBUFF ausgibt, wobei die Gitterschaltung das Signal beim nächsten Taktsignal CLK ausgibt. Das Signal C-1 wird auch dem Eingang einer Verzögerungseinheit 16 zugeleitet, welche an einem Steuereingang ein Signal 15 von der Logikschaltung 10 hat, welches Signal vorzugsweise in digitaler Form ansteht und die gegenwärtige Verzögerung für Daten im Zwischenpuffer vor der Übertragung an das Schieberegister SK1 feststellt. Dieser Vorgang setzt sich fort, bis der Ausgabefeldpointer beim letzten Feld in der auszugebenden Speicher ebene angelangt ist. Das Signal von der Logikschaltung 14 von Logikschaltung 10 steht nicht mehr an. Statt dessen bietet die Logikschaltung 10 bei der vorletzten Ausgabefeldpointerposition einen Ausgang an den nächsten Block, um dort die Steuerlogik zu aktivieren.
  • Obwohl dies nicht dargestellt ist, lassen sich viele steuerbare Verzögerungen separat von der Logikschaltung 10 anordnen, entweder um bei Bedarf das Signal C-1 mit der gewünschten Verzögerung auszugeben und/oder unterschiedliche Verzögerungen bei verschiedenen Ausgabepuffern o. dgl. zu erhalten.
  • Bei allen vorstehend beschriebenen Ausführungsformen des Speichers sind die Eingabe- und Ausgabedaten auf der gleichen Seite des Speicherblocks eingegeben bzw. ausgegeben worden. Bei der 7 gezeigten Ausführungsform können ganze gespeicherte Vektoren entweder gemäß der vorstehend beschriebenen Ausführungsform ausgegeben werden, und es ist auch oder alternativ möglich, die Signalverarbeitung an Daten auszuführen, die gleichzeitig in verschiedenen Speicherblöcken gespeichert sind, d. h. parallel.
  • Die Signalverarbeitung kann zum Beispiel das durchgehende Ersetzen von Sonderzeichen in einer gespeicherten Textkette für spätere Ausgabe des gesamten gespeicherten Vektors durch die mit gestrichelten Linien dargestellten Ausgabepuffer betreffen. In einem solchen Fall erfolgt eine Rückübertragung der Daten nach der Verarbeitung an das Speicherfeld in der Speicherebene, aus der sie entnommen wurden. Alternativ oder ergänzend kann eine aufwendigere Datenverarbeitung durchgeführt werden. Ein Vorteil dieser Ausführungsform besteht darin, dass die Signalverarbeitung einer großer Menge gespeicherter Daten schnell durchgeführt werden kann.
  • Es kann auch möglich sein, irgendeine Art von Behandlung der gespeicherten Daten durchzuführen, um eine besondere Eigenschaft zu untersuchen oder ein Ergebnis zu erhalten. In einem solchen Fall besteht vielleicht überhaupt kein Interesse daran, einen eingegebenen Vektor auszugeben, und dann werden die mit gestrichelten Linien dargestellten Ausgabepuffer nicht benötigt. Diese sind deshalb gemäß der Erfindung überhaupt nicht erforderlich.
  • Jeder Speicherblock, zum Beispiel #m, hat einen an diesen angeschlossenen Verarbeitungspuffer mBm, an den die Steuerlogik #mL den Inhalt in einer Speicherebene, Speicherfeld für Speicherfeld, auf gleiche Weise wie an ihren Ausgabepuffer senden kann. Der Inhalt des Speichers #m,Bm wird danach an eine örtliche Signalverarbeitungseinheit #m,LSm übertragen, in der die besondere Signalverarbeitung ausgeführt wird. Anschließend können die verarbeiteten Daten entweder, wie vorstehend angegeben und mit gestrichelten Linien in der Figur gezeigt, zurück zum Speicher oder zu den Speicherfeldern geleitet werden, dem bzw. denen sie entnommen worden sind, oder sie können an eine für alle Blöcke gemeinsam angeordneten Verarbeitungseinheit GS übertragen werden, welche ein Ergebnis extrahiert und dieses ausgibt, oder es kann beides stattfinden. Es sei darauf hingewiesen, dass, abhängig vom Inhalt der einzelnen Speicherblöcke, diese Extraktion eines Ergebnisses auf separaten Speicherebenen, in Speicherfeldern in einer Speicherebene oder im gesamten Speicherblock durchgeführt werden kann. Da die Art von Signalverarbeitung, die angewandt wird, keine Bedeutung für das Konzept der Erfindung hat, ist nachstehend nur ein Beispiel dafür angeführt, nämlich die von gesamten Speicherblöcken oder Speicherebenen in Speicherblöcken.
  • Es ist auch möglich, die Verarbeitung in allen Speicherebenen im gleichen Speicherblock auf die oben angegebene Art zu durchzuführen. Eine Situation, in der dies vorkommen könnte, ist die Speicherung von Videosignalen für Bilderzeugung, bei der jede Zeile im Bild in unterschiedlichen Speicherebenen in den Speicherblöcken gespeichert werden kann. Die vorliegende Erfindung gestattet einen schnellen und einfachen Zugriff zu Teilen des Bildes und eine Bildverarbeitung an diesen Teilen, wobei die Zeilen in einem speziellen Speicherblock oder in mehreren aneinander grenzenden Speicherblöcken gesammelt sind. Dadurch wird eine schnell Bildverarbeitung bei jedem beliebigen Typ von Bildern möglich.
  • Anwendungsvorteile
  • Beispiele für Vektoren, die sich besonders für eine Speicherung nach der erfin dungsgemäßen Methode eignen, sind Textmengen von einer Texiverarbeitungsanlage. Die Textmenge kann als Startpunkt eines Vektors und dessen Länge definiert werden. Es muss jedoch nicht genannt werden, wo sich dieser befindet. Ein Vorteil bei der Anwendung der Erfindung besteht in einer erheblichen Steigerung der Rechnergeschwindigkeit.
  • Traditionell werden Textmengen aufgeteilt auf verschiedene Stellen auf z. B. einer Festplatte gespeichert. Um an die gespeicherte Information kommen zu können, wird zuerst ein Sektor adressiert und dort Information abgegriffen, der nächste Sektor adressiert und dort Information abgegriffen usw. Daraus ergeben sich eine große Anzahl Adressiervorgänge und viel Warten auf Information.
  • Traditionell läuft auch das Abgreifen von Information aus einer nahe gelegenen Position relativ schnell ab. Je mehr Speicher durchsucht werden muss, desto länger dauert der Vorgang. Auf diese Weise verringert sich die Datenübertragungsgeschwindigkeit proportional der Größe des Speichers und der Streuung der Information.
  • Gemäß der Erfindung befindet sich der Startpunkt der Information in einem Vektor am Ein-/Ausgang des Speichers und ist eine Kette, d. h. in den verschiedenen Ebenen #mi,Qj, wobei j eine beliebige Zahl zwischen 1 und N ist, wobei sich die Kette vom Ein-/Ausgang tiefer in den Speicher hinein erstreckt. Ein neuer Vektor kann ohne Unterbrechung für eine Suche nach geeigneten Stellen in den Speicher eingegeben werden. Auf gleiche Weise ist die Ausgabe eines gespeicherten Vektors ohne Unterbrechung möglich bei den Ausführungsformen, bei denen eine Ausgabe erforderlich ist. Daraus ergibt sich, dass die Menge der Information unendlich groß werden darf, ohne dass dies in irgendeiner Weise die Zugriffszeit beeinträchtigt. Der Endpunkt eines Vektors wird für das Speicherfeld in den letzten Speicherblöcken markiert, wo der Vektor geschrieben und durch die Steuerlogik in dem Speicherblock gelesen werden kann, welcher diese Information in seinem internen Speicher speichert. Ein gleichzeitiges Lesen und Schreiben des Speichers kann stattfinden. Diese Steuerlogik kennt demzufolge den Endpunkt für sowohl die Eingabe als auch die Ausgabe und signalisiert dies den anderen Steuerlogiken, insbe sondere während der Ausgabe des Ende des Vektor, durch die jeweiligen Ausgabepuffer.
  • Jede Steuerlogik iS umfasst deshalb eine Liste für jeden Informationsvektor mit Angaben darüber, um welche Informationsart es sich handelt, und über den Start- und Endpunkt des Vektorteils, der in seinem zugeordneten Speicherblock mit Verknüpfungen geschrieben werden kann. Dieser Teil der Steuerlogik ist zweckmäßigerweise in der Hardware ausgeführt, was effizienter ist als in einem dynamischen Speicher. Eine Ausführungsform der Steuerlogik für die Ausführungsformen gemäß 15 kann entsprechend 6 ohne Verzögerung 16 ausgeführt werden. Von außen wird der Speicher wie ein normaler Speicher aussehen. Die einzige Begrenzung bei einem Speicher gemäß der Erfindung besteht darin, dass er nur bei der Behandlung von Vektoren effizient ist. Der Speicher kann als Teil des normalen Speichers eines Computers eingeschlossen werden.
  • Das neue System gestattet sowohl ein schnelles Auffinden von Information als auch eine schnelle Übertragung von Daten. Ein Speicherblock kann ein Teil eines Chips darstellen, d. h. mehrere Speicherblöcke können auf dem gleichen Chip oder die Speicherblöcke können auf separaten Chips angeordnet werden. Alternativ kann jeder Speicherblock aus mehreren Chips oder aus Standardkomponenten aufgebaut sein. All diese Möglichkeit können zusammen auf dem Markt vorhanden sein, was eine flexible Anwendung mit einer Kombination verschiedener Einheiten mit sich führt.
  • In dem Fall, dass die Vektoren für eine Anwendung tendieren, so lang zu werden, dass sie in mehrere Vektoren unterteilt werden müssen, damit eine Speicherung im Speicher stattfinden kann, können zum Beispiel auf einfache Weise zusätzliche Speicherblöcke (Chips) nach dem letzten angeschlossen werden, um auf diese Weise den Speicherraum für Vektoren zu vergrößern, die dann gespeichert werden können.
  • Ein anderes Anwendungsgebiet findet sich in der Telekommunikation, wo Daten in serieller Bitform ankommen können, in dem Fall, dass geeignete Umsetzereinhei ten 5 für vom ersten Eingabepuffer kommende Information vorhanden sind, die die Umsetzung von Bit in Byte bewirken.
  • Die Eingabepuffer können auch so organisiert sein, dass sie serielle Schieberegister darstellen (Sonderfall). Es besteht auch die Möglichkeit, an den Eingabepuffern serielle und an den Ausgabepuffern parallele Schieberegister oder umgekehrt vorzusehen. Ob gewählt wird, zuerst eine Parallelisierung der Daten stattfinden soll, ist eine Frage der Implementierung. Dies ist sehr wahrscheinlich, wenn eine Anwendung in der zukünftigen Telekommunikation in Erwägung gezogen wird. Dort steht die Eingangsinformation in serieller Form an. Dann wird zuerst eine Parallelumsetzung in der Komponente 5 außerhalb des Speichers durchgeführt.
  • Jede Steuerlogik 4 und mS kann als einfaches Datenchip mit einem festen Programm ausgeführt sein. Alternativ kann die Steuerlogik mS in den Speicherebenen integriert sein. In 4 und 5 ist die Gestaltung von Ablaufdiagrammen für die Steuerlogik dargestellt. Die Funktionen, die in den Ablaufdiagrammen erzielt werden, sind vorstehend beschrieben worden, weshalb die Ablaufdiagramme selbst keiner weiteren Erläuterungen bedürften, sondern vom Fachmann sofort verstanden werden.
  • Viele denkbare Modifikationen im Rahmen des Umfangs der Erfindung gehen aus den beiliegenden Patentansprüchen hervor.

Claims (13)

  1. Speicherstruktur zur Speicherung von Speichervektoren an zumindest einer Speicherstelle, wobei – der Speicher quer in Speicherblöcke (#1–#M) untergeteilt ist; – jede der Speicherstellen im Speicher (#1,Qi–#M,Qi) parallel sich von einer Eingabe für Information und tiefer in den Speicher erstreckend angeordnet ist, so dass alle Speicherstellen je einen Teil in jedem Speicherblock haben; – Hilfsmittel (1IB–MIB) vorhanden sind, die wie Schieberegister für die Eingabe von Information in ununterbrochener Folge an die Speicherstellen im Speicher funktionieren; dadurch gekennzeichnet, dass – jeder Vektor für eine ungeteilte Speicherung in einer sequentiellen Reihenfolge mit dem Beginn des Vektors an der Eingabe des Speichers (Speicherfeld F1 in der Speicherebene #1,Qi) angeordnet ist; – die Adressierung so gestaltet ist, dass sie durch die Eingabe in den Speicher erfolgt; – jede der Speicherstellen im Speicher (#1,Qi–#M,Qi) nach der Konfiguration eine der Länge der großen Vektoren angepasste Länge aufweist und die Speicherstellen im Speicher durch Anschließen eines oder mehrerer Speicherblöcke erweitert werden können.
  2. Speicherstruktur nach Anspruch 1, dadurch gekennzeichnet, dass jeder Speicherblock folgendes umfasst: als Mittel, die als Schieberegister funktionieren: einen Eingabepuffer (jIB) mit serieller Eingabe von Daten analog zu einem Schieberegister; als Speicherstellen: eine Vielzahl Speicherfelder (F1– FP), in welche Information vom Eingabepuffer sequentiell oder parallel eingegeben werden kann; und dass eine Steuerlogik (iS) in jedem Speicherblock angeordnet ist, welche Steuerlogik die Eingabe von Information in die Speicherfelder über die Eingabepuffer steuert; wobei die Speicherblöcke durch die in diesen vorhandenen, kaskadenförmig aneinander gekoppelten Eingabepuffer kaskadenförmig aneinander gekoppelt sind, so dass Information seriell durch mehrere der Puffer in aufeinander folgenden Speicherblöcken eingebbar ist; und dass die Steuerlogik im nächsten Speicherblock so angeordnet ist, dass, wenn die Speicherfelder im eigenen Speicherblock mit Information gefüllt sind oder Information aus diesen ausgelesen ist, damit die Steuerlogik im nächsten Speicherblock die Aufgabe, Information in den Speicherfeldern in diesem Speicherblock zu lesen, übernehmen kann.
  3. Speicherstruktur nach einem der vorgenannten Ansprüche, dadurch gekennzeichnet, dass Mittel (1UB–MUB) vorhanden sind, die wie Schieberegister für die Ausgabe von Information in ungeteilter Folge von den Speicherplätzen im Speicher funktionieren.
  4. Speicherstruktur nach Anspruch 1, dadurch gekennzeichnet, dass – ein Ausgabepuffer (jUB) mit serieller Ausgabe von Daten analog zu einem Schieberegister angeordnet ist; – Information in den Speicherfeldern (F1–FP) des Rechners während der Ausgabe von Daten sequentiell an den Ausgabepuffer übertragen wird; wobei die Steuerlogik (iS) in jedem Speicherblock so angeordnet ist, dass sie die Ausgabe von Information in den Speicherfeldern über die Ausgabepuffer steuert und die Steuerlogik im nächsten Speicherblock informiert, wenn der Speicher im eigenen Speicherblock von Information entleert ist, so dass diese die Aufgabe, Information in den Speicherfeldern in diesem Speicherblock zu lesen, übernehmen kann.
  5. Speicherstruktur nach einem der vorgenannten Ansprüche, dadurch gekennzeichnet, dass die wie Schieberegister funktionierenden Mittel von solcher Art sind, dass sie eine serielle Zufuhr von Bytes handhaben können.
  6. Speicherstruktur nach einem der Ansprüche 2–5, dadurch gekennzeichnet, dass die Übertragung zwischen Speicherfeldern und Puffern parallel stattfindet, während der gesamte Informationsgehalt gleichzeitig von der Steuerlogik in dem in Rede stehenden Speicherblock gesteuert wird, wenn die Über tragung stattfindet.
  7. Speicherstruktur nach einem der Ansprüche 2–6, dadurch gekennzeichnet, dass die Information während der Ein- und/oder Ausgabe für eine kontinuierliche Übertragung an Eingabe- und/oder Ausgabepuffer in den verschiedenen Speicherblöcken ohne Handshake-Vorgänge zwischen diesen angeordnet ist.
  8. Speicherstruktur nach einem der Ansprüche 2–7, dadurch gekennzeichnet, dass die Mittel (1IB–MIB, 1UB–MUB), die wie Schieberegister funktionieren, parallel zueinander angeordnet sind und unabhängig voneinander gesteuert werden können, was eine gleichzeitige Ein- und Ausgabe von Information in den/aus den Speicherstellen im Speicher gestattet.
  9. Speicherstruktur nach einem der vorgenannten Ansprüche, dadurch gekennzeichnet, dass Mittel für eine Phasenverschiebung der Leseperiode relativ der Schreibperiode durch eine selektive Anzahl Taktpulse vorhanden sind.
  10. Speicherstruktur nach Anspruch 9, dadurch gekennzeichnet, dass die Mittel für die Phasenverschiebung einen einstellbaren Relaisschaltkreis mit einer der gewünschten Phasenverzögerung einstellbaren Verzögerung umfasst.
  11. Speicherstruktur nach einem der vorgenannten Ansprüche, dadurch gekennzeichnet, dass die in den einzelnen Speicherblöcken gespeicherte Information parallel zu jedem ihrer Verarbeitungsvorgänge gelesen werden kann.
  12. Speicherstruktur nach Anspruch 11, dadurch gekennzeichnet, dass die Information im Speicherblock nach der Verarbeitung neu gespeichert werden kann.
  13. Speicherstruktur nach Anspruch 11 oder 12, dadurch gekennzeichnet, dass die verarbeitete Information an eine Ergebniseeinheit übertragen werden kann, welche die verarbeitete Information von den Verarbeitungsvorgängen der Speicherblöcke zu einem Ergebnis zusammenstellt.
DE69630388T 1995-06-09 1996-06-05 Speicherstruktur Expired - Lifetime DE69630388T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9502113 1995-06-09
SE9502113A SE514348C2 (sv) 1995-06-09 1995-06-09 Minnesstruktur anpassad för lagring och hämtning av vektorer
PCT/SE1996/000748 WO1996042055A1 (en) 1995-06-09 1996-06-05 Memory structure

Publications (2)

Publication Number Publication Date
DE69630388D1 DE69630388D1 (de) 2003-11-20
DE69630388T2 true DE69630388T2 (de) 2004-08-19

Family

ID=20398571

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69630388T Expired - Lifetime DE69630388T2 (de) 1995-06-09 1996-06-05 Speicherstruktur

Country Status (8)

Country Link
US (1) US6425064B2 (de)
EP (1) EP0839354B1 (de)
JP (2) JP4036270B2 (de)
AT (1) ATE252250T1 (de)
DE (1) DE69630388T2 (de)
ES (1) ES2210371T3 (de)
SE (1) SE514348C2 (de)
WO (1) WO1996042055A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404032B2 (en) * 2000-01-05 2008-07-22 Rambus Inc. Configurable width buffered module having switch elements
US7356639B2 (en) * 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
US7010642B2 (en) * 2000-01-05 2006-03-07 Rambus Inc. System featuring a controller device and a memory module that includes an integrated circuit buffer device and a plurality of integrated circuit memory devices
US7363422B2 (en) * 2000-01-05 2008-04-22 Rambus Inc. Configurable width buffered module
US7266634B2 (en) 2000-01-05 2007-09-04 Rambus Inc. Configurable width buffered module having flyby elements
US6502161B1 (en) 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US20050010737A1 (en) * 2000-01-05 2005-01-13 Fred Ware Configurable width buffered module having splitter elements
EP1311945A1 (de) * 2000-08-22 2003-05-21 Jean-Paul Theis Konfigurierbare registerdateimit unterstützung von schieberegistern mit mehreren bereichen
US7107399B2 (en) * 2001-05-11 2006-09-12 International Business Machines Corporation Scalable memory
US7110400B2 (en) * 2002-04-10 2006-09-19 Integrated Device Technology, Inc. Random access memory architecture and serial interface with continuous packet handling capability
US7339943B1 (en) * 2002-05-10 2008-03-04 Altera Corporation Apparatus and method for queuing flow management between input, intermediate and output queues
US6879526B2 (en) * 2002-10-31 2005-04-12 Ring Technology Enterprises Llc Methods and apparatus for improved memory access
DE102004038212A1 (de) * 2004-08-05 2006-03-16 Robert Bosch Gmbh FlexRay-Kommunikationsbaustein
DE102004038213A1 (de) * 2004-08-05 2006-03-16 Robert Bosch Gmbh Verfahren und Vorrichtung zum Zugriff auf Daten eines Botschaftsspeichers eines Kommunikationsbausteins
KR101257848B1 (ko) * 2005-07-13 2013-04-24 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
US11328764B2 (en) 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7464225B2 (en) * 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
KR101611464B1 (ko) * 2008-10-10 2016-04-11 스펜션 엘엘씨 데이터 패턴 분석 방법 및 분석 시스템
US8818802B2 (en) * 2008-10-10 2014-08-26 Spansion Llc Real-time data pattern analysis system and method of operation thereof
JP5653856B2 (ja) * 2011-07-21 2015-01-14 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4621339A (en) * 1983-06-13 1986-11-04 Duke University SIMD machine using cube connected cycles network architecture for vector processing
US4747070A (en) 1984-01-09 1988-05-24 Wang Laboratories, Inc. Reconfigurable memory system
JPS60262280A (ja) * 1984-06-07 1985-12-25 Toshiba Corp メモリモジユ−ル
US4858107A (en) * 1985-03-11 1989-08-15 General Electric Company Computer device display system using conditionally asynchronous memory accessing by video display controller
JPS63225837A (ja) * 1987-03-13 1988-09-20 Fujitsu Ltd 距離付きベクトルアクセス方式
US5602780A (en) * 1993-10-20 1997-02-11 Texas Instruments Incorporated Serial to parallel and parallel to serial architecture for a RAM based FIFO memory
US5642444A (en) * 1994-07-28 1997-06-24 Univ North Carolina Specialized image processing system architecture and method for image data arrays
JPH08235130A (ja) * 1995-02-24 1996-09-13 Sony Corp 並列プロセッサ

Also Published As

Publication number Publication date
SE9502113L (sv) 1996-12-10
DE69630388D1 (de) 2003-11-20
JP4036270B2 (ja) 2008-01-23
US20010014930A1 (en) 2001-08-16
WO1996042055A1 (en) 1996-12-27
ATE252250T1 (de) 2003-11-15
ES2210371T3 (es) 2004-07-01
JP2007335076A (ja) 2007-12-27
SE514348C2 (sv) 2001-02-12
SE9502113D0 (sv) 1995-06-09
JPH11507457A (ja) 1999-06-29
JP4659792B2 (ja) 2011-03-30
US6425064B2 (en) 2002-07-23
EP0839354A1 (de) 1998-05-06
EP0839354B1 (de) 2003-10-15

Similar Documents

Publication Publication Date Title
DE69630388T2 (de) Speicherstruktur
EP1222739B1 (de) Rekonfigurierbares gate-array
DE3724317C2 (de)
DE4019135C2 (de) Serieller Speicher auf RAM-Basis mit parallelem Voraus-Lesen und Verfahren zum Speichern von Datenelementen in eine serielle Speichervorrichtung
DE1449765C3 (de) Einrichtung zur Abfrage eines assoziativen Speichers
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE2154106A1 (de) Arbeitsspeicherwerk
DE2819571A1 (de) Datenverarbeitungsanlage mit mehreren prozessoren
DE2346525B2 (de) Virtuelle Speichereinrichtung
EP1329816A2 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE1774052B1 (de) Rechner
DE2310631A1 (de) Speicherhierarchie fuer ein datenverarbeitungssystem
DE112005003222T5 (de) Dynamische Allokation eines Puffers auf mehrere Klienten bei einem Prozessor mit Threads
DE102005005073A1 (de) Rekonfigurierbare Architektur zur parallelen Berechnung beliebiger Algorithmen
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE2221442A1 (de) Assoziativspeicher
DE3343348A1 (de) Anordnung zur datenuebertragung zwischen mehreren prozessoren und einem speicher
DE2054941C2 (de) Anordnung zur Auswahl von Datensätzen
DE3048414A1 (de) "schaltungsanordnung fuer eine datenverarbeitungsanlage"
DE1774211C3 (de) Datenspeicheranordnung für ein Datenverarbeitungssystem
DE2459476C3 (de)
DE10105627B4 (de) Mehrfachanschlussspeichereinrichtung, Verfahren und System zum Betrieb einer Mehrfachanschlussspeichereinrichtung
EP1038235B1 (de) Vorrichtung zum hierarchischen verbinden einer mehrzahl von funktionseinheiten in einem prozessor
DE1524006B2 (de) Vorrichtung zum erhoehen der informationsuebergaberate eines speichers
DE2404887A1 (de) Kanal fuer den informationsaustausch zwischen einem rechner und schnellen peripheren einheiten

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: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL), STOCKHOLM,