DE10116639A1 - Schreib/Lese-Abgleichschema zur Portverringerung in Mehrfachport-SRAM-Zellen - Google Patents

Schreib/Lese-Abgleichschema zur Portverringerung in Mehrfachport-SRAM-Zellen

Info

Publication number
DE10116639A1
DE10116639A1 DE10116639A DE10116639A DE10116639A1 DE 10116639 A1 DE10116639 A1 DE 10116639A1 DE 10116639 A DE10116639 A DE 10116639A DE 10116639 A DE10116639 A DE 10116639A DE 10116639 A1 DE10116639 A1 DE 10116639A1
Authority
DE
Germany
Prior art keywords
matrix
write
read
ports
port
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.)
Granted
Application number
DE10116639A
Other languages
English (en)
Other versions
DE10116639B4 (de
Inventor
Jens Leenstra
Juergen Pille
Rolf Sautter
Dieter Wendel
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE10116639A1 publication Critical patent/DE10116639A1/de
Application granted granted Critical
Publication of DE10116639B4 publication Critical patent/DE10116639B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Static Random-Access Memory (AREA)

Abstract

Die vorliegende Erfindung betrifft Speichervorrichtungen in Rechnersystemen und insbesondere betrifft sie ein verbessertes Verfahren und System zum wirksamen Betreiben von Pufferspeichern. Eine beträchtliche Menge Speicherplatz lässt sich gemäß der vorliegenden Erfindung einsparen durch Reduzieren der Anzahl der Eingangs-Ports und der Anzahl der Ausgangs-Ports auf die Anzahl n von gleichzeitig beabsichtigten Matrixzugriffen. Diese bemerkenswerte Reduktion von Ports und damit außerordentliche zugeordnete Bereichseinsparung kann erzielt werden, wenn bestimmte Kenntnisse über die Matrixanwendung ausgewertet werden: Die Matrixzugriffe müssen ausgeführt werden mit gleichzeitigen Zugriffen von höchstens k besonderen Gruppen. Eine Gruppe ist definiert durch eine Vielzahl Matrixzugriffe, die höchstens einen Zugriff auf einen Port zur gleichen Zeit machen. Dann, zum Lesen werden die Leseergebnisse entsprechend einem einfachen Umverdrahtungsschema auf die entsprechenden Leseanforderer ausgerichtet, während zum Schreiben die Zugriffe vor jedem Matrixzugriff gemäß dem gleichen oder einem ähnlichen Schema ausgerichtet werden.

Description

1. DER ERFINDUNG ZUGRUNDELIEGENDER ALLGEMEINER STAND DER TECHNIK 1.1 BEREICH DER ERFINDUNG
Die vorliegende Erfindung betrifft eine Verbesserung von Speichervorrichtungen in Rechnersystemen, und im besonderen betrifft sie ein verbessertes Verfahren und System zum wirksamen Zugreifen auf Mehrfachport-Zellmatrixschaltungen.
1.2. BESCHREIBUNG UND NACHTEILE DES STANDES DER TECHNIK
In der modernen Rechnerprozessorarchitekturentwicklung läuft ein immer größerer Anteil der Prozessorarbeit parallel ab. Bei der Parallelverarbeitung muss eine immer größere Anzahl verarbeitender Teileinheiten zugelassen werden und auf ein und denselben Speicherort Zugriff haben, um möglichst schnell zu rechnen. Daher besteht die Forderung, dass ein Speicherort einen mehrfachen Schreib/Lese-Zugriff zulässt.
Ein Beispiel dafür ist die Verarbeitung außerhalb der Reihenfolge (out-of-order processing). Das parallele Schreiben von Daten in Matrizen solcher Speicherstellen aus mehrfachen Quellen, bzw. das Lesen von Daten aus Matrizen parallel zu mehrfachen Zielorten erfordert dann Mehrfachport-Zellen.
Der Bereich und die Leistung einer solchen Matrix werden in der Hauptsache bestimmt durch die Anzahl der Ports je Zelle und nicht so sehr von der Größe der abzuspeichernden Daten. Genauer gesagt, der Platzverbrauch einer solche Matrix ist in etwa proportional zum Quadrat der Anzahl der implementierten Ports.
Da nun eine Speicherzelle m Leseports benötigt, um gleichzeitig von einer Anzahl m unterschiedlicher Leseziele lesbar zu sein, und sie eine Anzahl n Schreibports für n Schreibquellen zum Schreiben in die Zelle benötigt, und jeder Port ein Paar, bestehend aus einer senkrecht aufeinanderstehenden entsprechenden Datenleitung und einer Anwahlleitung benötigt, steigt der Flächenbedarf mit zunehmendem m oder n merklich an. Wenn z. B. in einem Fall m = n = 1 mit zwei Ports eine gegebene Matrix einen Flächenbedarf X aufweist, und die Matrix jetzt durch eine Mehrfachzugriffsmatrix von m = n = 4, 8 Ports, ersetzt werden soll, ist der sich ergebende Flächenbedarf etwa (8 × 8)/(2 × 2) = 16 mal so hoch, d.i. 16X. Somit führt die zunehmende Parallelisierung zu einen großen zusätzlichen Flächenbedarf auf einem Prozessorchip.
Obwohl die vorliegende Erfindung einen breiten Anwendungsbereich hat, soll sie hier, weil das Verbessern oder Optimieren der Speicherstrategien einen sehr allgemeinen Zweck in der Computertechnologie verfolgt, mit der Technologie auf dem Stand der Technik in einem bestimmten Anwendungsbereich beschrieben und diskutiert werden, nämlich im Kontext der Anwendung eines sogenannten Befehlsfensterpuffer, nachstehend abgekürzt als IWB (Instruction Windows Buffer) bezeichnet, der üblicherweise in den modernsten Rechnersystemen vorkommt, um eine Parallelprogrammverarbeitung für Befehle durch eine Vielzahl Verarbeitungseinheiten zu ermöglichen. Solche Prozessoren werden hier als außerhalb der Reihenfolge arbeitende Prozessoren (out-of-order processor) bezeichnet.
In vielen modernen außerhalb der Reihenfolge arbeitenden Prozessoren wird ein solcher Puffer benutzt, um alle Befehle und/oder Registerinhalte aufzunehmen, bevor die berechneten Ergebnisse festgeschrieben und aus dem Puffer entfernt werden können. Wenn Ergebnisse spekulativ über das Ergebnis eines Zweigbefehls hinaus berechnet werden, können sie verworfen werden, sobald die Zweigvorhersage falsch wird, ganz einfach durch Löschen dieser Eingänge aus dem Puffer und Überschreiben derselben mit neuen, richtigen Befehlen. Das ist eine Voraussetzung für die Verarbeitung außerhalb der Reihenfolge. Ein Hauptparameter, der die Leistung des Prozessors beeinflusst, ist die Puffergröße: Ein großer Puffer kann viel mehr Befehle und Ergebnisse aufnehmen und ermöglicht damit mehr Verarbeitungen außerhalb der Reihenfolge. Ein Aufgabe der Konstruktion ist es daher, einen großen Puffer vorzusehen. Das steht jedoch in direktem Widerspruch zu anderen Konstruktionserfordernissen wie Zykluszeit, Puffergröße, usw. Wenn z. B. der Puffer zu groß dimensioniert wird, dann verringert der Aufwand der Verwaltung einer solchen großen Vielzahl von Speicherstellen die Leistung dieses Puffers. Ferner, weil ein größerer Puffer eine verlängerte Signallaufzeit voraussetzt, verlängert sich auch die Signalverzögerung. Kurz, jede verbesserte Speichermethode muss einen guten Kompromiss zwischen den Parametern Puffergröße, Speicherverwaltung und damit Speicherzugriffsgeschwindigkeit finden.
Die vorliegende Erfindung betrifft in erster Linie die Puffergröße und die zugeordnete Signallaufzeitverzögerung.
Ein Befehlsfensterpuffer auf dem Stand der Technik, geoffenbart in US-Pat.-Nr. 5,923,900, "Circular Buffer With N Sequential Real And Virtual Entry Positions For Selectively Inhibiting N Adjacent Entry Positions Including the Virtual Entry Position" wird gemäß den folgenden Schreib/Lese-Schemata betrieben:
Unter Bezugnahme auf Fig. 1 (Stand der Technik) wird zum Schreiben eines Befehlspakets, wie im oberen Teil der Figur gezeigt ist, zum Beispiel ein Paket von vier ungelösten Befehlen uip(0. . .3) in eine Matrix in einem Zyklus während des Abfertigungsprozesses eine Zelle mit so vielen Schreibports wie die maximale Paketgröße, d.i. im vorliegenden Fall eine Anzahl von k1 = 4, benötigt.
Ein Schreibdecodierblock 22 übersetzt die Schreibadresse in(0. . .5) über die Steuerleitung 16, in vier Eingangszeiger wsel0. . .wsel3 (0. . .3), unter Auswählen eines Blocks von vier zu schreibenden Eingängen, nämlich die Matrixeingänge i, i+1, i+2, i+3. Das wird in Fig. 1 schematisch dargestellt. Der erste Befehl uip0 wird durch Aktivieren von wsel0 am Eingabeport di0 in Zelle (i) geschrieben, der nächste Befehl uip1 wird durch Aktivieren von wsel1 am Eingabeport di1 in Zelle (i+1) geschrieben und so weiter, siehe volle Kreise.
Dieses Schema garantiert, dass die Daten nacheinander in die Matrix geschrieben werden. Da Pufferspeicher im allgemeinen häufig für einen automatischen Zeilenumbruch benutzt werden, wird etwas besondere Vorsicht benötigt, um auch diesen Fall abzudecken.
Der Zeilenumbruch wird auch vom Schreib-Decodierer 22 gehandhabt. Wenn z. B. der Fensterpuffer eine Gesamtgröße von 64 Eingängen aufweist und auf einen Block mit vier aufeinanderfolgenden Eingängen mit Beginn bei 62 geschrieben werden muss, dann zeigen wsel(0. . .3) auf die Eingänge (62, 63, 0, 1).
Der Lesefall ist ähnlich, wie aus Fig. 2 hervorgeht, die die Ausgabefilter if0 bis if3 auf dem Stand der Technik zeigt, die eine Matrix von 4 Leseport-Zellen mal Lesewahlleitungen rsel0(0. . .63), rsel1(0. . .63), rsel2(0. . .63), rsel3(0. . .63) steuert. Die Daten werden in mehrere Datenausgangsports gelesen, d.i. do(0. . .3), die nicht ausdrücklich dargestellt sind. Es sind so viele Leseports nötig als Ausführungseinheiten existieren, d.i. Befehlsausführungseinheiten (ieu - instruction execution units), ieu(0. . .3), um den vollen Parallelismus zu erreichen und Daten in jedem Zyklus für den Ausgabeprozess für alle Ausführungseinheiten vorzusehen. Ein Leitwegnetz kann jeden Ausgangsport des Puffers mit jeder Ausführungseinheit verbinden. Eine Entscheidungslogik ist vorgesehen zur Verbindung eines bestimmten Ports mit der gewünschten Entscheidungseinheit.
Insbesondere werden die für die Ausführung bereiten Befehle identifiziert durch gültige Bits, gezeichnet in der oberen Linie in Fig. 2, die zu den vier unterschiedlichen Ausgangsfiltern if(0. . .3) geführt werden. if(0) wählt den ältesten aller Befehle 0. . .63, der bereit zur Ausführung ist, aktiviert rsel0, und sendet damit die Daten an die Ausführungseinheiten. Filter if1 ignoriert den Eingang, erfasst von if0, und wählt den zweitältesten, aktiviert rsel1 und sendet ihn zu den Ausführungseinheiten, usw.
Da jeder der 64 Gesamteingänge des Puffers der erste, zweite, dritte oder vierte gewählte sein kann, benötigt jeder Eingang und damit jede Zelle 4 Leseports. Das führt zu einem extrem hohen Platzbedarf und einer zugeordneten, entsprechend hohen Signallaufzeitverzögerung.
1.3 AUFGABEN DER ERFINDUNG
Es ist also eine Aufgabe der vorliegenden Erfindung, den Platzbedarf zu verkleinern und somit die Effizienz der Speicherraumnutzung zu erhöhen.
2. ZUSAMMENFASSUNG UND VORTEIL DER ERFINDUNG
Diese Aufgabe der Erfindung wird gelöst durch die Merkmale, die in den beiliegenden unabhängigen Ansprüchen angeführt sind. Weitere vorteilhafte Anordnungen und Ausführungsformen der Erfindung sind in den entsprechenden Unteransprüchen ausgeführt.
Eine beträchtliche Menge Speicherraum kann gemäß der vorliegenden Erfindung eingespart werden durch Reduzieren der Anzahl der Schreibports auf die Zahl k1 der gleichzeitig beabsichtigten Schreibzugriffe, und die Anzahl der Ausgangsports auf die Zahl k2 der gleichzeitig beabsichtigten Lesezugriffe auf die Matrix. Diese bemerkenswerte Reduzierung der Ports und somit eine außerordentliche Raumersparnis kann erzielt werden, wenn man von der beabsichtigten "natürlichen" Matrix-Operation erwarten kann, dass sie in besonderen Gruppen mit gleichzeitigem Zugriff ausgeführt wird. Natürlich können k1 und k2 für eine erfindungsgemäße Implementierung der Pufferzugriffsschaltung unterschiedlich sein, aber auch gleich.
Die vorliegende Erfindung ist somit auf nützlich Weise anwendbar für Hardware-Schaltungen, die Mehrfachportmatrizen und Mehrfachportregister enthalten.
Die Zugriffe auf die Matrix müssen gleichzeitig mit Zugriffen von höchstens k1 bzw. k2 besonderen Gruppen ausgeführt werden.
Eine Gruppe ist definiert durch eine Vielzahl von Matrixstellen, für die sichergestellt ist, dass gleichzeitig nur ein Lese- oder Schreibzugriff erforderlich ist. Die Zugehörigkeit zu einer Gruppe ist exklusiv, um die vorgeschlagene Speicherbereichsreduzierung zu erzielen kann ein Matrixeingang nicht zu mehreren Gruppen gehören.
Zum Beispiel kann in einem n = 64 Eingänge enthaltenden Puffer, bezeichnet von Nr. 0 bis Nr. 63, eine erste Gruppe die Eingänge 0, 4, 8, . . .60 enthalten, die zweite Gruppe kann die Eingänge 1, 5, . . . 61 beinhalten, die dritte Gruppe die Eingänge 2, 6, . . . 62, und die vierte Gruppe die Eingänge 3, 7, . . . 63 enthalten.
Jetzt, in Kenntnis des Umstands, dass beim Betrieb des Puffers nur "Bündel" von Eingängen zu direkt aufeinanderfolgenden Zeitpunkten gleichzeitig geschrieben oder gelesen werden, wie z. B. zum Zeitpunkt t = 0 für ein mehrfaches Schreiben auf die Eingänge 23, 24, 25 und 26, oder bei t = 1 für ein mehrfaches Lesen auf der Eingänge 44, 45, 46, 47 nur ein Schreibport und ein Leseport per Eingangsgruppe erforderlich ist, wie oben erklärt wurde, weil gemäß der vorliegenden Erfindung für das Leseschema die Leseergebnisse gemäß einem einfachen Neuverdrahtungsschema auf die entsprechenden Leseanforderer abgeglichen werden, während für das Schreibschema die zu schreibenden Daten vorher auf den Matrixzugriff gemäß dem gleichen oder einem ähnlichen Schema abgeglichen werden.
Somit beruht die vorliegende Erfindung auf dem Benutzen der Kenntnis, dass in vielen Fällen solche Gruppen mit einer Art Operationsanalyse identifiziert werden können, oder diese Gruppen von sich aus vorhanden sind, oder, wenn sie nicht vorhanden sind, durch zusätzliche Logik wahlweise eine Umstrukturierung in solche Gruppen geschaffen werden kann, auch wenn man einige der Nachteile in Kauf nimmt, die von dieser zusätzlichen Logik bewirkt worden sein können.
Die erfindungsgemäße Abgleicheinheit umfasst grundlegend einen Steuersignaleingang, eine Anzahl k Eingangsleitungen und eine entsprechende Anzahl k Ausgangsleitungen. Im Inneren ist eine Logik implementiert, die einige der k Eingangsleitungen auf einige der k Ausgangsleitungen umschaltet, gesteuert vom entsprechenden Steuersignal. Es besteht jedoch die Einschränkung, dass sobald eine Eingangsleitung einer bestimmten Ausgangsleitung zugeordnet wird, folglich auch der Rest der Eingangs/Ausgangsleitungszuordnungen bestimmt ist. Somit bestimmt die Auswahl einer Eingangs/Ausgangszuordnung aller übrigen Zuordnungen, die zu dem gewünschten Abgleich führt. Somit schlägt die vorliegende Erfindung ein neues Schema vor zum Minimieren der Anzahl der Ports per Zelle ohne Verlieren der Flexibilität zum parallelen Schreiben und Lesen in der Anordnung auf verschiedene, d.i. k1/k2 Adressen.
In ihrem allgemeinen Umfang mit k unabhängigen Gruppen und n unterschiedlichen, definierten Anforderern, hält die vorliegende Erfindung eine Anzahl n Ports für Matrixmakros frei, aber sie reduziert die erforderliche Anzahl Ports von n auf die kleinste Ganzzahl, die größer/gleich n/k Ports je Zelle in der Anordnung ist.
3. KURZE BESCHREIBUNG DER ZEICHNUNGEN
Die vorliegende Erfindung wird dann beispielhaft illustriert und ist nicht eingeschränkt durch die Form der Figuren in den begleitenden Zeichnungen, in denen
Fig. 1 ein schematisches Blockschaltbild ist, das ein Schreibschema auf dem Stand der Technik unter Verwendung von 4-Schreibport-Zellen zeigt;
Fig. 2 ist eine Prinzipskizze, die eine Gruppe von Ausgabefiltern auf dem Stand der Technik zeigt, die 4- Leseport-Zellen steuern.
Fig. 3 ist eine schematische Blockschaltung, die eine vertikale "Bit-Spalte" eines erfindungsgemäßen 4fach- Schreibschemas eines 4-Schreibport-Matrixblocks unter Verwendung einer 1-Schreibport-Zellenmatrix zeigt.
Fig. 4 ist eine schematische Blockschaltung gemäß Fig. 3, die den Fall des Zeilenumbruchs abdeckt.
Fig. 5 ist eine schematische Blockschaltung, die eine vertikale "Bit-Spalte" eines erfindungsgemäßen Leseschemas eines 4-Leseport-Matrixblocks unter Verwendung einer 1- Leseport-Zellenmatrix zeigt.
Fig. 6 ist eine Prinzipskizze, die eine erfindungsgemäße Ausgangsfilteranordnung zeigt, die einen 4-Leseport-Matrixblock unter Verwendung einer 1-Leseport-Zellenmatrix gemäß Fig. 5 steuert.
4. BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
Unter allgemeiner Bezugnahme auf die Figuren und unter besonderem Hinweis hier auf die Fig. 3 bis 6 wird das erfindungsgemäße Verfahren und eine bevorzugte Ausführungsform einer erfindungsgemäßen n1 = 4-Schreibport und n2 = 4-Leseport- Matrixspeichervorrichtung in näheren Einzelheiten beschrieben.
Insbesondere wird ein Beispiel gegeben, in dem der allgemeine Fall von n-fachen Mehrfachzugriffsmöglichkeiten für den Fall n1 = n2 = n = 4 beispielhaft dargestellt ist, und mit der betrieblichen Einschränkung, dass Befehle bearbeitet werden, deren Matrixzugriffe in vier einschließlich-ODER-verknüpfte Gruppen kombiniert werden können, die zusammen die Gesamtzahl dieser 64 Eingänge ergeben. Es gibt k1 = 4 Gruppen für den Schreibzugriff und k2 = 4 Gruppen für den Lesezugriff.
Wenn k1 = k2 dann wird k, oder wenn n1 = n2 dann wird in der vorliegenden Beschreibung n benutzt.
Insbesondere wird in der in Fig. 3 und 4 gezeigten vorliegenden Ausführungsform eine Vielzahl von 64 Eingängen einschließlich Puffer teilweise dargestellt, d.i. das große Rechteck mit dem Bezugszeichen 12 stellt eine Spalte von 64 Bit Speicherzellen dar, wobei jede Zelle einem entsprechenden der 64 Eingänge zugeordnet ist. Die Anzahl der Bits je Eingang wird hier nicht diskutiert. Die Eingänge sind von Nr. 0 bis Nr. 63 gekennzeichnet.
Wie bereits oben erwähnt werden jetzt vier Eingangsgruppen definiert. Eine erste Eingangsgruppe umfasst die Eingänge 0, 4, 8, . . . 60, die zweite Eingangsgruppe umfasst die Eingänge 1, 5, . . . 61, die dritte Eingangsgruppe umfasst die Eingänge 2, 6, . . . 62 und die vierte Eingangsgruppe umfasst die Eingänge 3, 7, . . . 63. In der Zeichnung sind vier sich vertikal erstreckende Linien di0. . .di3 angegeben, die Daten repräsentieren, die in diese Bit-Spalte 12 an unterschiedlichen Orten zur gleichen Zeit geschrieben werden können. Zum Beispiel bedeutet der Vollpunkt wsel0/di0, der auf das Eingangsbit i trifft, dass dieses Bit in einem bestimmten Matrixzugriff geschrieben werden kann. Die anderen drei diagonal nach rechts unten gezeichneten Vollpunkte stellen dar und beziehen sich auf die Eingänge i+1, i+2 und i+3 und sind Bitorte der gleichen Bitspalte, gehören aber zu den Eingängen, die direkt auf den Eingang i folgen. Diese Bit-Vollpunkte können gleichzeitig während eines 4fach-Schreibzugriffs geschrieben werden.
Der Teil der Bit-Spalte zwischen dem Aus-Zeiger 11 und dem Eingang i stellt den Bereich der Bit-Spalte dar, in dem Daten gespeichert werden, die noch nicht zweckgebunden sind.
Zunächst, und unter gleichzeitiger Bezugnahme auf Fig. 3 und Fig. 4, wird das Schreibschema nachstehend in näheren Einzelheiten erklärt.
Um ein Befehlspaket in einem Zyklus während eines Sendevorgangs in die Matrix zu schreiben, übersetzt ein Schreibdecodierblock 22 die Schreibadresse, die von einem IN-Zeiger über die Leitung 16 in einen Eingangszeiger wsel(0. . .3) gegeben wird, der einen Block von 4 Eingängen anwählt, die vom Vierfach-Schreibzugriff geschrieben werden sollen.
In dem hier gezeigten bestimmten Fall definiert der Wert des IN-Zeigers, in(0. . .5), für einen Befehl i den ersten Ort für die Speicherzelle, auf die von allen 4 beabsichtigten Schreibzugriffen zugegriffen werden soll. Wie in der Zeichnung gezeigt wird, wählt der Schreibdecodierblock 22 über die Anwahlleitungen wsel0, . . . wsel3 vier aufeinanderfolgende Speicherorte an, die die Bezugszeichen 18a, . . . 18d haben.
Ferner, und gemäß einem bevorzugten Aspekt der vorliegenden Erfindung ist der Schreibdecodierblock 22 über eine Steuerleitung 23 operativ mit einer Abgleicheinheit 20 verbunden, die vier unterschiedliche Schaltschemata 20a, . . . 20d enthält. Jedes dieser Schaltschemata verbindet die vier Dateneingangsleitungen 14a, . . . 14d mit einem entsprechenden von vier Dateneingangsports, d.i. Schreibports, bezeichnet als di0, di1, di2 und di3. Somit kann auf jede Spalte der Matrix durch eine entsprechende Dateneingangsleitung zugegriffen werden.
Wie bereits oben erwähnt, sind bestimmte Gruppen definiert:
Gruppe di0 stellt Eingänge 0, 4, 8, 12, . . . 60,
Gruppe di1 stellt Eingänge 1, 5, 9, 13, . . . 61,
Gruppe di2 stellt Eingänge 2, 6, 10, 14, . . . 62, und
Gruppe di3 stellt Eingänge 3, 7, 11, 15, . . . 63
dar.
Als nächstes wird in dem dargestellten Fall eines einer Vielzahl unterschiedlicher Schaltschemata beschrieben, in dem wsel0 mit di0 verbunden ist. Das Schaltschema 20a wird in der Zeichnung explizit dargestellt. Es zeigt, dass der Eingang 14a mit einer beliebigen Dateneingangsleitung di(0. . .3) verbunden werden kann. Das gleiche gilt für die Eingänge 14b, 14c und 14d über die Schaltschemata 20b, 20c, 20d. In dem in Fig. 3 gezeigten Fall ist 14a über das Schaltschema 20a mit di0 verbunden. Das Schaltschema 20b verbindet nur di1 mit der Dateneingangsleitung 14b. Das Schaltschema 20c verbindet di2 mit Leitung 14c, und das Schaltschema 20d verbindet die Dateneingangsleitung di3 mit 14d. Alle anderen Schalter stehen offen. Die einzige Zuordnung zwischen wsel0 und di0 definiert daher alle übrigen Verbindungen zwischen Schreibanwahl und Dateneingangsleitungen nach einer bestimmten Regel, in dem Sinne, dass aufeinanderfolgende wsel-Leitungen mit aufeinanderfolgenden Dateneingangsleitungen verbunden werden.
Die übrigen Schaltschemata ergeben sich zyklisch fortschreitend ab dem ersten gefunden geschlossenen Schalter.
Natürlich können mit den erfindungsgemäßen Konzepten auch andere Fälle abgedeckt werden, in denen jede beliebige sonstige Regel in der Abgleicheinheit implementiert ist.
So wird der erste Befehl uip0 in die Speicherzelle i über wsel0 - 18a - geschrieben; der nächste Befehl uip1 wird in die Speicherzelle i+1 über wsel1 - 18b - geschrieben, und die Befehle uip2 und uip3 werden entsprechend auf ähnliche Weise in die Speicherzellen i+2 bzw. i+3 geschrieben. Somit garantiert das vorgeschlagene Schema, dass die Daten nacheinander in die Matrix geschrieben werden.
Wenn zum Beispiel der Speicherort i = 17 durch die Aktivierung der Wortanwahl-Leitung 18a adressiert wird, muss die Abgleicheinheit di1 mit 14a, di2 mit 14b, di3 mit 14c und di0 mit 14d verbinden, weil der Speicherzelleneingang 17 der Matrix über den Eingangsport di1 geschrieben wird, der Speicherzelleneingang 18 über den Eingangsport di2 geschrieben wird, der Speicherzelleneingang 19 über den Eingangsport di3 geschrieben wird, und der Speicherzelleneingang 20 über den Eingangsport di0 geschrieben wird. Damit können vier Eingänge der Matrix in einem einzigen Zyklus geschrieben werden.
Wie aus dem geoffenbarten einfachen Schema hervorgeht, wird die grundlegende erfinderische Idee genutzt durch Anwenden der aufeinanderfolgenden Schreibzugriffe und durch Verschieben der Parallelismen verschiedener Ports innerhalb der Zelle in die externe Abgleicheinheit 20. Das kann allgemein erreicht werden durch Definieren einer Anzahl von vier einschließlich-ODER-verknüpften Teilmengen von Eingängen unter der Vorgabe, das die Gesamtzahl der Teilmengeneingänge gleich der Gesamtmenge der Eingänge ist.
Somit behält die Matrix logisch ihre vier Eingabeports, aber die Zellen werden alternativ mit ihnen verbunden. Das reduziert die Anzahl der Schreibports für die Zelle auf einen, der benutzt werden kann, wie immer es der augenblickliche Schreibprozess erfordert.
Der Zeilenumbruchfall wird in Fig. 4 gezeigt. Die selben Bezugszeichen bezeichnen jeweils die selben Vorrichtungen bzw. Elemente. Für die allgemeine Beschreibung wird auf die obige Beschreibung in Fig. 3 verwiesen.
Im hier gezeigten Fall jedoch läuft der Schreibvorgang in einen Block in der Nähe des Endes der Matrix an, wie z. B. bei einer Zelle des Eingangs Nr. 62, wie in Fig. 4 dargestellt ist, und die Zellen 62, 63, 0, 1 werden gewählt. Die Abgleicheinheit 20 ihrerseits verbindet uip(0. . .3) mit di(2, 3, 0, 1), so dass wieder die Daten der Reihe nach in die Matrix geschrieben werden.
Das Leseschema wird jetzt unter Bezugnahme auf die Fig. 5 und 6 in näheren Einzelheiten erklärt.
Beim Schreiben in die Matrix, wie oben beschrieben, werden die einzuschreibenden Daten vor dem Zugriff auf die Matrix abgeglichen, das ist jedoch beim Leseschema anders: Beim Lesen aus der Matrix werden die Leseergebnisse gemäß den entsprechenden Leseanforderern nach dem gleichen oder einem ähnlichen Schema abgeglichen, weil die gleiche Anzahl Bitort-Teilmengen einer gegebenen Bitspalte, wie oben beim Schreibfall beschrieben, einem entsprechenden einer Vielzahl von n Ausgabeports, hier n = 4, fest zugeordnet ist, wieder in den Ausführungsformen der Fig. 5, 6.
Somit wird eine Ausführungseinheit, ieu0, . . . ieu3, mit Daten versorgt, die von den fest bestimmten Gruppenmitgliedbits, die der gleichen Gruppenstruktur entsprechen, wie sie für den Schreibfall definiert wurden, siehe oben.
Natürlich kann im Lesefall eine andere Gruppenstruktur gewählt werden als für den Schreibfall.
Zur Ausführung bereite Befehle werden durch Gültigkeits-Bits "1" identifiziert, die in einer Matrix 50 gezeigt werden. Diese Gültigkeits-Bits werden dann zu einer Ausgangsfilter-Abgleichschaltung 52 gebracht. Diese Schaltung 52 wird in weiteren Einzelheiten in Fig. 6 dargestellt. Die Abgleichschaltung ist mit vier Lesewahlleitungen 54a, 54b, 54c und 54d zur Mehrfachport-Zellmatrix verbunden, von der wieder nur eine einzige Bit-Spalte 12 gezeigt wird. Die in dieser Spalte gespeicherten Bit-Zellen können mit einer spezifischen von vier Datenausgangsleitungen, (do) 56a, 56b, 56c, 56d verbunden sein, die mit den Befehlsausführungseinheiten ieu 0. . .3, entsprechend fest verbunden sind.
Die Zellen sind abwechselnd nur über einen Leseport verbunden, Zelle (0, 4, 8, . . . 60) mit do(0), Zelle (1, 5, 9, . . . 61) mit do(1), Zelle (2, 6, 10, . . . 62) mit do(2), und Zelle (3, 7, 11, . . . 63) mit do(3), wie in Fig. 5 dargestellt.
Unter besonderer Bezugnahme auf Fig. 6 werden zur Ausführung bereite Befehle mit gültigen Bits im aktiven Fenster geflaggt. Die Ausgabe wird durch Prioritätsausgabefilter gesteuert (if(0), if(1), if(2) if(3)), bezeichnet mit den Bezugszeichen 60a, 60b, 60c, 60d, die das älteste, im aktiven Fenster bereite Zeichen anwählen aufgrund der Bewertung der entsprechenden gültigen Bitgruppen vd(0, 4, . . . 60), . . . (3, 7, . . . 63) wie im oberen Teil der Fig. 6 gezeigt wird. Somit werden die rsel-Signale vom Bewerten nur einer 16 Glieder enthaltenden Bit-Gruppe abgezogen, wie oben definiert. Das wird gezeigt für jedes der vier rsel Signale im Bodenteil der Fig. 6.
Wie der Fachmann erkennt, werden so viele Filter benötigt wie Ausführungseinheiten existieren. Jeder Filter ist einer Ausführungseinheit zugeordnet, ieu(i) - gesteuert durch if(i) - wird mit dem Datenausgangsport do(i) verbunden, aber nur eine Teilgruppe Zellen werden an jeden Port angeschlossen, wie bereits oben erwähnt wurde. Insbesondere sucht der Filter if0 die gültigen Bits valid_bit (0, 4, 8, . . ., 60), if1 sucht nach valid_bit (1, 5, 9, . . . 61), und so weiter.
Es muss darauf hingewiesen werden, dass das Vorkommen von einschließlich-ODER-verknüpften Teilmengen den Vorteil hat, dass keine Steuerung zwischen den Filtern 60a-d benötigt wird, weil sie jeder jeweils auf einen gesonderten Adressenraum arbeiten. Ferner sind die Filter einfacher aufgrund der 16 anstatt 64 Eingänge. Für den Fall, dass mehrere Befehle nötig sind, die mit einem Daten-AUS-Port, z. B. do0, verbunden sind, aber keiner von ihnen mit do1, do2 und do3 verbunden ist, kann nur ein Befehl ausgeführt werden. Eine Leistungsanalyse zeigte, dass das eine sehr geringe Auswirkung auf die CPI-Leistung (Cycle Per Instructions - Zyklen je Befehl) hat. Um diesen Flaschenhals zu vermeiden können wahlweise zusätzliche Leseports benutzt werden, um Mehrfachausführungen auch von einer Teilgruppe zu ermöglichen.
Wie aus der obigen Beschreibung ersichtlich ist, schlägt die vorliegende Erfindung ein neues Schema zur Reduktion der Anzahl der Lese- und Schreibports per Zelle aus Gründen der Leistung und des Platzbedarfs vor, ohne Verlieren der Flexibilität beim parallelen Lesen und Schreiben auf mehreren Ports.
In der obigen Beschreibung wurde die Erfindung unter Bezugnahme auf spezifische beispielhafte Ausführungen beschrieben. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Änderungen gemacht werden können, ohne von Umfang und Wesensart der Erfindung abzuweichen, die in den anhängigen Ansprüchen festgelegt werden. Die Spezifikation und die Zeichnungen gelten demgemäß nur als hinweisend, ihnen kommt keine einschränkende Wirkung zu.
Insbesondere können die Multiplikationsfaktoren n, n1, n2 frei variiert werden, ohne von erfindungsgemäßen Prinzipien eingeschränkt zu sein. Ferner können das erfindungsgemäße Verfahren und Speichersystem vorteilhaft auf SRAM- Speichervorrichtungen angewandt werden.
Auch die Matrixgröße kann frei je nach Bedarf variiert werden. In größeren Matrizen kann das erfindungsgemäße Verfahren und System mehrfach parallel angewandt werden, um Lese/Schreibzugriffe auf eine Vielzahl von einschließlich-ODER-verknüpften Matrixbereichen abzudecken.

Claims (10)

1. Ein Verfahren zum effizienten Zugreifen auf eine Mehrfachport-Zellmatrixschaltung, wobei jede Zelle dieser Matrix benutzbar ist durch einen mindestens n-fachen gleichzeitigen Mehrfachzugriff,
wobei das Verfahren gekennzeichnet ist durch den Schritt
Steuern des gleichzeitigen Mehrfachzugriffs in mindestens k Gruppen, wobei eine Gruppe definiert ist durch eine Vielzahl von Matrixzugriffen, die alle auf den gleichen Zellenport gerichtet sind und während des Betriebs nie gleichzeitig angefordert werden.
2. Das Verfahren gemäß Anspruch 1, das ferner die folgenden Schritte aufweist:
Abgleichen der Zugriffe von einer Anzahl n1 Schreibanforderern auf n1 unterschiedliche Schreibports, gefolgt vom gleichzeitigen Schreiben auf diese Schreibports;
Lesen von der Matrix durch gleichzeitiges Lesen von n2 Leseports und Abgleichen des Leseergebnisses in Übereinstimmung mit den n2 Leseanforderern.
3. Das Verfahren gemäß Anspruch 1, benutzt zum Betreiben eines Befehlsfenster-Pufferspeichers zum Bearbeiten von Befehlen außerhalb der Reihenfolge.
4. Das Verfahren gemäß Anspruch 1, benutzt zum Betreiben eines Pufferspeichers, in dem der Betrieb einer Warteschlange verwaltet wird.
5. Eine Hardware-Schaltung enthaltend eine Mehrfachport-Matrix-Speichervorrichtung, die verwendbar ist durch einen n1-fachen gleichzeitigen Schreibzugriff, und einen n2-fachen gleichzeitigen Lesezugriff, wobei die Speichervorrichtung dadurch gekennzeichnet ist, dass sie enthält
eine Vielzahl von n1 Schreibports und n2 Leseports;
ein Steuermittel (22), in das über eine Steuerleitung (16) eine entsprechende Steuerinformation einspeisbar ist, die angibt, auf welche Zellen zugegriffen werden soll, und die zum Anwählen entsprechender Wortanwahlleitungen angeordnet ist;
ein Schreibabgleichmittel (20), enthaltend mindestens n1 unterschiedliche Schaltschemata, die jedes eine der entsprechenden Dateneingangsleitungen und einen entsprechenden der n1 Schreibports verbindet, und die Abgleicheinheit (20) anschließbar an und steuerbar durch das Steuermittel (22) zur richtigen Auswahl einer entsprechenden Datenleitung für jede dieser Datenleitungen ist; und
ein Leseabgleichmittel (52, 60a, 60b, 60c, 60d) mit einer Steuereingabe (52) und enthaltend mindestens n2 unterschiedliche Schaltschemata zum Auswählen von n2 unterschiedlichen Matrixeingängen in Übereinstimmung mit dem Steuereingang.
6. Die Hardware-Schaltung gemäß dem obigen Anspruch, in der n1 gleich n2 ist.
7. Die Hardware-Schaltung gemäß Anspruch 5, enthaltend eine Mehrfachportmatrix oder ein Mehrfachportregister.
8. Eine Untereinheit zur Anwendung in Mikroprozessorvorrichtungen mit mindestens einer Hardware-Schaltung in Übereinstimmung mit einem der obigen Ansprüche 5 bis 7.
9. Eine Mikroprozessorvorrichtung mit mindestens einer Untereinheit in Übereinstimmung mit dem obigen Anspruch.
10. Ein Rechnersystem mit einer Mikroprozessorvorrichtung gemäß dem obigen Anspruch.
DE10116639A 2000-04-20 2001-04-04 Schreib/Lese-Abgleichschema zur Portverringerung in Mehrfachport-SRAM-Zellen Expired - Fee Related DE10116639B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00108699 2000-04-20
EP00108699.0 2000-04-20

Publications (2)

Publication Number Publication Date
DE10116639A1 true DE10116639A1 (de) 2001-10-25
DE10116639B4 DE10116639B4 (de) 2006-01-26

Family

ID=8168535

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10116639A Expired - Fee Related DE10116639B4 (de) 2000-04-20 2001-04-04 Schreib/Lese-Abgleichschema zur Portverringerung in Mehrfachport-SRAM-Zellen

Country Status (2)

Country Link
US (1) US6785781B2 (de)
DE (1) DE10116639B4 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041768B2 (en) 2000-03-17 2011-10-18 Aol Inc. Voice instant messaging
US8132110B1 (en) 2000-05-04 2012-03-06 Aol Inc. Intelligently enabled menu choices based on online presence state in address book
US7979802B1 (en) 2000-05-04 2011-07-12 Aol Inc. Providing supplemental contact information corresponding to a referenced individual
US6912564B1 (en) 2000-05-04 2005-06-28 America Online, Inc. System for instant messaging the sender and recipients of an e-mail message
DE60144233D1 (de) 2000-07-25 2011-04-28 America Online Inc Videonachrichtenübermittlung
US7636755B2 (en) 2002-11-21 2009-12-22 Aol Llc Multiple avatar personalities
US8037150B2 (en) 2002-11-21 2011-10-11 Aol Inc. System and methods for providing multiple personas in a communications environment
US7949759B2 (en) 2003-04-02 2011-05-24 AOL, Inc. Degrees of separation for handling communications
US7945674B2 (en) 2003-04-02 2011-05-17 Aol Inc. Degrees of separation for handling communications
US20040179037A1 (en) 2003-03-03 2004-09-16 Blattner Patrick D. Using avatars to communicate context out-of-band
US7908554B1 (en) 2003-03-03 2011-03-15 Aol Inc. Modifying avatar behavior based on user action or mood
US7913176B1 (en) 2003-03-03 2011-03-22 Aol Inc. Applying access controls to communications with avatars
US8898239B2 (en) 2004-03-05 2014-11-25 Aol Inc. Passively populating a participant list with known contacts
US8595146B1 (en) 2004-03-15 2013-11-26 Aol Inc. Social networking permissions
US7730143B1 (en) 2004-12-01 2010-06-01 Aol Inc. Prohibiting mobile forwarding
US9002949B2 (en) 2004-12-01 2015-04-07 Google Inc. Automatically enabling the forwarding of instant messages
US9652809B1 (en) 2004-12-21 2017-05-16 Aol Inc. Using user profile information to determine an avatar and/or avatar characteristics
WO2007106148A2 (en) * 2006-02-24 2007-09-20 Vogel Robert B Internet guide link matching system
US20080212392A1 (en) * 2007-03-02 2008-09-04 Infineon Technologies Multiple port mugfet sram
JP5441216B2 (ja) * 2010-02-24 2014-03-12 ルネサスエレクトロニクス株式会社 半導体装置及びデータ処理システム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2500740B2 (ja) * 1993-04-06 1996-05-29 日本電気株式会社 デュアルポ―トメモリ
US5574935A (en) * 1993-12-29 1996-11-12 Intel Corporation Superscalar processor with a multi-port reorder buffer
US5481495A (en) * 1994-04-11 1996-01-02 International Business Machines Corporation Cells and read-circuits for high-performance register files
US5813037A (en) * 1995-03-30 1998-09-22 Intel Corporation Multi-port register file for a reservation station including a pair of interleaved storage cells with shared write data lines and a capacitance isolation mechanism
US5642325A (en) * 1995-09-27 1997-06-24 Philips Electronics North America Corporation Register file read/write cell
US5828623A (en) * 1996-02-23 1998-10-27 Integrated Device Technology, Inc. Parallel write logic for multi-port memory arrays
US5905725A (en) * 1996-12-16 1999-05-18 Juniper Networks High speed switching device
US5923593A (en) * 1996-12-17 1999-07-13 Monolithic Systems, Inc. Multi-port DRAM cell and memory system using same
US5923900A (en) 1997-03-10 1999-07-13 International Business Machines Corporation Circular buffer with n sequential real and virtual entry positions for selectively inhibiting n adjacent entry positions including the virtual entry positions
US5930491A (en) * 1997-06-18 1999-07-27 International Business Machines Corporation Identification of related instructions resulting from external to internal translation by use of common ID field for each group
US5856940A (en) * 1997-08-15 1999-01-05 Silicon Aquarius, Inc. Low latency DRAM cell and method therefor
US6104642A (en) * 1997-12-11 2000-08-15 Intrinsity, Inc. Method and apparatus for 1 of 4 register file design
US5991208A (en) * 1998-05-22 1999-11-23 International Business Machines Corporation Write multiplexer apparatus and method for multiple write port programmable memory
US5991224A (en) * 1998-05-22 1999-11-23 International Business Machines Corporation Global wire management apparatus and method for a multiple-port random access memory

Also Published As

Publication number Publication date
US20010034817A1 (en) 2001-10-25
US6785781B2 (en) 2004-08-31
DE10116639B4 (de) 2006-01-26

Similar Documents

Publication Publication Date Title
DE10116639B4 (de) Schreib/Lese-Abgleichschema zur Portverringerung in Mehrfachport-SRAM-Zellen
DE3011552C2 (de)
DE69733931T2 (de) Kreuzvermittlungsschalter und verfahren mit beschränktem spannungshub und blockierungsfreien vermittlungswegen
EP1222739B1 (de) Rekonfigurierbares gate-array
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
EP1329816B1 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE3934145C2 (de) Platteneinheit-Steuerungsvorrichtung und Informationsverarbeitungssystem, das dieselbe enthält
DE19740695C2 (de) Datenspeicher mit Mehrebenenhierarchie
DE3724730A1 (de) Cache-steuereinrichtung
DE2630323A1 (de) Datenspeichereinrichtung
EP0651536A2 (de) Verfahren zur Wiederherstellung einer vorgegebenen Reihenfolge für ATM-Zellen
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102005037219A1 (de) Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE4117672A1 (de) Verfahren und vorrichtung zur steuerung eines zwischen einer zentraleinheit und einem arbeitsspeicher angeordneten cache-speichers
DE69924179T2 (de) Breitbandige Speicheranordnung mit Befehlsstapel und schmaler Ein- und Ausgabe
DE10105627B4 (de) Mehrfachanschlussspeichereinrichtung, Verfahren und System zum Betrieb einer Mehrfachanschlussspeichereinrichtung
DE2842288A1 (de) Datentransferschalter mit assoziativer adressauswahl in einem virtuellen speicher
DE4019546C2 (de)
DE4200285A1 (de) Microcomputer-speicherzugriffverfahren
EP0674319B1 (de) Mehrtorige Datenspeicheranordnung und Verfahren zum Betrieb derselben
DE1449816C3 (de) Schaltungsanordnung zur Steuerung des Zugriffs zu einem Magnettrommelspeicher
DE60007010T2 (de) Gemeinsamer Speicher
DE2002369C3 (de) Datenverarbeitungsanlage mit Pufferspeicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee