DE112011105706T5 - Zeilenverschiebender verschiebbarer Speicher - Google Patents
Zeilenverschiebender verschiebbarer Speicher Download PDFInfo
- Publication number
- DE112011105706T5 DE112011105706T5 DE112011105706.7T DE112011105706T DE112011105706T5 DE 112011105706 T5 DE112011105706 T5 DE 112011105706T5 DE 112011105706 T DE112011105706 T DE 112011105706T DE 112011105706 T5 DE112011105706 T5 DE 112011105706T5
- Authority
- DE
- Germany
- Prior art keywords
- data
- memory
- column
- memory cell
- shift
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4094—Bit-line management or control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/418—Address circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/419—Read-write [R-W] circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
- G11C19/18—Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages
- G11C19/182—Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages in combination with semiconductor elements, e.g. bipolar transistors, diodes
- G11C19/188—Organisation of a multiplicity of shift registers, e.g. regeneration, timing or input-output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
- G11C19/28—Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
- G11C19/287—Organisation of a multiplicity of shift registers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- Dram (AREA)
- Static Random-Access Memory (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
Description
- HINTERGRUND DER ERFINDUNG
- Moderne Computer und ähnliche Verarbeitungssysteme umfassen typischerweise einen Prozessor und irgendeine Form eines Speichers. Der Prozessor ist allgemein dafür zuständig, die verschiedenen Rechenaufgaben des Computers auszuführen, während der Speicher Daten speichert, die von den Rechenaufgaben verwendet und erzeugt werden. Die bauliche Unterteilung der Verarbeitung durch den Prozessor und Datenspeicherung durch den Speicher hat sich über nahezu die gesamte Vergangenheit solcher Systeme als erfolgreich erwiesen.
- Ein typischer Universalcomputer umfasst z. B. eine zentrale Verarbeitungseinheit (Central Processing Unit oder CPU) und einen Hauptspeicher, die miteinander über ein oder mehrere Kommunikationskanäle miteinander kommunizieren (z. B. Daten, Befehle und Adressbusse). Typischerweise stellt die CPU Einrichtungen zur Ausführung verschiedener arithmetischer und logischer Operationen bereit, um eine Operationsablaufsteuerung bereitzustellen und anderweitig Aspekte eines Universalcomputers zu steuern. Praktisch alle CPUs stellen Funktionen oder Operationen zum Lesen von Daten aus Speicher, zum Schreiben von Daten in Speicher und zum Ausführen von Programmen bereit, die einen Satz von Befehlen umfassen, die die Daten zur Ausführung einer zuvor definierten Aufgabe nutzen. Außerdem können CPUs Eingang/Ausgang (Input/Output, I/O) verwalten und erlauben somit Kommunikation mit Peripheriegeräten sowie mit Untersystemen außerhalb des Universalcomputers. CPUs können in einigen Beispielen sogar Graphikverarbeitung bereitstellen, um das Erzeugen und Aktualisieren einer Graphikanzeige (z. B. eines Monitors) zu verwalten.
- Im Gegensatz dazu stellt der Hauptspeicher moderner Computer, der ein oder mehrere aus statischem Direktzugriffsspeicher (Static Random Access Memory oder SRAM), dynamischem Direktzugriffsspeicher (Dynamic Random Access Memory oder DRAM), Festwertspeicher (Read-Only Memory oder ROM), programmierbarem ROM (PROM), Flashspeicher und einer Vielzahl anderer Speichertypen sein kann, einen relativ eng umgrenzten Satz von Fähigkeiten bereit. Das Wichtigste unter diesen Fähigkeiten ist das Speichern von Computerprogrammen und -daten, die von der CPU ausgeführt und verwendet werden. Unter den anderen begrenzten Fähigkeiten, die sich im Hauptspeicher eines modernen Computers finden bzw. oft damit in Verbindung gebracht werden, sind bestimmte Speicherverwaltungsfunktionen. So können DRAM-Untersysteme des Hauptspeichers z. B. Kreise zur automatischen Auffrischung von darauf gespeicherten Daten besitzen.
- KURZBESCHREIBUNG DER ZEICHNUNGEN
- Verschiedene Funktionen von Beispielen gemäß der hier beschriebenen Prinzipien sind möglicherweise besser in Bezug auf die folgende ausführliche Beschreibung, zusammen mit den begleitenden Zeichnungen zu verstehen, wobei gleiche Bezugsnummem gleiche strukturelle Elemente bezeichnen, wobei
-
1A ein Beispiel für eine Rechtsverschiebung eines fortlaufenden Teilsatzes von Daten zeigt, die in einer horizontalen Zeile in dem verschiebbaren Speicher gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien gespeichert sind. -
1B ein Beispiel für eine Linksverschiebung eines fortlaufenden Teilsatzes von Daten zeigt, die in einer Zeile in dem verschiebbaren Speicher gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien gespeichert sind. -
2 ein Blockdiagramm eines verschiebbaren Speichers zeigt, der gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien Zeilenverschiebung einsetzt. -
3A eine schematische Darstellung einer beispielhaften SRAM-Zelle gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien zeigt. -
3B eine schematische Darstellung einer beispielhaften DRAM-Zelle gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien zeigt. -
4A eine schematische Darstellung einer Verschiebelogik zeigt, die einen Multiplexer gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien zeigt. -
4B eine schematische Darstellung einer Verschiebelogik zeigt, die einen Multiplexer gemäß eines weiteren Beispiels gemäß der hier beschriebenen Prinzipien zeigt. -
5A ein schematisches Blockdiagramm eines Beispiels einer Verschiebung nach Wortgröße in dem verschiebbaren Speicher gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien zeigt. -
5B ein schematisches Blockdiagramm eines Beispiels einer Verschiebung nach Wortgröße in dem verschiebbaren Speicher gemäß eines weiteren Beispiels gemäß der hier beschriebenen Prinzipien zeigt. -
5C ein schematisches Blockdiagramm eines Beispiels für Verschieben in dem verschiebbaren Speicher zeigt, der Neubelegung einsetzt, um dynamisch einen Verschiebeabstand gemäß eines weiteren Beispiels gemäß der hier beschriebenen Prinzipien zu steuern. -
6 ein Flussdiagramm eines Verfahrens zeigt, Daten in einem verschiebbaren Speicher gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien zu verschieben. - Bestimmte Beispiele haben andere Funktionen, die eine zusätzliche Funktion und eine Funktion anstelle der oben dargestellten Funktionen darstellen. Diese und andere Funktionen werden mit Bezug zu den oben bezeichneten Figuren ausgeführt.
- DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
- Beispiele gemäß der hier beschriebenen Prinzipien stellen einen verschiebbaren Speicher mit eingebauter Verschiebefähigkeit bereit, der Zeilenverschiebung einsetzt. Insbesondere wird ein fortlaufender Teilsatz von Daten, die in einer ausgewählten Zeile des verschiebbaren Speichers gespeichert sind, durch den verschiebbaren Speicher verschoben, um eine eingebaute Verschiebefähigkeit zu implementieren. Die eingebaute Datenverschiebefähigkeit stellt eine laterale Umsetzung des fortlaufenden Daten-Teilsatzes entlang der ausgewählten Zeile bereit. Die laterale Umsetzung stellt eine Rechtsverschiebung oder eine Linksverschiebung der gespeicherten Daten oder beides gemäß verschiedener Beispiele bereit. Weiterhin kann z. B. eine Richtung der Verschiebung (d. h. nach rechts oder links) sowie ein Betrag oder eine Entfernung der Verschiebung gewählt werden. Beispiele gemäß der hier beschriebenen Prinzipien finden Anwendung in Computersystemen und ähnlichen Datenverarbeitungssystemen. Insbesondere stellen die hier beschriebenen Beispiele verschiebbaren Speicher mit eingebauter Verschiebefähigkeit bereit, was für eine breite Vielzahl von Datenverarbeitungsaufgaben nützlich ist.
- Gemäß verschiedener Beispiele kann der fortlaufende Teilsatz gespeicherter Daten (z. B. Datenworte) innerhalb des Speichers von einem ersten Speicherort entlang der Zeile zu einem zweiten Speicherort verschoben werden. Die verschobenen Daten behalten ihren geordneten Bezug innerhalb des fortlaufenden Teilsatzes, wenn sie an den zweiten Ort in der Zeile gemäß einiger Beispiele verschoben werden. Weiterhin findet die Verschiebung vollständig innerhalb des Speichers (z. B. innerhalb eines Speicherchips oder Chipsatzes) statt und die Verschiebung wird in der Regel ohne Verwendung von Ressourcen erzielt, wie einem Prozessor, die sich außerhalb des Speichers befinden. Insbesondere wird die Verschiebung durch Verwendung einer Verschiebelogik erzielt, die einen Schaltkreis (z. B. einen Verschiebe-Schaltkreis) des verschiebbaren Speichers gemäß verschiedener Beispiel umfasst. Weiter umfasst das Verschieben gemäß verschiedener Beispiele nicht, dass Daten zwischen einem Prozessor und dem Speicher bewegt werden. Daher wird der Speicher mit eingebauter Verschiebefähigkeit hier als verschiebbarer Speicher ”Shiftable Memory” bezeichnet.
- In einigen Beispielen kann die Verschiebung, die von dem verschiebbaren Speicher hier bereitgestellt wird, eingesetzt werden, um einen Ort in dem Speicher zu ”öffnen”, an den neue Daten eingefügt werden können. Insbesondere kann ein Speicherort entweder links oder rechts des fortlaufenden Teilsatzes gespeicherter Daten verfügbar für das Einfügen von Daten gemacht werden, wenn der fortlaufende Teilsatz gespeicherter Daten durch die Verschiebung innerhalb des verschiebbaren Speichers bewegt wird. In einigen Beispielen umfasst der fortlaufende Teilsatz Daten einer gesamten Zeile (z. B. der ausgewählten Zeile). In diesen Beispielen kann der durch die Verschiebung geöffnete Speicherort an einem linken Ende (z. B. einem Anfang) der Zeile oder an einem rechten Ende (z. B. einem Ende) der Zeile liegen. In anderen Beispielen umfasst der fortlaufende Teilsatz nur einen Teil der Daten einer Zeile. In solchen Beispielen kann der durch die Verschiebung geöffnete Ort zwischen dem Anfang und dem Ende der Zeile liegen.
- Gemäß anderer Beispiele kann die Verschiebung dazu verwendet werden, Daten zu löschen oder zu ”überschreiben”, die entweder vor einem Anfang des fortlaufenden Teilsatzes oder nach einem Ende des fortlaufenden Teilsatzes gespeichert sind. Insbesondere können die Daten, die links oder rechts des fortlaufenden Teilsatzes in einer Zeile gespeichert sind, mit einem Teil des fortlaufenden Teilsatzes selbst überschrieben werden, wenn die fortlaufenden Daten von dem verschiebbaren Speicher verschoben werden. In anderen Beispielen kann das Verschieben des fortlaufenden Teilsatzes im Wesentlichen einen Teil der Daten weg zum Ende der Zeile verschieben, wenn der fortlaufende Teilsatz Daten der gesamten Zeile umfasst. Abhängig von der Richtung der Verschiebung können die Daten z. B. entweder weg vom rechten oder vom linken Ende verschoben werden. Daten, die weg von dem Ende der Zeile verschoben werden, können gemäß einiger Beispiele im Wesentlichen von dem verschiebbaren Speicher ”verloren” gehen oder davon entfernt und somit als gelöscht betrachtet werden. Wenn die Daten durch das Verschieben weg vom Ende der Zeile gelöscht werden, kann Datenlöschung in einigen Beispielen ohne das Überschreiben anderer Daten erfolgen. In anderen Beispielen können Daten, die weg von einem Ende der Zeile verschoben werden, anschließend in eine andere Zeile übertragen werden (z. B. können sie an den Anfang einer angrenzenden Zeile hinzugefügt werden). Wenn Daten, die weg von einem Ende der Zeile verschoben und dann zu einer anderen Zeile übertragen werden, kann dies z. B. in Folge von Überschreiben zum Löschen von Daten in der anderen Zeile führen.
- Gemäß einiger Beispiele kann das Verschieben von Daten zum Einfügen oder zum Löschen von Daten in dem verschiebbaren Speicher in kürzerer Zeit erzielt werden, und in einigen Beispielen in erheblich kürzerer Zeit, als dies in der Regel ohne verschiebbaren Speicher der Fall ist. Tatsächlich kann die Verschiebung gemäß einiger Beispiele in im Wesentlichen konstanter Zeit (z. B. einer festen Anzahl von Taktzyklen) unter Verwendung des verschiebbaren Speichers erzielt werden. Z. B. kann die Verschiebung in einem Taktzyklus des verschiebbaren Speichers erzielt werden.
- Im Gegensatz dazu benötigt z. B. ein konventioneller Speicher, der von einem Prozessor abhängig ist, für das Ausführen einer Verschiebung im Allgemeinen einen Zeitbetrag, der proportional zu der zu verschiebenden Datenmenge ist. Z. B. umfasst das Verschieben von Daten in einem konventionellen Speicher typischerweise, dass der Prozessor die zu verschiebenden Daten liest und dann die Daten zurück auf den Speicher an einem anderen Ort schreibt. Lesen und Schreiben kann z. B. durch den Prozessor aufgrund von Struktur und Funktion konventioneller Speicher auf einer Wort-für-Wort-Basis ausgeführt werden. Da jede Dateneinheit (z. B. ein Datenwort) in den zu verschiebenden Daten zuerst durch den Prozessor von dem konventionellen Speicher gelesen und dann anschließend wieder zurück auf den konventionellen Speicher geschrieben wird, ist z. B. die Zeit zum Verschieben der Daten im Allgemeinen proportional zu der Menge oder Länge der zu verschiebenden Daten (z. B. Anzahl von Datenworten). Je größer die Datenmenge, desto länger dauert die Verschiebe-Operation.
- Außerdem ist ein konventioneller Speicher von einer Bezugsquelle (z. B. dem Prozessor) abhängig, der extem zu dem konventionellen Speicher angeordnet ist, um bei dem Verschieben von Daten das Lesen und Schreiben auszuführen. Da die Bezugsquelle, die die Verschiebung ausführt, extem zu dem konventionellen Speicher angeordnet ist, muss jedes der Datenworte, die an der Wort-für-Wort-Verschiebung beteiligt sind, zwischen der extemen Bezugsquelle und dem konventionellen Speicher irgendeine Form von Datenbus oder einen ähnlichen Kommunikationskanal passieren. Der Datenbus oder der ähnliche Kommunikationskanal begrenzt im Wesentlichen die Geschwindigkeit der Lese- und Schreibvorgänge und somit die Gesamtgeschwindigkeit der Verschiebung. Somit kann das Verschieben großer Datenteilsätze untragbar teuer in Bezug auf Verarbeitungszeit aufgrund der Wirkungen der Datenbus-Geschwindigkeit und/oder dem proportionalen Zeitaspekt der Ausführung einer Verschiebung unter Verwendung eines konventionellen Speichers sein.
- Gemäß den hier beschriebenen Prinzipien verfügt ein verschiebbarer Speicher über eine eingebaute Verschiebefähigkeit, so dass z. B. Daten nicht von einer externen Bezugsquelle gelesen und dann geschrieben werden, um eine Verschiebung auszuführen. Der fortlaufende Teilsatz gespeicherter Daten wird dem verschiebbaren Speicher gegenüber identifiziert (z. B. durch Verwenden einer Adresse und einer Länge), und der verschiebbare Speicher wird angewiesen, den fortlaufenden Teilsatz zu verschieben. Die Verschiebung wird dann vollständig innerhalb des verschiebbaren Speichers erzielt und findet dort statt. Gemäß von Beispielen der hier beschriebenen Prinzipien entfallen Geschwindigkeitseinschränkungen im Zusammenhang mit dem Übertragen von Daten an und von einer externen Bezugsquelle durch den verschiebbaren Speicher im Wesentlichen. Weiter ist z. B. die Zeit für das Verschieben im Wesentlichen von der Länge der fortlaufenden Teilsätze unabhängig.
- Insbesondere kann gemäß der hier beschriebenen Prinzipien das Verschieben innerhalb des verschiebbaren Speichers mit Schaltkreisen des verschiebbaren Speichers selbst implementiert werden. Als solches erfordert das Verschieben mit einem verschiebbaren Speicher nicht sequenzielles Lesen und Schreiben eines jeden Datenworts eines fortlaufenden Teilsatzes. So kann z. B. das Verschieben mit verschiebbarem Speicher alle Daten in dem fortlaufenden Teilsatz entlang einer Zeile in einer im Wesentlichen gleichzeitigen Weise verschieben. Somit kann der verschiebbare Speicher das Verschieben des fortlaufenden Teilsatzes in einer Zeit implementieren, die im Wesentlichen von der Länge des fortlaufenden Teilsatzes unabhängig ist.
- Wie oben erwähnt, kann in einigen Beispielen der verschiebbare Speicher die Verschiebung in einer im Wesentlichen konstanten Zeit gemäß einiger Beispiele der beschriebenen Prinzipien ausführen. Mit ”konstanter Zeit” ist gemeint, dass ein im Wesentlichen gleicher Zeitbetrag erforderlich ist, den fortlaufenden Teilsatz gespeicherter Daten unabhängig von der Länge des fortlaufenden Teilsatzes zu verschieben. So kann z. B. ein fortlaufender Teilsatz mir willkürlicher Länge in einem einzigen Taktzyklus gemäß einiger Beispiele verschoben werden. In einem weiteren Beispiel kann ein kürzerer fortlaufender Teilsatz nur einen einzigen Taktzyklus benötigen, während ein längerer fortlaufender Teilsatz zwei oder mehr Taktzyklen benötigt. Auch wenn der verschiebbare Speicher mehr Zeit für längere Teilsätze als für relativ kürzere Teilsätze benötigt, so wird die Verschiebung immer noch hinreichend schnell ausgeführt, so dass die Verschiebung als im Wesentlichen in konstanter Zeit ablaufend angesehen werden kann, da die erforderliche Zeit nicht streng proportional zu der Länge des fortlaufenden Teilsatzes gemäß einiger Beispiele ist.
- Der Begriff ”Speicher” bezieht sich hier im Wesentlichen auf eine beliebige Art von Speicher, der Daten empfangen und speichem kann. Der Speicher ist im Allgemeinen übereinstimmend mit Speicher, der z. B. von einem Computerprozessor oder in einem Computersystem eingesetzt werden kann. Insbesondere bezieht sich Speicher, per Definition hierin, auf eine beliebige Art von Speicher, auf den während des Betriebs des Computers, der den Speicher einsetzt, geschrieben und von dem gelesen werden kann. Der Speicher kann z. B. Direktzugriffsspeicher (Random Access Memory oder RAM) umfassen. Der RAM kann z. B. statischer RAM (SRAM) sein. Andere Speichertypen umfassen, ohne hierauf beschränkt zu sein, dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory oder DRAM) und verschiedene Speicherbauformen, die auf Latches, Flip-Flops und anderen bistabilen Konstrukten (z. B. Memristoren) basieren.
- Wie hier ebenfalls definiert, kann ein Speicher gemäß einiger Beispiele eine Vielzahl von Speicherzellen umfassen, die als Gruppierung (Array) angeordnet sind. Die Speicherzellen können z. B. als zweidimensionales (2D)-Gruppierung angeordnet sein. Es können auch Gruppierungen höherer Ordnung eingesetzt werden (z. B. drei oder mehr Dimensionen). In einigen Beispielen ist eine Gruppierung (z. B. eine lineare Gruppierung) auf einer Gruppierung mit einer höheren Dimension (z. B. 2D-Gruppierung) definiert. Die 2D-Gruppierungatter kann z. B. als eine rechtwinklige 2D-Gruppierung von Speicherzellen angeordnet sein, das Zeilen und Spalten (d. h. lineare Gruppierung) umfasst. Eine dreidimensionale (3D)-Anordnung der Speicherzellen kann gemäß einiger Beispiele mit einer Vielzahl benachbarter 2D-Gruppierungen realisiert werden. Außerdem können Gruppierungen in Untergruppierungen unterteilt werden. Eine rechtwinklige 2D-Gruppierung kann z. B. in Quadranten von vier Untergruppierungen unterteilt werden.
- Eine Speicherzelle ist ein Schaltkreis oder ähnliches Konstrukt, der/das Daten hält oder speichert, wie hier definiert und eingesetzt. Weiter kann per Definition hier eine Speicherzelle allgemein ein oder mehrere ”Bits” von Daten speichern. Das Bit kann z. B. ein Binärwert (z. B. ”0” oder ”1”) sein oder diesen repräsentieren, und die Speicherzelle kann ein einziges Bit halten. In einem anderen Beispiel kann die Speicherzelle eine Vielzahl von Binärwert-Bits halten. Eine Speicherzelle kann 4, 8, 16, 32 oder 64 binäre Bits halten. Insbesondere kann die Speicherzelle ein vollständiges Datenwort halten oder speichern, das eine Vielzahl von Bits umfasst, wie hier definiert. In einem weiteren Beispiel kann die Speicherzelle Daten in einer anderen Form halten (z. B. einen Hexadezimalwert, einen Analogwert etc.). Insbesondere sind Speicherzellen, wie hier definiert, nicht auf das Speichern von Daten in einem binären Format beschränkt, sondem können in einigen Beispielen ein willkürliches Datenkonstrukt halten oder speichern. Für Diskussionszwecke werden Binärdaten und Speicherzellen, die ein einzelnes Datenbit halten, durchweg allgemein als Beispiele und nicht in einer beschränkenden Art verwendet, sofern dies nicht anders hervorgehoben wird.
- Wie hier verwendet, ist eine ”Zeile” als eine Sammlung oder Gruppierung von Speicherzellen definiert, die in einer eindimensionalen (1D)-Gruppierung (z. B. linearer Gruppierung) angeordnet sind. Die 2D-Gruppierung kann z. B. eine Vielzahl von Zeilen umfassen, die in einer im Wesentlichen parallelen Weise angeordnet sind. Weiter kann hier eine Zeile, die eine Gruppierung von Speicherzellen umfasst, Daten halten (z. B. eine Vielzahl von Datenbits), die ein oder mehrere Datenworte eines bestimmten Computersystems darstellen. Gemäß verschiedener Beispiele liegen die Speicherzellen einer Zeile physikalisch benachbart zueinander. So kann z. B. eine erste Speicherzelle einer Zeile unmittelbar neben einer zweiten Speicherzelle der Zeile liegen und so weiter, vom Anfang (z. B. vom linken Ende) der Zeile bis zum Ende (z. B. zum rechten Ende) der Zeile. Eine Zeile kann eine relativ große Anzahl von Speicherzellen umfassen. So kann z. B. in verschiedenen praktischen Ausführungen gemäß der hier beschriebenen Prinzipien die Länge einer Zeile 1024 Datenbits, 2048 Datenbits, 4096 Datenbits oder mehr enthalten.
- Speicherzellen werden hierin auch oft als ”Speicherorte” bezeichnet. Streng genommen ist ein Speicherort eine (mehrere) Speicherzelle(n) an einem bestimmten Ort in dem Speicher, wobei der Ort durch eine Adresse ausgewiesen oder identifiziert ist. Auf die Speicherzelle wird z. B. durch Verwenden der Adresse zugegriffen. Zur Vereinfachung der Diskussion hierin wird jedoch auf Speicherzellen allgemein Bezug genommen, dass sie eine Adresse haben oder an einer Adresse sind. Adressen oder Orte können z. B. mit einer verschiebbaren Einheit (z. B. einem Datenwort oder einem Satz von Datenworten) des verschiebbaren Speichers verbunden sein. Somit können hier ”Ort” und Adresse austauschbar verwendet werden. Außerdem kann ”Ort” gemäß einiger Beispiele verwendet werden, um auf einen Ort eines fortlaufenden Datenteilsatzes zu verweisen, der durch eine Startadresse und eine Endadresse ausgewiesen ist. In anderen Beispielen kann der Ort des fortlaufenden Teilsatzes durch eine Start-(oder End)-Adresse und eine Länge des fortlaufenden Teilsatzes ausgewiesen sein. In weiteren Beispielen umfasst der fortlaufende Teilsatz im Wesentlichen alle Daten in einer Zeile. Somit kann der fortlaufende Teilsatz als Zeile (z. B. eine Adresse einer ersten Speicherzelle der Zeile) ausgewiesen sein, ohne auf ein Adressenpaar oder eine Adresse und eine Länge zurückzugreifen.
- Weiter, wie oben angemerkt, ist eine Verschiebung, die durch einen verschiebbaren Speicher ausgeführt wird, als eine laterale Umsetzung eines fortlaufenden Teilsatzes von Daten definiert, die in dem verschiebbaren Speicher gespeichert sind, sofern dies nicht anders deutlich festgelegt ist. Insbesondere stellt eine Verschiebung unter Verwendung eines verschiebbaren Speichers die laterale Umsetzung (z. B. nach links oder rechts in einer Zeile) der gespeicherten Datenbits in dem fortlaufenden Teilsatz von einem ersten Ort an einen zweiten Ort in der Zeile innerhalb des verschiebbaren Speichers dar. Weiter setzt die Verschiebung, wenn sie auf den fortlaufenden Teilsatz gespeicherter Daten angewendet wird, alle gespeicherten Daten in dem fortlaufenden Teilsatz um. Weiter erzeugt per Definition hierin die Verschiebung durch einen verschiebbaren Speicher keine laterale Umsetzung oder keine Verschiebung von Daten außerhalb des fortlaufenden Teilsatzes von Daten, die in die Verschiebung involviert sind. Allgemein kann die Verschiebung Daten über eine Entfernung von ein oder mehreren Speicherorten oder Speicheradressen in der Zeile bewegen. D Verschiebung kann z. B. die Daten eines einzigen Speicherorts nach rechts oder nach links innerhalb der Zeile bewegen. In einem weiteren Beispiel kann die Verschiebung Daten zwei oder mehrere Speicherorte entweder nach rechts oder nach links bewegen.
- Die Richtung ”nach links” ist hier in Bezug auf Speicherorte entlang einer Zeile innerhalb eines verschiebbaren Speichers als eine Richtung hin zu Orten mit im Allgemeinen kleineren Adressen definiert. Die Richtung ”nach rechts” ist als eine Richtung entlang einer Zeile hin zu Orten mit im Allgemeinen größeren Adressen definiert. Somit ist eine ”Linksverschiebung” gemäß einiger Beispiele als eine Verschiebung der Daten an einen zweiten Ort in der Zeile definiert, der eine kleiner Adresse als die Adresse eines ersten oder Startorts in der Zeile aufweist. Umgekehrt ergibt eine ”Rechtsverschiebung” gemäß einiger Beispiele eine Bewegung der Daten in der Zeile von einem ersten Ort mit einer kleineren Adresse zu einem zweiten Ort mit einer größeren Adresse. Während jedoch die Verschiebe-Richtung gemäß einiger Beispiele steuerbar oder wählbar ist, kann die Verschiebe-Richtung (z. B. nach rechts oder links) vollkommen willkürlich sein, wie hier eingesetzt. Weiter erfolgt der Gebrauch von ”Linksverschiebung” und ”Rechtsverschiebung” sowie Erwähnung der kleineren oder größeren Adresse hier nur für Diskussionszwecke und nicht als Beschränkung.
-
1A zeigt ein Beispiel einer Rechtsverschiebung eines fortlaufenden Teilsatzes von Daten gemäß eines Beispiels der hier beschriebenen Prinzipien, die in einer horizontalen Zeile innerhalb eines verschiebbaren Speichers gespeichert sind. Insbesondere zeigt1A eine Vielzahl von Speicherzellen, von denen jede ein Datenbit speichem kann. Die Datenbits, die in der Speicherzelle gespeichert sind, umfassen ein Binärbit (z. B. entweder eine ”1” oder eine ”0”). Weiter wird, wie dargestellt, jede der dargestellten Speicherzellen durch eine Dezimaladresse definiert, die von 00 bis 11 geht. Ein oberer Teil von1A zeigt eine Vielzahl von Speicherzellen vor der Rechtsverschiebung, wobei ein unterer Teil die gleiche Vielzahl von Speicherzellen nach der Rechtsverschiebung zeigt. - Wie in
1A gezeigt, umfasst die beispielhafte Rechtsverschiebung innerhalb des verschiebbaren Speichers das Auswählen eines fortlaufenden Teilsatzes gespeicherter Datenbits, das z. B. mit einer Speicherzelle bei Adresse 03 beginnt und mit einer Speicherzelle bei Adresse 07 endet. Der ausgewählte Teilsatz umfasst die Datenbits {”1”, ”0”, ”1”, ”1”, ”1”) in dem dargestellten Beispiel. Der verschiebbare Speicher verschiebt dann den ausgewählten fortlaufenden Teilsatz von Datenbits durch Bewegen der gespeicherten Datenbits zu dem rechten Adressort, wie im unteren Teil von1A dargestellt. Die Rechtsverschiebung erhält die Reihenfolge der Datenbits innerhalb des fortlaufenden Teilsatzes und legt den fortlaufenden Teilsatz in Speicherzellen zwischen Adresse 04 und Adresse 08 ab. Rechtsverschieben der gespeicherten Daten überschreibt die Inhalte einer Speicherzelle unmittelbar rechts eines ursprünglichen Orts des fortlaufenden Teilsatzes (d. h. bei Adresse 08) und ersetzt die Inhalte dieser Speicherzelle durch ein letztes Datenbit (d. h. ”1”) des rechtsverschobenen fortlaufenden Teilsatzes. Weiter wird die Speicherzelle bei Adresse 03, die ursprünglich das erste Datenbit des fortlaufenden Teilsatzes hielt, unbestimmt belassen, wie durch das ”X” angezeigt. Gemäß verschiedener Beispiele kann die Speicherzelle als Folge der Rechtsverschiebung bei Adresse 03 eine Kopie des Datenbits (z. B. ”1”) behalten, die vor der Rechtsverschiebung vorhanden war, oder sie kann gelöscht werden (z. B. auf ”0” gesetzt werden). In einigen Beispielen kann die Speicherzelle bei Adresse 03 z. B. für das Einfügen eines Datenbits von einer externen Quelle verfügbar sein. -
1B zeigt ein Beispiel einer Linksverschiebung eines fortlaufenden Teilsatzes von Daten gemäß eines Beispiels der hier beschriebenen Prinzipien, die in einer Zeile innerhalb eines verschiebbaren Speichers gespeichert sind. Insbesondere zeigt1B eine Vielzahl von Speicherzellen, von denen jede ein Datenbit speichert (z. B. ”1”, ”0”, ”0”, ”1”, ”0” etc.). Weiter ist gezeigt, dass jede Speicherzelle durch eine Adresse identifiziert wird, die von 00 bis 11 gehen. Ein oberer Teil von1B zeigt die Vielzahl von Speicherzellen vor der Linksverschiebung, während eine unterer Teil die gleiche Vielzahl von Speicherzellen nach der Linksverschiebung veranschaulicht. - Wie in
1B dargestellt, umfasst die Linksverschiebung in dem verschiebbaren Speicher das Auswählen eines fortlaufenden Teilsatzes gespeicherter Datenbits, die z. B. mit einer Speicherzelle bei Adresse 04 beginnen und mit einer Speicherzelle bei Adresse 07 enden. Der verschiebbare Speicher verschiebt der ausgewählte fortlaufende Teilsatz dann durch Bewegen der Datenbits in dem ausgewählten fortlaufenden Teilsatz nach links, wie im unteren Teil der1B dargestellt. Die Linksverschiebung erhält die Reihenfolge der Worte innerhalb des fortlaufenden Teilsatzes und legt der fortlaufende Teilsatz in Speicherzellen zwischen Adresse 03 und Adresse 06 ab. Das Linksverschieben der gespeicherten Daten überschreibt die Inhalte einer Speicherzelle unmittelbar links eines ursprünglichen Ortes des fortlaufenden Teilsatzes (d. h. bei Adresse 03), wobei die Inhalte dieser Speicherzelle mit einem ersten Datenbit (d. h. ”0”) des linksverschobenen fortlaufenden Teilsatzes ersetzt werden. - Weiter wird die Speicherzelle bei Adresse 07, die ursprünglich das letzte Datenbit des fortlaufenden Teilsatzes hielt, unbestimmt belassen, wie durch das ”X” angezeigt. Gemäß verschiedener Beispiele kann die Speicherzelle bei Adresse 07 eine Kopie des Datenbits (z. B. ”1”) behalten, die vor der Rechtsverschiebung vorhanden war, oder sie kann nach der Linksverschiebung gelöscht werden (z. B. auf ”0” gesetzt werden). In einigen Beispielen kann die Speicherzelle bei Adresse 07 z. B. für das Einfügen von Daten von einer externen Quelle verfügbar sein.
- Gemäß verschiedener Beispiele kann der verschiebbare Speicher ein Teil eines Hauptspeichers eines Universalcomputersystems sein. Der verschiebbare Speicher kann z. B. ein Teilsatz des Speichers darstellen, der den Hauptspeicher ausmacht. Weiter, gemäß verschiedener Beispiele, unterscheidet sich der verschiebbare Speicher von Speicherzellen, Cache und anderen relativ kleinen Speicherstrukturen, die sich oft integriert mit anderen Komponenten (z. B. einer arithmetischen Logikeinheit, Steuerung etc.) z. B. in einem Mikroprozessor finden. Insbesondere ist der verschiebbare Speicher per Definition hierin gemäß verschiedener Beispiele Teil des Hauptspeichers und als solcher getrennt von einem Prozessor eines Universalcomputersystems oder eines ähnlichen Verarbeitungssystems. Außerdem umfasst ein verschiebbarer Speicher gemäß einiger Beispiele typischerweise eine Größenordnung mehr oder mehr Speicher als in einem Prozessor vorhanden ist oder vorhanden sein kann. Ein verschiebbarer Speicher kann viele Megabyte oder sogar Gigabyte Speicher umfassen, wohingegen Prozessorspeicher typischerweise auf weniger als ein paar Zig Byte (z. B. Prozessorregister) bis auf ein paar Megabyte (z. B. L1 Cache, L2 Cache etc.) begrenzt sein kann. Gemäß einiger Beispiele kann der verschiebbare Speicher eine spezialisierte Partition des Hauptspeichers oder eines Untersystems davon sein.
- Weiter, wie hier verwendet, ist der Artikel ”ein/e/r” in seiner üblichen Bedeutung im Patentwesen zu verstehen, nämlich als ”ein oder mehrere”. So bedeutet z. B. ”eine Speicherzelle” eine oder mehrere Speicherzellen und somit bedeutet ”die Speicherzelle” hierin ”die Speicherzelle(n)”. Auch jeder Bezug auf ”oben”, ”unten”, ”obere”, ”nach oben”, ”nach unten”, ”vorne”, ”hinten”, ”links” oder ”rechts) ist hier nicht als beschränkend zu verstehen. Der Begriff ”ca.”, wenn er auf einen Wert bezogen ist, bedeutet allgemein innerhalb des Toleranzbereichs der verwendeten Ausrüstung, mit der der Wert bestimmt wurde, oder in einigen Beispielen plus oder minus 10% oder plus oder minus 5% oder plus oder minus 1%, sofem nicht ausdrücklich anders spezifiziert. Weiter sind Beispiele hierin nur als veranschaulichend zu verstehen und werden nur zu Diskussionszwecken dargestellt, nicht jedoch als beschränkend.
-
2 zeigt ein Blockdiagramm eines verschiebbaren Speichers100 , der Zeilenverschiebung gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien einsetzt. Die Zeilenverschiebung des verschiebbaren Speichers100 bewegt oder verschiebt Daten entlang einer Zeile des verschiebbaren Speichers100 gemäß verschiedener Beispiele. In einigen Beispielen verschiebt die Zeilenverschiebung alle Daten in der Zeile. Weiter sind die Daten, die durch Zeilenverschiebung verschoben werden, ein fortlaufender Teilsatz der Daten in dem verschiebbaren Speicher100 . Insbesondere verschiebt die Zeilenverschiebung gemäß verschiedener Beispiele nur die Daten des fortlaufenden Teilsatzes, wobei die Daten außerhalb des fortlaufenden Teilsatzes nicht verschoben werden. - Wenn z. B. die gesamte Zeile durch Zeilenverschiebung innerhalb des verschiebbaren Speichers
100 verschoben wird, umfasst der fortlaufende Teilsatz die gesamte Zeile, die verschoben wird, und nur Daten innerhalb dieser Zeile werden verschoben. Wenn jedoch die Zeilenverschiebung nur einen Teil der Daten in einer Zeile verschiebt, kann z. B. der fortlaufende Teilsatz nur den verschobenen Teil umfassen, wohingegen ein übriger Teil der Daten in der Zeile (d. h. wenngleich außerhalb des fortlaufenden Teilsatzes) nicht verschoben wird. In weiteren Beispielen kann sich der fortlaufende Teilsatz über mehr als eine einzelne Zeile erstrecken. - Gemäß einiger Beispiele umfasst der verschiebbare Speicher
100 eine Gruppierung von Speicherzellen110 . Insbesondere sind gemäß einiger Beispiele die Speicherzellen110 der Gruppierung in einer Vielzahl von Zeilen112 angeordnet. Die Zeilen112 der Vielzahl kann benachbart und im Wesentlichen parallel zueinander angeordnet sein, so dass sie eine 2D-Gruppierung bilden, wie z. B. dargestellt. Außerdem sind die Speicherzellen110 der Gruppierung gemäß einiger Beispiele weiter in einer Vielzahl von Spalten114 angeordnet. So können z. B. die Spalten114 benachbart und im Wesentlichen parallel zueinander angeordnet sein. Die Zeilen112 und die Spalten114 schneiden sich gemäß verschiedener Beispiele. So können z. B. die Zeilen112 waagerecht und die Spalten114 senkrecht zueinander verlaufen, wie in2 dargestellt. Weiter ist gemäß verschiedener Beispiele eine bestimmte Speicherzelle110 sowohl in einer bestimmten Zeile112 als auch in einer bestimmten Spalte114 des verschiebbaren Speichers100 angeordnet und damit Mitglied beider. Weiter können einzelne Speicherzellen110 gemäß verschiedener Beispiele bezeichnet oder adressiert werden, in welcher Zeile112 und in welcher Spalte114 die Speicherzelle110 angeordnet ist. - So kann z. B., wie dargestellt, eine erste Speicherzelle
110 in einer ersten Zeile112' und einer ersten Spalte114' angeordnet sein. Eine zweite Speicherzelle110 kann z. B. in der ersten Zeile112' , aber in der zweiten Spalte114'' angeordnet sein. In einem weiteren Beispiel kann eine dritte Speicherzelle110 in der ersten Spalte114' , aber in einer zweiten Zeile112'' angeordnet sein, während eine vierte Speicherzelle110 in der zweiten Zeile112'' als auch in der zweiten Spalte114'' angeordnet sein kann. Wie dargestellt, befindet sich jede Speicherzelle110 entlang einer gegebenen Zeile112 in einer anderen aus einer Vielzahl von Spalten114 . Entsprechend befindet sich jede Speicherzelle entlang einer bestimmten Spalte114 in einer anderen Zeile112 aus der Vielzahl von Zeilen112 . - Gemäß verschiedener Beispiele besitzt jede Spalte
114 Eingangsport, -verbindung oder -weg (d. h. ”Eingang”) und Ausgangsport, -verbindung oder -weg (d. h. Ausgang). Der Ausgang einer Spalte114 kann dazu verwendet werden, Daten aus einer Speicherzelle110 der Spalte114 zu kommunizieren oder zu übertragen. Die Daten, die heraus übertragen werden, können z. B. Daten sein, die von der Speicherzelle110 gespeichert wurden. Der Eingang einer Spalte114 kann dazu verwendet werden, Daten in eine Speicherzelle110 der Spalte114 zu übertragen. So können z. B. die Daten, die in die Speicherzelle110 übertragen wurden, von der Speicherzelle110 empfangen und gespeichert werden. Die empfangenen und gespeicherten Daten können gemäß einiger Beispiele Daten, die bereits von der Speicherzelle110 gespeichert wurden, überschreiben oder anderweitig ersetzen. In einigen Beispielen können der Eingang und der Ausgang eine gemeinsame oder geteilte Verbindung oder ein gemeinsamer oder geteilter Weg sein. So können z. B. alle Speicherzellen110 einer Spalte114 an einen Bus, eine Leitung oder ein Kabel angeschlossen sein, die als Eingang und/oder Ausgang der Spalte114 dienen. In einem anderen Beispiel sind ein Eingang und ein Ausgang einer Spalte114 getrennte Verbindungen oder Wege. - Insbesondere sind, wie in
2 dargestellt, die Speicherzellen110 einer Spalte114 gemeinsam an eine Bitleitung116 angeschlossen, die sowohl als Eingang als auch als Ausgang der Spalte114 dient. Die Bitleitung der Spalte114 kann z. B. verwendet werden, um Daten von Speicherzellen110 der Spalte114 zu lesen (d. h. Daten heraus zu übertragen) und Daten auf Speicherzellen110 der Spalte zu schreiben (d. h. Daten hinein zu übertragen). In einigen Beispielen (nicht dargestellt) umfasst die Bitleitung116 ein Paar Bitleitungen. Das Paar Bitleitungen116 kann z. B. ein differenzielles Paar sein, in dem Daten in der Bitleitung als Differenz (z. B. eine Spannungsdifferenz) zwischen den Bitleitungen116 des differenziellen Paars dargestellt werden. Weiter kann das Paar gemäß einiger Beispiele (z. B. siehe unten in Bezug auf SRAM) sowohl als Eingang wie auch als Ausgang einer Spalte114 dienen, wenn ein Paar Bitleitungen116 in einigen Beispielen eingesetzt werden. - Gemäß einiger Beispiele ist zu einem bestimmten Zeitpunkt nur eine einzige Speicherzelle
110 einer Spalte112 aktiv mit der Bitleitung116 von Spalte114 verbunden, während andere Speicherzellen110 der Spalte114 zu diesem bestimmten Zeitpunkt im Wesentlichen getrennt sind. Es kann z. B. ein Transistor, der als Schalter wirkt, Verbindung mit bzw. Trennung von der Bitleitung116 bewirken. Wenn auf eine Speicherzelle110 zugegriffen oder diese aktiviert wird, wird der Transistorschalter eingeschaltet, um die Speicherzelle110 mit der Bitleitung116 zu verbinden. Verbindung der Speicherzelle110 an die Bitleitung überträgt entweder Daten, die in der Speicherzelle110 gespeichert sind, an die Bitleitung116 (d. h. die gespeicherten Daten werden auf die Bitleitung116 ”gelegt”) oder sie überträgt Daten von der Bitleitung116 auf die Speicherzelle110 zum Speichern darin. - Übertragen von Daten von der Speicherzelle
110 auf die Bitleitung116 wird hier oft als ”Lesen” von Daten oder als Ausführen eines ”Lesevorgang” bezeichnet, wohingegen Übertragen von Daten von der Bitleitung116 in die Speicherzelle110 zum Speichem hier oft als ”Schreiben” von Daten oder als Ausführen eines ”Schreibvorgangs” bezeichnet wird. In einigen Beispielen (nicht dargestellt) wird eine Schreibfreigabe-Steuerleitung verwendet, um zu steuem, ob Daten an die Bitleitung116 übertragen werden (Lesen) oder Daten von der Bitleitung116 in die Speicherzelle110 (Schreiben) übertragen und gespeichert werden. Die Schreibfreigabe kann gemäß verschiedener Beispiele Funktionalität sein, die in die Speicherzellen110 selbst eingebaut ist (z. B. wie dargestellt), oder sie kann Funktionalität sein, die von der Spalte114 bereitgestellt wird. - In einigen Beispielen sind die Speicherzellen
110 einer Zeile112 gemeinsamen mit einer Wortleitung118 verbunden. In einigen Beispielen definiert die Verbindung mit einer Wortleitung118 im Wesentlichen eine Zeile112 . Wie in2 dargestellt, greift eine bestimmte Wortleitung118 auf alle Speicherzellen110 einer bestimmten Zeile118 zu. Weiter hat z. B. jede Zeile112 eine gesonderte Wortleitung118 , so dass auf einzelne Zeilen112 ohne Zugriff auf andere Zeilen112 zugegriffen werden kann. Angenommen, dass Wortleitung118 einer bestimmten Zeile112 (z. B. Einstellen einer Logik auf ”hoch”) auf die Speicherzellen110 zugreift oder diese aktiviert, die mit dieser Zeile112 verbunden sind. Zugriff auf oder Aktivieren der Speicherzellen110 einer Zeile112 kann z. B. verwendet werden, um entweder Daten zu lesen, die zuvor in den Speicherzellen110 der Zeile112 gespeichert wurden, oder um Daten in die Speicherzellen110 der Zeile112 zu schreiben. - In einigen Beispielen umfasst die Speicherzelle
110 eine Statischer-Direktzugriffsspeicher-(Static Random Access Memory- oder SRAM-)Speicherzelle200 .3A zeigt eine schematische Darstellung einer beispielhaften SRAM-Speicherzelle200 gemäß eines Beispiels gemäß den hier beschriebenen Prinzipien. Die SRAM-Speicherzelle200 , dargestellt in3A , umfasst sechs Transistoren202 . Die SRAM-Speicherzelle200 ist so gestaltet, dass sie über eine Schnittstelle mit einem Paar differenzieller Bitleitungen116 über ein Paar Transistoren202a und202b verbunden ist. Die differenziellen Bitleitungen116 stellen Signale dout und als differenzielle Ausgänge oder Signale din und als differenzielle Eingänge an die SRAM-Speicherzelle200 bereit, wie dargestellt. Gatter des Paars Transistoren202a und202b sind mit einer Wortleitung118 verbunden, die von einem Wortleitungssignal W getrieben werden kann. Die SRAM-Speicherzelle200 wird durch eine Verbindung mit einer Spannungsquelle VDD, wie dargestellt, mit Energie versorgt. - Angenommen, das Wortleitungssignal W aktiviert das Paar Transistoren
202a und202b , die SRAM-Speicherzelle200 mit den Bitleitungen116 zu verbinden. Insbesondere schaltet gemäß einiger Beispiele ein Wortleitungssignal W, das eine Logik ”hoch” an der Wortleitung118 darstellt, das Paar Transistoren202a und202b ein oder aktiviert diese. Die Transistoren202a und202b des Paars wirken als ein Paar Schalter, wenn sie aktiviert werden, um verbleibende vier Transistoren202 der SRAM-Speicherzelle200 mit den Bitleitungen116 zu verbinden. Die Verbindung, die von den aktivierten Transistoren202a und202b bereitgestellt wird, ermöglicht entweder, dass Daten, die von den übrigen vier Transistoren202 der SRAM-Speicherzelle200 gespeichert wurden, an die Bitleitungen116 übertragen werden, oder dass Daten (z. B. eine Spannung) in den Bitleitungen116 an die verbleibenden vier Transistoren202 der SRAM-Speicherzelle200 zur Speicherung durch diese Transistoren202 übertragen werden. - In einigen Beispielen umfasst die Speicherzelle
110 eine Dynamischer-Direktzugriffsspeicher-(Dynamic Random Access Memory- oder DRAM-)Speicherzelle210 .3B zeigt eine schematische Darstellung einer beispielhaften DRAM-Speicherzelle210 gemäß eines Beispiels gemäß der her beschriebenen Prinzipien. Die DRAM-Speicherzelle210 umfasst einen Transistor212 und einen Kondensator214 , wie dargestellt. Eine Wortleitung118 ist mit einem Gatter des Transistors212 verbunden, um den Transistor zu aktivieren, wenn die Wortleitung118 durchgesetzt wird. Insbesondere wirkt der Transistor212 als Schalter, der den Kondensator mit einer Bitleitung116 einer Spalte114 verbindet, wenn eine Spannung an dem Gatter des Transistors212 durch Durchsetzen eines Wortleitungssignals” an Wortleitung118 angelegt wird. Die Verbindung, die von dem aktivierten Transistor212 bereitgestellt wird, ermöglicht es entweder, dass Daten, die in der DRAM-Speicherzelle210 (z. B. eine Spannung an dem Kondensator214 ) gespeichert wurden, an die Bitleitungen durch den Transistor212 übertragen werden oder dass Daten (z. B. eine Spannung) in den Bitleitungen116 an den Kondensator214 der DRAM-Speicherzelle200 zur Speicherung darin übertragen werden. - Wieder mit Bezug auf
2 umfasst der verschiebbare Speicher weiter eine Verschiebelogik120 . Wie dargestellt, ist die Verschiebelogik120 zwischen den Spalten114 angeschlossen. Die Verschiebelogik120 ist z. B. zwischen einer ersten Spalte114' und einer zweiten Spalte114'' des verschiebbaren Speichers100 angeschlossen (oder z. B. zwischen einer Spalte114 und einer Spalte114' , oder zwischen einer Spalte114 und114'' ). Gemäß einiger Beispiele kann der verschiebbare Speicher100 eine Verschiebelogik120 umfassen, die eine Vielzahl von Verbindungen zwischen Paaren oder sogar Sets von Spalten114 bereitstellt. Die Verschiebelogik120 von2 stellt z. B. eine Verbindung zwischen anderen Paaren der Spalte114 zusätzlich zu der zuvor erwähnten Verbindung zwischen der ersten Spalte114' und der zweiten Spalte114'' bereit. Da diese Verbindungen jedoch auf eine Weise funktionieren, die im Wesentlichen ähnlich der erste-an-zweite Spalte-Verbindung ist, kann die Diskussion hier der Einfachheit halber auf die erste-an-zweite Spalte-Verbindung beschränkt werden, ohne den allgemeinen Charakter zu verlieren. - Die Verschiebelogik
120 ist konfiguriert, Daten von einem Ausgang der ersten Spalte114' zu einem Eingang der zweiten Spalte114'' zu verschieben. So kann z. B. die in2 dargestellte Verschiebelogik120 konfiguriert werden, Daten von einer Bitleitung116 zu der ersten Spalte114' zu einer Bitleitung116 einer zweiten Spalte114'' zu verschieben. Gemäß verschiedener Beispiele werden die verschobenen Daten von einer Speicherzelle110 der ersten Spalte114' in einer ausgewählten Zeile112 aus einer Vielzahl von Spalten bereitgestellt. Die ausgewählte Zeile112 kann z. B. durch Durchsetzen der Wortleitung118 von dieser Zeile112 ausgewählt werden. Die verschobenen Daten werden von einer Speicherzelle110 in der ausgewählten Zeile112 der zweiten Spalte114'' gemäß verschiedener Beispiele empfangen und gespeichert. - In einigen Beispielen können die verschobenen Daten zwischengespeichert (gelatched) oder anderweitig vorübergehend gespeichert werden, nachdem sie von der Speicherzelle
100 in der ausgewählten Zeile112 der ersten Spalte114' ausgegeben wurden, aber bevor sie durch die Verschiebelogik120 an die Speicherzelle110 in der ausgewählten Zeile102 der zweiten Spalte114'' bereitgestellt werden. Zwischenspeichem (Latchen) kann z. B. dazu verwendet werden, Ausgabe und Eingabe von Daten über eine Ein-Bit-Leitung (z. B. wie in2 dargestellt) zu vereinfachen. Insbesondere kann Zwischenspeichern oder äquivalentes vorübergehendes Speichem der verschobenen Daten gemäß verschiedener Beispiele Konflikte vermeiden, die beim Versuch auftreten können, gleichzeitig Daten unter Verwendung der Bitleitung116 zu lesen und zu schreiben. Wenn z. B. die gleiche Bitleitung116 sowohl zur Eingabe als auch zur Ausgabe von den Speicherzellen110 verwendet wird (z. B. wie im Gegensatz zu Speicherzellen mit getrennten Eingangs- und Ausgangskanälen), können die verschobenen Daten zwischengespeichert werden, die von der Speicherzelle110 der ersten Spalte ausgegeben wurden, während die Speicherzelle110 der zweite Spalte (z. B. die ebenfalls verschobene Daten für eine andere Speicherzelle bereitgestellt hat) vorbereitet wird, die verschobenen Daten zu empfangen und zu speichem. Sobald die Speicherzelle110 der zweite Spalte vorbereitet ist, können die zwischengespeicherten verschobenen Daten freigegeben und von der Verschiebelogik120 an die Speicherzelle110 der zweiten Spalte übertragen werden. - In einigen Beispielen ist die Verschiebelogik
120 ein Schaltkreis, der in dem verschiebbaren Speicher100 integriert ist. Die Verschiebelogik120 kann z. B. als Vielzahl von Verschiebe-Schaltkreisen aufgefasst werden, die in einen Schaltkreis des verschiebbaren Speichers100 eingebaut wurden. Die Verschiebe-Schaltkreise können z. B. in einen integrierten Schaltkreis des verschiebbaren Speichers integriert sein. Die Verschiebe-Schaltkreise der Vielzahl kann zwischen der Bitleitung116 der ersten Spalte114' und der Bitleitung116 der zweiten Spalte114'' verbunden sein, um Daten zu verschieben, die von der ersten Spalte114' in die zweite Spalte114'' ausgegeben wurden. Die verschobene Daten können z. B. in einer Speicherzelle100 in einer ausgewählten Zeile112 der zweiten Spalte114'' gespeichert werden, wenn sie von den Verschiebe-Schaltkreisen verschoben werden. In einigen Beispielen kann die Verschiebelogik120 einen Zwischenspeicher (Latch) umfassen, um die verschobenen Daten vorübergehend zu speichern. In anderen Beispielen, wenn Wellen-Pipeline-Verarbeitung (Wave-Pipelining) eingesetzt wird, um Daten zu lesen und zu verschieben, kann ein entsprechendes Zwischenspeichern an Bitleitung116 entfallen. - In einigen Beispielen liegen die erste Spalte
114' und die zweite Spalte114'' zueinander benachbart. Die erste Spalte114' und die zweite Spalte114'' sind z. B. als zueinander benachbart in2 gezeigt. Wenn die erste und zweite Spalte114' und114'' zueinander benachbart angeordnet sind, kann z. B. eine Verschiebung von Daten durch den verschiebbaren Speicher zu einer Bewegung von Daten in der ausgewählten Zeile112 durch ein einziges Datenbit pro Verschiebung (z. B. ein einziger Speicherort) führen. Verschiebungen von mehr als einem Bit können durch Wiederholen der Verschiebung gemäß einiger Beispiele erzielt werden. Ein Verschiebe-Abstand von einem Datenwort (z. B. 8 Datenbits) kann z. B. durch 8 Ein-Bit-Verschiebungen erzielt werden. - In anderen Beispielen können die erste und die zweite Spalte
114' und114'' durch ein oder mehrere Spalten getrennt sein, so dass sich ein Verschiebe-Abstand von mehr als einem Datenbit ergibt. Insbesondere kann gemäß einiger Beispiele eine Anzahl von Spalten zwischen der ersten Spalte114' und der zweiten Spalte114'' in einem Bereich von Null (z. B. für benachbarte Spalten114 ) bis zu einem Wert liegen, der kleiner als die Gesamtzahl von Spalten114 des verschiebbaren Speichers100 ist. Ein Abstand zwischen der ersten Spalte114 und der zweiten Spalte114'' kann z. B. einen Verschiebe-Abstand von einem Datenbit oder zwei, drei, vier usw. Datenbits darstellen (nicht gezeigt). Weiter kann der Verschiebe-Abstand wählbar sein. Die Verschiebelogik120 kann insbesondere die Auswahl der Anzahl von Spalte114 zwischen der ersten Spalte114' und der zweiten Spalte114'' bereitstellen. Die wählbare Anzahl von Spalten114 kann z. B. in einem Bereich von Null bis zu einem Wert liegen, der kleiner als die Gesamtzahl der Spalten114 in dem verschiebbaren Speicher100 ist (wie oben erwähnt). - In einigen Beispielen kann eine Richtung der Verschiebung eine Linksverschiebung und/oder eine Rechtsverschiebung bereitstellen. Insbesondere kann die Verschiebelogik konfiguriert werden, die Daten in eine Richtung entlang der gewählten Zeile
112 zu verschieben, die entweder zum Anfang (z. B. einem linken Ende) der ausgewählten Zeile oder zum Ende (z. B. einem rechten Ende) der ausgewählten Zeile112 weist. Pfeile, die eine Richtung des Datenflusses in2 zeigen, veranschaulichen die Fähigkeit der Verschiebelogik120 , sowohl eine Linksverschiebung wie auch eine Rechtsverschiebung bereitzustellen. In einigen Beispielen ist die Verschiebe-Richtung der Verschiebelogik120 entweder als Linksverschiebung oder als Rechtverschiebung festgelegt. In anderen Beispielen kann die Verschiebe-Richtung in situ gewählt werden. Die Verschiebelogik120 kann z. B. einen Steuereingang haben, der u. a. die Verschiebe-Richtung bestimmt (d. h. Links- oder Rechtsverschiebung). - In einigen Beispielen umfasst die Verschiebelogik
120 einen Multiplexer. Der Multiplexer kann so angeschlossen werden, dass er z. B. selektiv Daten von einer ersten Spalte114' zu einer zweiten Spalte114'' routen kann.4A zeigt eine schematische Darstellung der Verschiebelogik120 , die gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien einen Multiplexer122 umfasst. Wie gezeigt, besitzt der Multiplexer122 einen Eingang, um Daten von einem Ausgang oder einer Bitleitung116 der ersten Spalte114' zu empfangen. Der Eingang des Multiplexers122 kann z. B. mit einem Ausgang eines Leseverstärkers130 (weiter unten beschrieben) der ersten Spalte114' verbunden sein. Ein anderer Eingang der Multiplexers122 kann mit einem externen Datenport des verschiebbaren Speichers100 verbunden sein, um z. B. Daten von einer externen Bezugsquelle zu empfangen. Weiter ist, wie gezeigt, ein Ausgang des Multiplexers122 angeschlossen, um Daten zu einem Eingang oder einer Bitleitung116 der zweiten Spalte114'' zu leiten. Der Ausgang des Multiplexers122 kann z. B. verbunden sein, um Daten zu der Bitleitung116 der zweiten Spalte114'' über einen Eingang eines Bitleitungstreibers (weiter unten beschrieben) der zweiten Spalte114'' zu leiten. - Wie gezeigt, ist der Multiplexer
122 konfiguriert, um zwischen externen Bezugsdaten dein und Daten zu selektieren, die durch die Bitleitung116 der ersten Spalte114' bereitgestellt werden. Weiter ist der Multiplexer konfiguriert, die ausgewählten Daten zu dem Eingang (z. B. zu Bitleitung116 ) der zweiten Spalte114'' zum Speichem in der Speicherzelle110 in der zweiten Spalte112 (nicht gezeigt in4A ) der zweiten Spalte114'' zu routen. - Gemäß einiger Beispiele ist die erste Zeile
114' näher am Anfang der ausgewählten Zeile112 als die zweite Spalte114'' . In diesen Beispielen stellt die von Multiplexer122 ausgeführte Verschiebung eine Rechtsverschiebung dar. In anderen Beispielen ist die erste Spalte114' näher am Ende (z. B. rechten Ende) der ausgewählten Zeile als die zweite Spalte114'' , so dass die von Multiplexer122 ausgeführte Verschiebung eine Linksverschiebung darstellt. Steuerung des Multiplexers122 (d. h. welcher Eingang gewählt wird) wird von einem Verschiebe-Signal bereitgestellt, wie in4A dargestellt. Datenausgang durch die erste und zweite Zeile114' und114'' kann z. B. auch durch einen Ausgang daus für exteme Verwendung bereitgestellt werden. -
4B zeigt eine schematische Darstellung der Verschiebelogik120 , die einen Multiplexer122 gemäß eines anderen Beispiel gemäß der hier beschriebenen Prinzipien umfasst. Insbesondere, wie in4B gezeigt, besitzt der Multiplexer122 drei Eingänge. Ein erster Eingang ist verbunden, um Daten von der Bitleitung116 der ersten Spalte114' zu routen, wie oben beschrieben. Ähnlich ist ein zweiter Eingang mit einem externen Datenport (z. B. dein) des verschiebbaren Speichers100 verbunden, wie oben beschrieben. Ein dritter Eingang des Multiplexers122 ist verbunden, um Daten von einer Bitleitung einer dritten Spalte114''' auf einer Seite der zweiten Spalte114'' gegenüber der der ersten Spalte114' zu empfangen, wie in4B gezeigt. Der dritte Eingang kann mit einem Ausgang eines Leseverstärkers130 einer dritten Spalte114''' verbunden sein. - Wie gezeigt, kann z. B. die Auswahl des ersten Eingangs durch den Multiplexer
122 eine Rechtsverschiebung von Daten bewirken (z. B. die Daten nach rechts zu bewegen), während die Auswahl des dritten Eingangs eine Linksverschiebung der Daten (z. B. die Daten nach links zu bewegen) entlang der ausgewählten Zeile112 (nicht gezeigt) erzielen kann. Das Verschiebe-Signal kann durch ein Paar Leitungen bereitgestellt werden, die die Auswahl zwischen den drei Eingängen ermöglichen, wie in4B dargestellt. - In einigen Beispielen umfasst die Verschiebelogik weiter einen Zwischenspeicher (Latch)
124 . Wie in4A und4B gezeigt, kann der Zwischenspeicher124 entlang der Bitleitung116 von dem Multiplexer122 angeordnet sein. Der Zwischenspeicher124 kann Datenausgang an Bitleitung116 vorübergehend während eines Lesevorgangs gemäß einiger Beispiele speichern. Beim Verschieben kann der Zwischenspeicher124 die Daten an Bitleitung116 zu einem Multiplexer122 einer nächsten Stufe gemäß einiger Beispiele weitergeben. Das Verschiebe-Signal kann z. B. verwendet werden, um den Zwischenspeicher124 zu steuern, wie gezeigt. - Wieder mit Bezug auf
2 umfasst der verschiebbare Speicher100 weiter einen Leseverstärker130 und/oder einen Bitleitungstreiber140 . Wie gezeigt, sind der Leseverstärker130 und der Bitleitungstreiber140 zwischen der Vielzahl von Zeilen112 der Speicherzellen110 und der Verschiebelogik120 angeordnet. Der Leseverstärker130 kann z. B. als eine Ausgangsschnittstelle zwischen Speicherzellen110 einer Spalte114 und anderen Komponenten dienen (z. B. der Verschiebelogik120 ), die mit Spalte114 verbunden sind. Der Bitleitungstreiber140 kann z. B. als Eingangsschnittstelle zwischen anderen Komponenten (z. B. der Verschiebelogik120 ) und Speicherzellen100 der Spalte114 dienen. - Gemäß verschiedener Beispiele verstärkt der Leseverstärker
130 ein Signal, das von der Speicherzelle110 der ausgewählten Zeile erzeugt wird. Der Leseverstärker130 kann z. B. eine Spannung verstärken, die von der Speicherzelle110 erzeugt wird, wenn sie aktiviert wird, und eine verstärkte Spannung als Ausgang einer Spalte114 bereitstellten. Die Spannung kann z. B. auf ein Spannungsniveau verstärkt werden, das kompatibel mit ein oder mehreren der Verschiebelogik130 oder anderen Komponenten ist, die über eine Schnittstelle mit dem verschiebbaren Speicher100 und anderen Schaltkreisen des verschiebbaren Speichers100 selbst verbunden sind. - In einigen Beispielen (z. B. DRAM) kann der Leseverstärker
130 auch das verstärkte Signal als ein Logikniveau (z. B. eine Logik ”0” oder ”1”) zwischenspeichern. Das verstärkte Signal einer DRAM-Speicherzelle kann z. B. zwischengespeichert werden, um einen stabilen Ausgang von Spalte114 bereitzustellen, selbst wenn eine Spannung der DRAM-Speicherzelle (z. B. eine Spannung am Kondensator) mit der Zeit zusammenbricht. Der zwischengespeicherte Ausgang, der von dem Leseverstärker130 bereitgestellt wird, kann z. B. auch die verschobenen Daten aus der ersten Spalte114' halten, bis die Daten in die zweite Spalte114'' geschrieben werden können. Gemäß einiger Beispiele kann ein Dreizustands-(Tri-State-)Puffer (nicht gezeigt) oder ein im Wesentlichen äquivalentes Bauteil an einem Ausgang des Leseverstärkers130 eingesetzt werden, um den Leseverstärker gegen Downstream-Komponenten (z. B. einem Bitleitungstreiber) zu isolieren. Der Dreizustands-Puffer kann z. B. durch ein Verschiebe-Signal gesteuert werden, das als Freigabesignal wirkt. - Gemäß verschiedener Beispiele treibt der Bitleitungstreiber
149 eine Bitleitung116 einer Spalte114 , um ein ausreichendes Eingangssignalniveau für die Speicherzellen110 der Spalte bereitzustellen. Der Bitleitungstreiber140 kann z. B. eine Spannung für die Bitleitung116 bereitstellen, die ausreichend ist, den Zustand der Speicherzelle110 der ausgewählten Zeile112 zu ändern, wenn Daten von der Speicherzelle110 zu speichern sind. In einigen Beispielen umfasst die Verschiebelogik120 einen Multiplexer122 (siehe z. B.4A ,4B ), der verbunden ist, um selektiv Daten, die an einem Ausgang des Leseverstärkers130 der Bitleitung116 der ersten Spalte114' erzeugt wurden, an einen Eingang des Bitleitungstreibers140 der Bitleitung116 der zweiten Spalte114'' zu rauten. Der Multiplexer122 kann z. B. konfiguriert werden, um selektiv Daten zu routen, wenn Daten zu verschieben sind. - Mit Bezug zu
3A kann jede Spalte114 , die eine Vielzahl von SRAM-Speicherzellen200 umfasst, einen Leseverstärker130 und einen Spannungsausgleichschaltkreis204 umfassen. In einigen Beispielen kann der Spannungsausgleichschaltkreis204 als Teil des Leseverstärkers130 umfasst sein. Der Leseverstärker130 , wie in3A gezeigt, kann z. B. von einem Leseverstärkertreiber (nicht gezeigt) getrieben werden, der Treiberspannungen SAN und SAP bereitstellt. Der Spannungsausgleichschaltkreis204 ist einem Signal EQ verbunden und wird von diesem angetrieben und wird durch eine Spannung VDD/2 mit Energie versorgt, wie gezeigt. Weiter noch kann jede Spalte114 ein Paar Bitleitungstreiber140 umfassen, wie gezeigt. Die Bitleitungstreiber140 können mit den Bitleitungen116 durch ein Paar Transistoren208 verbunden sein. Der Transistor208 kann z. B. durch ein Schreibfreigabe(WE)-Signal aktiviert werden. Die Bitleitungstreiber140 können z. B. konfiguriert werden, die Bitleitungen116 mit dem differenziellen Paar Eingangssignale din und zu treiben. - Wieder mit Bezug zu
2 wird der verschiebbare Speicher100 in einem System bereitgestellt, das weiter eine Steuerung150 gemäß einiger Beispiele umfasst. Die Steuerung150 wählt gemäß verschiedener Beispiele Zeilen unter Verwendung von Wortleitungen118 , die mit den Spalten112 in Zusammenhang stehen, und/oder steuert die Verschiebelogik120 , um das Verschieben zu vereinfachen. Die Steuerung150 kann einen Decoder umfassen, der eine Adresse der Zeile112 empfängt, die auszuwählen und zu verschieben ist. Die Zeilenadresse kann z. B. von einem System (z. B. einem Prozessor) empfangen werden, das extern zu dem verschiebbaren Speicher100 angeordnet ist. Die Steuerung150 kann weiter gemäß einiger Beispiele die Verschiebelogik120 steuern. Die Steuerung150 kann z. B. das Verschiebe-Signal (gezeigt in4A und4B ) bereitstellen. Die Steuerung150 kann weiter einen weiteren Decoder umfassen, der z. B. Teile der Verschiebelogik120 auswählt, um das Verschieben nur eines Teils der Daten in der ausgewählten Zeile112 zu beeinflussen. Die Steuerung kann weiter gemäß verschiedener Beispiele konfiguriert werden, eine Verschiebe-Richtung (z. B. Linksverschiebung vs. Rechtsverschiebung), einen Verschiebe-Abstand und/oder, ob oder ob nicht eine Verschiebung ausgeführt werden soll, zu steuern. - Gemäß verschiedener Beispiele kann der verschiebbare Speicher
100 konfiguriert werden, Daten gemäß Verschiebe-Abständen nach Datenwortgröße zu verschieben. Der verschiebbare Speicher100 kann z. B. konfiguriert werden, Daten gemäß einer Datenwortgröße zu verschieben, die ein oder mehr aus 8-bit, 16-bit, 32-bit, 64-bit usw. ist. Eine Datenwortgröße kann von einem System definiert werden, das z. B. den verschiebbaren Speicher einsetzt. Gemäß einiger Beispiele werden Datenworte aufeinanderfolgend entlang Zeilen112 des verschiebbaren Speichers100 gespeichert. In diesen Beispielen kann eine Verschiebung nach Datenwortgröße durch eine Verschiebelogik erzielt werden, die Datenbits der Zeile112 eines Abstands, der z. B. gleich der Datenwortgröße ist, verschiebt. -
5A zeigt ein schematisches Blockdiagramm eines Beispiels einer Verschiebung nach Wortgröße in dem verschiebbaren Speicher100 gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien. Wie gezeigt, werden Datenbits in einer Zeile112 der Speicherzellen110 während der Verschiebung um 8 Bit (d. h. um 8 fortlaufende Speicherorte), entsprechend einem 8-Bit Datenwort (z. B. ”10110101”), durch die Verschiebelogik vorschoben. Ein Datenbit an einem ersten Speicherort der Zeile 12 kann durch die Verschiebelogik120 zu einem achten Ort, ein Datenbit an einem zweiten Speicherort kann durch die Verschiebelogik120 an einen neunten Speicherort usw. für das fortlaufende Set an Datenbits verschoben werden. Die Verschiebelogik120 , die eine erste Spalte114' mit einer zweiten Spalte114'' verbindet, die um acht Spalten114 von der ersten Spalte114' versetzt wird, kann z. B. dazu verwendet werden, die in5A gezeigte Verschiebung zu erzielen. Die Verschiebung ist mit gekrümmten Pfeilen in5A gezeigt. -
5B zeigt ein schematisches Blockdiagramm eines Beispiels einer Verschiebung nach Wortgröße in dem verschiebbaren Speicher100 gemäß eines weiteren Beispiels gemäß der hier beschriebenen Prinzipien. Insbesondere ist, wie in5B gezeigt, ein Datenwort über eine Vielzahl von Zeilen112 verteilt. Weiter werden, wenn die Daten durch den verschiebbaren Speicher100 verschoben werden, alle Zeilen112 der in5B gezeigten Vielzahl in einer im Wesentlichen gleichzeitigen Weise verschoben. Die Vielzahl von Zeilen112 kann z. B. in getrennten, im Wesentlichen parallelen Gruppierungen (z. B. einer 3D-Gruppierung) des verschiebbaren Speichers100 angeordnet sein. Die Datenbits des Datenworts werden um einen einzigen Speicherort (z. B. um eine Speicherzelle110 ) entlang einer jeden der Zeilen112 verschoben, wie mit gekrümmten Pfeilen in5B gezeigt. Die Verschiebung ergibt sich jedoch durch Bewegen des Datenworts um einen vollen Wortgrößenabstand in dem Speicher, da das Datenwort über mehrere verschobene Zeilen112 verteilt ist, die im Wesentlichen gleichzeitig verschoben werden. Die Verschiebelogik, die eine erste Spalte114' mit einer benachbarten zweiten Spalte114'' verbindet, kann z. B. verwendet werden, um die in5B gezeigte Verschiebung zu erzielen. In einigen Beispielen können Daten als verschachtelte Datenblöcke mit wechselnder Granularität gespeichert werden, Steuerung der Verschiebung bereitzustellen. Weiter umfasst, wie in5B gezeigt, der fortlaufende Teilsatz von Daten eine Vielzahl von fortlaufenden Teilsätzen, einen fortlaufenden Teilsatz für jede der Zeilen112 der Vielzahl. -
5C zeigt ein schematische Blockdiagramm eines Beispiels für eine Verschiebung in dem verschiebbaren Speicher100 , der Neubelegen einsetzt, um einen Verschiebe-Abstand dynamisch gemäß eines weiteren Beispiels gemäß der hier beschriebenen Prinzipien zu steuern. Insbesondere kann Neubelegen verwendet werden, um einen Verschiebe-Abstand in einem verschiebbaren Speicher100 , der einen festen Verschiebe-Abstand aufweist, dynamisch gemäß einiger Beispiele zu ändern. Ein verschiebbarer Speicher100 kann z. B. einen festen physikalischen Verschiebe-Abstand eines Speicherorts bereitstellen, wie durch gekrümmte Pfeile in5C gezeigt. Wenn ein Set aufeinanderfolgender Daten in einer Zeile112 einer einzigen ersten Gruppierung gespeichert ist, ist der Verschiebe-Abstand, der durch den verschiebbaren Speicher100 bereitgestellt wird, gleich einem festen physikalischen Verschiebe-Abstand (z. B. einem Abstand von eins). Wenn jedoch die Daten neubelegt und in einem Paar Gruppierungen gespeichert werden, kann z. B. das Verschieben um einen festen physikalischen Abstand von einem Speicherort einen ”logischen” Verschiebe-Abstand von zwei bereitstellen. - Wie in
5C gezeigt, wird, wenn ein Satz fortlaufender Daten (z. B. numeriert ”1”, ”2”, ”3” usw.) neubelegt wird, so dass ungeradzahlige Datenbits in einer Zeile112 einer ersten Gruppierung502 und geradzahlige Bits in einer entsprechenden Zeile112 einer zweiten Gruppierung504 angeordnet sind, ein logischer Verschiebe-Abstand von zwei Speicherorten durch einen physikalischen Verschiebe-Abstand von einer Speicherzelle bereitgestellt. Neubelegen kann eingesetzt werden, um logische Verschiebe-Abstände durch Hinzufügen zusätzlicher Gruppierungen (nicht gezeigt) und Verteilen des Sets aufeinanderfolgender Daten über die hinzugefügten zusätzlichen Gruppierungen bereitzustellen. Weiter kann Neubelegen verwendet werden, um dynamisch einen Verschiebe-Abstand in einem eingesetzten verschiebbaren Speicher100 zu ändern, der einen festen physikalischen Verschiebe-Abstand aufweist. Selektives Neubelegen kann z. B. durch Multiplexer auf Adressleitungen (nicht gezeigt) bereitgestellt werden, die die Gruppierungen steuern. -
6 zeigt ein Ablaufdiagramm eines Verfahrens300 , Daten in einem verschiebbaren Speicher gemäß eines Beispiels gemäß der hier beschriebenen Prinzipien zu verschieben. Wie gezeigt, umfasst das Verfahren300 das Auswählen300 einer Zeile von Speicherzellen des verschiebbaren Speichers. Gemäß verschiedener Beispiele sind die Speicherzellen des verschiebbaren Speichers als eine Vielzahl von Zeilen und als eine Vielzahl von Spalten angeordnet. Gemäß einiger Beispiele sind die Speicherzellen des verschiebbaren Speichers sowie der verschiebbare Speicher selbst im Wesentlichen jeweils ähnlich den Speicherzellen110 und dem verschiebbaren Speicher100 , wie oben beschrieben. - Das Verfahren
300 , Daten zu verschieben, umfasst weiter die Kommunikation320 von Daten zwischen Spalten unter Verwendung von Verschiebelogik des verschiebbaren Speichers von einer ersten Spalte zu einer zweiten Spalte der Vielzahl. In einigen Beispielen verbindet die Verschiebelogik zwischen Verschiebe-Daten einer ersten Bitleitung der ersten Spalte mit einer Bitleitung der zweiten Spalte. Die kommunizierten Daten können z. B. Daten sein, die von einer Speicherzelle der ersten Spalte in der zweiten Zeile bereitgestellt werden. Gemäß einiger Beispiele kann die Verschiebelogik im Wesentlichen ähnlich der Verschiebelogik120 sein, wie oben in Bezug auf den verschiebbaren Speicher100 beschrieben. - Das Verfahren
300 , Daten zu verschieben, umfasst weiter das Speichern330 der kommunizierten Daten in einer Speicherzelle einer zweiten Spalte in der ausgewählten Zeile. Das Speichern330 der kommunizierten Daten kann durch die Speicherzelle auf eine Weise erzielt werden, die z. B. den Betriebsdaten der Speicherzelle entspricht. Gemäß verschiedener Beispiele werden die kommunizierten Daten entlang der ausgewählten Zeile von der Speicherzelle der ersten Spalte zu der Speicherzelle der zweiten Zelle verschoben. - In einigen Beispielen (nicht dargestellt) umfasst das Kommunizieren
320 von Daten das Verstärken eines Signals von der Speicherzelle der ersten Spalte. Die Verstärkung kann unter Verwendung eines Leseverstärkers erzielt werden, um z. B. die Daten an einem Ausgang des Leseverstärkers zu erzeugen. Gemäß einiger Beispiele kann der Leseverstärker im Wesentlichen ähnlich dem Leseverstärker130 sein, der oben in Bezug auf den verschiebbaren Speicher100 beschrieben wurde. - In einigen Beispielen umfasst das Kommunizieren
320 der Daten weiter das selektive Übertragen der Daten von dem Ausgang des Leseverstärkers an einen Eingang eines Bitleitungstreibers der zweiten Spalte. Selektives Übertragen der Daten kann z. B. durch eine Verschiebelogik des verschiebbaren Speichers ausgeführt werden, wenn die Daten verschoben werden. In einigen Beispielen umfasst das Kommunizieren320 der Daten weiter das Treiben der Bitleitung der zweiten Spalte unter Verwendung des Bitleitungstreibers, um ein Signal zu erzeugen, das das Speichern der Daten in der Speicherzelle der zweiten Spalte in der ausgewählten Zeile vereinfacht. - Es wurden also Beispiele eines verschiebbaren Speichers, eines verschiebbaren Speichersystems und ein Verfahren zum Verschieben von Daten in einem verschiebbaren Speicher beschrieben, die Zeilenverschiebung einsetzen. Es versteht sich, dass die oben beschriebenen Beispiele nur als veranschaulichend für einige der vielen spezifischen Beispiele dienen, die die hier beschriebenen Prinzipien darstellen. Eindeutig kann der Fachmann leicht zahlreiche andere Anordnungen entwickeln, ohne von dem durch die folgenden Ansprüche definierten Umfang abzuweichen.
Claims (15)
- Verschiebbarer Speicher, der Folgendes umfasst: Speicherzellen, die als eine Vielzahl von Zeilen und als eine Vielzahl von Spalten angeordnet sind; und Verschiebelogik zum Verschieben von Daten von einem Ausgang einer ersten Spalte zu einem Eingang einer zweiten Spalte, wobei die verschobenen Daten von einer Speicherzelle der ersten Spalte in einer ausgewählten Zeile bereitgestellt werden und die verschobenen Daten von einer Speicherzelle in der ausgewählten Zeile der zweiten Spalten empfangen und gespeichert werden, wobei die Verschiebelogik dazu dient, das Verschieben der Daten entlang der ausgewählten Zeile zu vereinfachen.
- Verschiebbarer Speicher nach Anspruch 1, wobei die erste Spalte und die zweite Spalte zueinander benachbart sind und alle Daten innerhalb der ausgewählten Zeile durch die Verschiebelogik verschoben werden.
- Verschiebbarer Speicher nach Anspruch 1, wobei eine Anzahl von Spalten zwischen der ersten Spalte und der zweiten Spalte wählbar zwischen Null und einem Wert ist, der kleiner als die Gesamtzahl der Spalten des verschiebbaren Speichers ist.
- Verschiebbarer Speicher nach Anspruch 1, wobei die Verschiebelogik dazu dient, die Daten in eine Richtung entlang der ausgewählten Zeile zu verschieben, die entweder in Richtung eines Anfangs der gewählten Zeile oder in Richtung eines Endes der gewählten Zeile verläuft.
- Verschiebbarer Speicher nach Anspruch 1, wobei die Verschiebelogik einen Multiplexer umfasst, der einen Eingang besitzt, der mit dem Ausgang der ersten Spalte verbunden ist, und der einen Multiplexer-Ausgang besitzt, der mit dem Eingang der zweiten Spalte verbunden ist, wobei der Multiplexer zwischen Daten von einem anderen Eingang des Multiplexers und Daten an dem ersten Spaltenausgang auszuwählen hat und wobei der Multiplexer weiter die ausgewählten Daten zu dem Eingang der zweiten Spalte zur Speicherung in der Speicherzelle der ausgewählten Zeile der zweiten Spalte zu routen hat.
- Verschiebbarer Speicher nach Anspruch 1, der weiter eines oder beides aus Leseverstärker und Bitleitungstreiber an Bitleitungen der ersten und der zweiten Spalte aufweist, wobei der Leseverstärker und der Bitleitungstreiber zwischen der Vielzahl von Zeilen von Speicherzellen und der Verschiebelogik angeordnet sind.
- Verschiebbarer Speicher nach Anspruch 6, wobei die Verschiebelogik einen Multiplexer umfasst, der verbunden ist, um selektiv Daten, die an einem Ausgang des Leseverstärkers der Bitleitung der ersten Spalte erzeugt werden, zu einem Eingang des Bitleitungstreibers der Bitleitung der zweiten Spalte zu leiten, wobei der Multiplexer die Daten selektiv zu leiten hat, wenn Daten zu verschieben sind.
- Verschiebbarer Speicher nach Anspruch 1, wobei die Speicherzelle eine aus einer Dynamischer-Direktzugriffsspeicher-(Dynamic Random Access Memory- oder DRAM-)Speicherzelle und einer Statischer-Dirketzugriffsspeicher-(Static Random Access Memory- oder SRAM-)Speicherzelle umfasst, wobei der Ausgang und der Eingang der Spalten Bitleitungen umfassen, die entweder mit der DRAM-Speicherzelle oder der SRAM-Speicherzelle assoziiert sind.
- Verschiebbarer Speicher nach Anspruch 1, der weiter eine Steuerung umfasst, um eines oder beides aus die Zeilen unter Verwendung von Wortleitungen auszuwählen, die mit den Zeilen assoziiert sind, und die Verschiebelogik zu steuern, um das Verschieben von Daten zu vereinfachen.
- Verschiebbares Speichersystem, das Folgendes umfasst: eine Gruppierung von Speicherzellen, die in Zeilen und Spalten angeordnet sind, wobei Speicherzellen jeder Zeile gemeinsam mit einer Wortleitung der Zeile verbunden sind, und wobei Speicherzellen der Spalten gemeinsam mit einer Bitleitung der Spalte verbunden sind; eine Vielzahl von Verschiebe-Schaltkreisen, wobei ein Verschiebe-Schaltkreis der Vielzahl zwischen einer ersten Bitleitung einer ersten Spalte und einer zweiten Bitleitung einer zweiten Spalte angeschlossen ist, um Datenausgang von der ersten Spalte in die zweite Spalte zu verschieben, wobei die verschobenen Daten in einer Speicherzelle in einer ausgewählten Zeile der zweiten Spalte zu speichem sind; und eine Steuerung, um die Zeilen unter Verwendung von Wortleitungen auszuwählen und den Verschiebelogik-Schaltkreis zu steuem, um das Verschieben von Daten zu vereinfachen.
- Verschiebbares Speichersystem nach Anspruch 10, das weiter eines oder beides aus einem Leseverstärker und einem Bitleitungstreiber zwischen der Gruppierung von Speicherzellen und den Verschiebelogik-Schaltkreisen umfasst, wobei der Leseverstärker die Ausgangsdaten aus einem Signal an der ersten Bitleitung zu erzeugen hat, das von einer Speicherzelle der ersten Spalte in der ausgewählten Zeile erzeugt wurde, und wobei der Bitleitungstreiber die Ausgangsdaten an die Speicherzelle in der ausgewählten Zeile der zweiten Spalte bereitzustellen hat.
- Verschiebbares Speichersystem nach Anspruch 10, wobei die Speicherzelle eine Dynamischer-Direktzugriffsspeicher-(Dynamic Random Access Memory- oder DRAM-)Speicherzelle oder eine Statischer-Direktzugriffsspeicher-(Static Random Access Memory- oder SRAM-)Speicherzelle umfasst, wobei die Bitleitungen Paare von Bitleitungen umfassen, die entweder mit der DRAM-Speicherzelle oder der SRAM-Speicherzelle assoziiert sind.
- Verschiebbares Speichersystem nach Anspruch 10, wobei die Daten Datenworte umfassen, wobei die Datenworte aufeinanderfolgend entlang einer oder mehrerer Zeilen der Vielzahl gespeichert werden oder die Datenworte über eine Vielzahl benachbarter Gruppierungen in entsprechenden Zeilen verteilt werden.
- Verfahren, Daten in einem verschiebbaren Speicher zu verschieben, wobei das Verfahren Folgendes umfasst: Auswählen einer Zeile von Speicherzellen des verschiebbaren Speichers, wobei die Speicherzellen des verschiebbaren Speichers als eine Vielzahl von Zeilen und als eine Vielzahl von Spalten angeordnet sind; Kommunikation von Daten zwischen Spalten unter Verwendung von Verschiebelogik des verschiebbaren Speichers, Kommunikation von Daten, die von einer ersten Spalte stammen, zu einer zweiten Spalte, wobei die Daten von einer Speicherzelle der ersten Spalte der ausgewählten Zelle bereitgestellt werden; und Speichern der kommunizierten Daten in einer Speicherzelle einer zweiten Spalte in der ausgewählten Zeile, wobei die kommunizierten Daten entlang der ausgewählten Zeile von der Speicherzelle der ersten Spalte zu der Speicherzelle der zweiten Spalte verschoben werden.
- Verfahren, Daten in einem verschiebbaren Speicher zu verschieben nach Anspruch 14, wobei das Kommunizieren von Daten zwischen Spalten Folgendes umfasst: Verstärken eines Signals an einer Bitleitung von der Speicherzelle der ersten Spalte unter Verwendung eines Leseverstärkers, um die Daten an einem Ausgang des Leseverstärkers zu erzeugen; Selektives Übertragen der Daten von dem Ausgang des Leseverstärkers an einen Eingang eines Bitleitungstreibers der zweiten Spalte; und Treiben der Bitleitung der zweiten Spalte unter Verwendung des Bitleitungstreibers, um ein Signal zu erzeugen, das das Speichern der Daten in der Speicherzelle der zweiten Spalte in der ausgewählten Zeile vereinfacht, wobei das selektive Übertragen der Daten durch Verschiebelogik des verschiebbaren Speichers ausgeführt wird, wenn Daten verschoben werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/058462 WO2013062596A1 (en) | 2011-10-28 | 2011-10-28 | Row shifting shiftable memory |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112011105706T5 true DE112011105706T5 (de) | 2014-07-10 |
Family
ID=48168262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112011105706.7T Ceased DE112011105706T5 (de) | 2011-10-28 | 2011-10-28 | Zeilenverschiebender verschiebbarer Speicher |
Country Status (6)
Country | Link |
---|---|
US (1) | US20140247673A1 (de) |
KR (1) | KR20140085468A (de) |
CN (1) | CN103907157B (de) |
DE (1) | DE112011105706T5 (de) |
GB (1) | GB2510286B (de) |
WO (1) | WO2013062596A1 (de) |
Families Citing this family (147)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI637396B (zh) * | 2012-02-13 | 2018-10-01 | 中村維男 | 無記憶體瓶頸的行進記憶體,雙向行進記憶體,複雜行進記憶體,及計算機系統 |
WO2014011149A1 (en) * | 2012-07-10 | 2014-01-16 | Hewlett-Packard Development Company, L.P. | List sort static random access memory |
US9158667B2 (en) | 2013-03-04 | 2015-10-13 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US8964496B2 (en) | 2013-07-26 | 2015-02-24 | Micron Technology, Inc. | Apparatuses and methods for performing compare operations using sensing circuitry |
US8971124B1 (en) | 2013-08-08 | 2015-03-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9153305B2 (en) | 2013-08-30 | 2015-10-06 | Micron Technology, Inc. | Independently addressable memory array address spaces |
US9019785B2 (en) | 2013-09-19 | 2015-04-28 | Micron Technology, Inc. | Data shifting via a number of isolation devices |
US9449675B2 (en) | 2013-10-31 | 2016-09-20 | Micron Technology, Inc. | Apparatuses and methods for identifying an extremum value stored in an array of memory cells |
US9430191B2 (en) | 2013-11-08 | 2016-08-30 | Micron Technology, Inc. | Division operations for memory |
US9934856B2 (en) | 2014-03-31 | 2018-04-03 | Micron Technology, Inc. | Apparatuses and methods for comparing data patterns in memory |
US9711207B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9711206B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9496023B2 (en) | 2014-06-05 | 2016-11-15 | Micron Technology, Inc. | Comparison operations on logical representations of values in memory |
US9455020B2 (en) | 2014-06-05 | 2016-09-27 | Micron Technology, Inc. | Apparatuses and methods for performing an exclusive or operation using sensing circuitry |
US9830999B2 (en) | 2014-06-05 | 2017-11-28 | Micron Technology, Inc. | Comparison operations in memory |
US9449674B2 (en) | 2014-06-05 | 2016-09-20 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9786335B2 (en) | 2014-06-05 | 2017-10-10 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9704540B2 (en) | 2014-06-05 | 2017-07-11 | Micron Technology, Inc. | Apparatuses and methods for parity determination using sensing circuitry |
US9910787B2 (en) | 2014-06-05 | 2018-03-06 | Micron Technology, Inc. | Virtual address table |
US10074407B2 (en) | 2014-06-05 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for performing invert operations using sensing circuitry |
US9779019B2 (en) | 2014-06-05 | 2017-10-03 | Micron Technology, Inc. | Data storage layout |
US9740607B2 (en) | 2014-09-03 | 2017-08-22 | Micron Technology, Inc. | Swap operations in memory |
US9589602B2 (en) | 2014-09-03 | 2017-03-07 | Micron Technology, Inc. | Comparison operations in memory |
US9904515B2 (en) | 2014-09-03 | 2018-02-27 | Micron Technology, Inc. | Multiplication operations in memory |
US9847110B2 (en) | 2014-09-03 | 2017-12-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector |
US9747961B2 (en) | 2014-09-03 | 2017-08-29 | Micron Technology, Inc. | Division operations in memory |
US10068652B2 (en) | 2014-09-03 | 2018-09-04 | Micron Technology, Inc. | Apparatuses and methods for determining population count |
US9898252B2 (en) | 2014-09-03 | 2018-02-20 | Micron Technology, Inc. | Multiplication operations in memory |
WO2016049862A1 (zh) | 2014-09-30 | 2016-04-07 | 华为技术有限公司 | 实现移位运算的电路以及阵列电路 |
US9836218B2 (en) | 2014-10-03 | 2017-12-05 | Micron Technology, Inc. | Computing reduction and prefix sum operations in memory |
US9940026B2 (en) | 2014-10-03 | 2018-04-10 | Micron Technology, Inc. | Multidimensional contiguous memory allocation |
US10163467B2 (en) | 2014-10-16 | 2018-12-25 | Micron Technology, Inc. | Multiple endianness compatibility |
US10147480B2 (en) | 2014-10-24 | 2018-12-04 | Micron Technology, Inc. | Sort operation in memory |
US9779784B2 (en) | 2014-10-29 | 2017-10-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9747960B2 (en) | 2014-12-01 | 2017-08-29 | Micron Technology, Inc. | Apparatuses and methods for converting a mask to an index |
US10073635B2 (en) | 2014-12-01 | 2018-09-11 | Micron Technology, Inc. | Multiple endianness compatibility |
US10032493B2 (en) | 2015-01-07 | 2018-07-24 | Micron Technology, Inc. | Longest element length determination in memory |
US10061590B2 (en) | 2015-01-07 | 2018-08-28 | Micron Technology, Inc. | Generating and executing a control flow |
US9583163B2 (en) | 2015-02-03 | 2017-02-28 | Micron Technology, Inc. | Loop structure for operations in memory |
CN107408404B (zh) * | 2015-02-06 | 2021-02-12 | 美光科技公司 | 用于存储器装置的设备及方法以作为程序指令的存储 |
CN107408405B (zh) | 2015-02-06 | 2021-03-05 | 美光科技公司 | 用于并行写入到多个存储器装置位置的设备及方法 |
WO2016126472A1 (en) | 2015-02-06 | 2016-08-11 | Micron Technology, Inc. | Apparatuses and methods for scatter and gather |
US10522212B2 (en) | 2015-03-10 | 2019-12-31 | Micron Technology, Inc. | Apparatuses and methods for shift decisions |
US9741399B2 (en) | 2015-03-11 | 2017-08-22 | Micron Technology, Inc. | Data shift by elements of a vector in memory |
US9898253B2 (en) | 2015-03-11 | 2018-02-20 | Micron Technology, Inc. | Division operations on variable length elements in memory |
US10365851B2 (en) | 2015-03-12 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10146537B2 (en) | 2015-03-13 | 2018-12-04 | Micron Technology, Inc. | Vector population count determination in memory |
US10049054B2 (en) | 2015-04-01 | 2018-08-14 | Micron Technology, Inc. | Virtual register file |
US10140104B2 (en) | 2015-04-14 | 2018-11-27 | Micron Technology, Inc. | Target architecture determination |
US9959923B2 (en) | 2015-04-16 | 2018-05-01 | Micron Technology, Inc. | Apparatuses and methods to reverse data stored in memory |
US10073786B2 (en) | 2015-05-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for compute enabled cache |
US9704541B2 (en) | 2015-06-12 | 2017-07-11 | Micron Technology, Inc. | Simulating access lines |
US9921777B2 (en) | 2015-06-22 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for data transfer from sensing circuitry to a controller |
US9996479B2 (en) | 2015-08-17 | 2018-06-12 | Micron Technology, Inc. | Encryption of executables in computational memory |
US9905276B2 (en) | 2015-12-21 | 2018-02-27 | Micron Technology, Inc. | Control of sensing components in association with performing operations |
US9952925B2 (en) | 2016-01-06 | 2018-04-24 | Micron Technology, Inc. | Error code calculation on sensing circuitry |
US10048888B2 (en) | 2016-02-10 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for partitioned parallel data movement |
US9892767B2 (en) | 2016-02-12 | 2018-02-13 | Micron Technology, Inc. | Data gathering in memory |
US9971541B2 (en) | 2016-02-17 | 2018-05-15 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US9899070B2 (en) | 2016-02-19 | 2018-02-20 | Micron Technology, Inc. | Modified decode for corner turn |
US10956439B2 (en) | 2016-02-19 | 2021-03-23 | Micron Technology, Inc. | Data transfer with a bit vector operation device |
US9697876B1 (en) | 2016-03-01 | 2017-07-04 | Micron Technology, Inc. | Vertical bit vector shift in memory |
US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US10262721B2 (en) | 2016-03-10 | 2019-04-16 | Micron Technology, Inc. | Apparatuses and methods for cache invalidate |
US10379772B2 (en) | 2016-03-16 | 2019-08-13 | Micron Technology, Inc. | Apparatuses and methods for operations using compressed and decompressed data |
US9910637B2 (en) | 2016-03-17 | 2018-03-06 | Micron Technology, Inc. | Signed division in memory |
US10388393B2 (en) | 2016-03-22 | 2019-08-20 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US10120740B2 (en) | 2016-03-22 | 2018-11-06 | Micron Technology, Inc. | Apparatus and methods for debugging on a memory device |
US11074988B2 (en) | 2016-03-22 | 2021-07-27 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US10977033B2 (en) | 2016-03-25 | 2021-04-13 | Micron Technology, Inc. | Mask patterns generated in memory from seed vectors |
US10474581B2 (en) | 2016-03-25 | 2019-11-12 | Micron Technology, Inc. | Apparatuses and methods for cache operations |
US10430244B2 (en) | 2016-03-28 | 2019-10-01 | Micron Technology, Inc. | Apparatuses and methods to determine timing of operations |
US10074416B2 (en) | 2016-03-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10453502B2 (en) | 2016-04-04 | 2019-10-22 | Micron Technology, Inc. | Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions |
US10607665B2 (en) | 2016-04-07 | 2020-03-31 | Micron Technology, Inc. | Span mask generation |
US9818459B2 (en) | 2016-04-19 | 2017-11-14 | Micron Technology, Inc. | Invert operations using sensing circuitry |
US9659605B1 (en) | 2016-04-20 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US10153008B2 (en) | 2016-04-20 | 2018-12-11 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US10042608B2 (en) | 2016-05-11 | 2018-08-07 | Micron Technology, Inc. | Signed division in memory |
US9659610B1 (en) | 2016-05-18 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for shifting data |
US10049707B2 (en) | 2016-06-03 | 2018-08-14 | Micron Technology, Inc. | Shifting data |
US10387046B2 (en) | 2016-06-22 | 2019-08-20 | Micron Technology, Inc. | Bank to bank data transfer |
US20180005059A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Statistics Operations On Two Dimensional Image Processor |
US10037785B2 (en) | 2016-07-08 | 2018-07-31 | Micron Technology, Inc. | Scan chain operation in sensing circuitry |
US10388360B2 (en) | 2016-07-19 | 2019-08-20 | Micron Technology, Inc. | Utilization of data stored in an edge section of an array |
US10387299B2 (en) | 2016-07-20 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods for transferring data |
US10733089B2 (en) | 2016-07-20 | 2020-08-04 | Micron Technology, Inc. | Apparatuses and methods for write address tracking |
US9767864B1 (en) | 2016-07-21 | 2017-09-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in a sensing circuitry element |
US9972367B2 (en) | 2016-07-21 | 2018-05-15 | Micron Technology, Inc. | Shifting data in sensing circuitry |
US10303632B2 (en) | 2016-07-26 | 2019-05-28 | Micron Technology, Inc. | Accessing status information |
US10468087B2 (en) | 2016-07-28 | 2019-11-05 | Micron Technology, Inc. | Apparatuses and methods for operations in a self-refresh state |
US9990181B2 (en) | 2016-08-03 | 2018-06-05 | Micron Technology, Inc. | Apparatuses and methods for random number generation |
US11029951B2 (en) | 2016-08-15 | 2021-06-08 | Micron Technology, Inc. | Smallest or largest value element determination |
US10606587B2 (en) | 2016-08-24 | 2020-03-31 | Micron Technology, Inc. | Apparatus and methods related to microcode instructions indicating instruction types |
US10466928B2 (en) | 2016-09-15 | 2019-11-05 | Micron Technology, Inc. | Updating a register in memory |
US10387058B2 (en) | 2016-09-29 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods to change data category values |
US10014034B2 (en) | 2016-10-06 | 2018-07-03 | Micron Technology, Inc. | Shifting data in sensing circuitry |
US10529409B2 (en) | 2016-10-13 | 2020-01-07 | Micron Technology, Inc. | Apparatuses and methods to perform logical operations using sensing circuitry |
US9805772B1 (en) | 2016-10-20 | 2017-10-31 | Micron Technology, Inc. | Apparatuses and methods to selectively perform logical operations |
US10180808B2 (en) * | 2016-10-27 | 2019-01-15 | Samsung Electronics Co., Ltd. | Software stack and programming for DPU operations |
US10732866B2 (en) | 2016-10-27 | 2020-08-04 | Samsung Electronics Co., Ltd. | Scaling out architecture for DRAM-based processing unit (DPU) |
US9922696B1 (en) * | 2016-10-28 | 2018-03-20 | Samsung Electronics Co., Ltd. | Circuits and micro-architecture for a DRAM-based processing unit |
US10373666B2 (en) | 2016-11-08 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods for compute components formed over an array of memory cells |
US10423353B2 (en) | 2016-11-11 | 2019-09-24 | Micron Technology, Inc. | Apparatuses and methods for memory alignment |
US9761300B1 (en) * | 2016-11-22 | 2017-09-12 | Micron Technology, Inc. | Data shift apparatuses and methods |
US10402340B2 (en) | 2017-02-21 | 2019-09-03 | Micron Technology, Inc. | Memory array page table walk |
US10403352B2 (en) | 2017-02-22 | 2019-09-03 | Micron Technology, Inc. | Apparatuses and methods for compute in data path |
US10268389B2 (en) | 2017-02-22 | 2019-04-23 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US10838899B2 (en) | 2017-03-21 | 2020-11-17 | Micron Technology, Inc. | Apparatuses and methods for in-memory data switching networks |
US11222260B2 (en) | 2017-03-22 | 2022-01-11 | Micron Technology, Inc. | Apparatuses and methods for operating neural networks |
US10185674B2 (en) | 2017-03-22 | 2019-01-22 | Micron Technology, Inc. | Apparatus and methods for in data path compute operations |
US10049721B1 (en) | 2017-03-27 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US10147467B2 (en) | 2017-04-17 | 2018-12-04 | Micron Technology, Inc. | Element value comparison in memory |
US10043570B1 (en) | 2017-04-17 | 2018-08-07 | Micron Technology, Inc. | Signed element compare in memory |
US9997212B1 (en) | 2017-04-24 | 2018-06-12 | Micron Technology, Inc. | Accessing data in memory |
US10942843B2 (en) | 2017-04-25 | 2021-03-09 | Micron Technology, Inc. | Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes |
US10236038B2 (en) | 2017-05-15 | 2019-03-19 | Micron Technology, Inc. | Bank to bank data transfer |
US10068664B1 (en) | 2017-05-19 | 2018-09-04 | Micron Technology, Inc. | Column repair in memory |
US10013197B1 (en) | 2017-06-01 | 2018-07-03 | Micron Technology, Inc. | Shift skip |
US10262701B2 (en) * | 2017-06-07 | 2019-04-16 | Micron Technology, Inc. | Data transfer between subarrays in memory |
US10152271B1 (en) | 2017-06-07 | 2018-12-11 | Micron Technology, Inc. | Data replication |
US10318168B2 (en) | 2017-06-19 | 2019-06-11 | Micron Technology, Inc. | Apparatuses and methods for simultaneous in data path compute operations |
US10162005B1 (en) | 2017-08-09 | 2018-12-25 | Micron Technology, Inc. | Scan chain operations |
US10534553B2 (en) | 2017-08-30 | 2020-01-14 | Micron Technology, Inc. | Memory array accessibility |
US10346092B2 (en) | 2017-08-31 | 2019-07-09 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations using timing circuitry |
US10416927B2 (en) | 2017-08-31 | 2019-09-17 | Micron Technology, Inc. | Processing in memory |
US10741239B2 (en) | 2017-08-31 | 2020-08-11 | Micron Technology, Inc. | Processing in memory device including a row address strobe manager |
US10409739B2 (en) | 2017-10-24 | 2019-09-10 | Micron Technology, Inc. | Command selection policy |
US10522210B2 (en) | 2017-12-14 | 2019-12-31 | Micron Technology, Inc. | Apparatuses and methods for subarray addressing |
US10332586B1 (en) | 2017-12-19 | 2019-06-25 | Micron Technology, Inc. | Apparatuses and methods for subrow addressing |
US10614875B2 (en) | 2018-01-30 | 2020-04-07 | Micron Technology, Inc. | Logical operations using memory cells |
US11194477B2 (en) | 2018-01-31 | 2021-12-07 | Micron Technology, Inc. | Determination of a match between data values stored by three or more arrays |
US10437557B2 (en) | 2018-01-31 | 2019-10-08 | Micron Technology, Inc. | Determination of a match between data values stored by several arrays |
US10725696B2 (en) | 2018-04-12 | 2020-07-28 | Micron Technology, Inc. | Command selection policy with read priority |
US10440341B1 (en) | 2018-06-07 | 2019-10-08 | Micron Technology, Inc. | Image processor formed in an array of memory cells |
US10769071B2 (en) | 2018-10-10 | 2020-09-08 | Micron Technology, Inc. | Coherent memory access |
US11175915B2 (en) | 2018-10-10 | 2021-11-16 | Micron Technology, Inc. | Vector registers implemented in memory |
US10483978B1 (en) | 2018-10-16 | 2019-11-19 | Micron Technology, Inc. | Memory device processing |
US11184446B2 (en) | 2018-12-05 | 2021-11-23 | Micron Technology, Inc. | Methods and apparatus for incentivizing participation in fog networks |
CN109933424B (zh) * | 2019-01-22 | 2020-11-13 | 浙江工商大学 | 基于数据循环移位的pcm内存行复用方法 |
US10847215B2 (en) * | 2019-04-29 | 2020-11-24 | Arm Limited | Bitcell shifting technique |
US12118056B2 (en) | 2019-05-03 | 2024-10-15 | Micron Technology, Inc. | Methods and apparatus for performing matrix transformations within a memory array |
US11901006B2 (en) | 2019-05-16 | 2024-02-13 | Xenergic Ab | Shiftable memory and method of operating a shiftable memory |
US11360768B2 (en) | 2019-08-14 | 2022-06-14 | Micron Technolgy, Inc. | Bit string operations in memory |
US11449577B2 (en) | 2019-11-20 | 2022-09-20 | Micron Technology, Inc. | Methods and apparatus for performing video processing matrix operations within a memory array |
US11853385B2 (en) | 2019-12-05 | 2023-12-26 | Micron Technology, Inc. | Methods and apparatus for performing diversity matrix operations within a memory array |
US11227641B1 (en) | 2020-07-21 | 2022-01-18 | Micron Technology, Inc. | Arithmetic operations in memory |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4504925A (en) * | 1982-01-18 | 1985-03-12 | M/A-Com Linkabit, Inc. | Self-shifting LIFO stack |
US4757503A (en) * | 1985-01-18 | 1988-07-12 | The University Of Michigan | Self-testing dynamic ram |
US4864544A (en) * | 1986-03-12 | 1989-09-05 | Advanced Micro Devices, Inc. | A Ram cell having means for controlling a bidirectional shift |
JPS63231798A (ja) * | 1987-03-20 | 1988-09-27 | Fujitsu Ltd | 2次元シフトレジスタ |
CA1286803C (en) * | 1989-02-28 | 1991-07-23 | Benoit Nadeau-Dostie | Serial testing technique for embedded memories |
JP3037252B2 (ja) * | 1998-01-28 | 2000-04-24 | 日本電気アイシーマイコンシステム株式会社 | アドレス選択回路 |
US6515895B2 (en) * | 2001-01-31 | 2003-02-04 | Motorola, Inc. | Non-volatile magnetic register |
CN100489797C (zh) * | 2001-10-11 | 2009-05-20 | 阿尔特拉公司 | 可编程逻辑设备上的错误检测 |
GB2393277B (en) * | 2002-09-17 | 2006-01-18 | Micron Europe Ltd | Method for manipulating data in a group of processing elements to perform a reflection of the data |
US7139946B2 (en) * | 2002-12-18 | 2006-11-21 | Logicvision, Inc. | Method and test circuit for testing memory internal write enable |
JP2006523340A (ja) * | 2003-03-14 | 2006-10-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 2次元データメモリ |
JP2004296040A (ja) * | 2003-03-28 | 2004-10-21 | Renesas Technology Corp | 半導体記憶装置 |
DE102005023118B3 (de) * | 2005-05-19 | 2006-12-21 | Infineon Technologies Ag | Schaltungsanordnung zum Zuführen von Konfigurationsdaten in FPGA-Einrichtungen |
US7743202B2 (en) * | 2006-03-09 | 2010-06-22 | Mediatek Inc. | Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system |
US20090193384A1 (en) * | 2008-01-25 | 2009-07-30 | Mihai Sima | Shift-enabled reconfigurable device |
CN101383188B (zh) * | 2008-07-16 | 2011-02-16 | 南京航空航天大学 | 一种胚胎电子系统 |
US8189408B2 (en) * | 2009-11-17 | 2012-05-29 | Freescale Semiconductor, Inc. | Memory device having shifting capability and method thereof |
-
2011
- 2011-10-28 US US14/349,401 patent/US20140247673A1/en not_active Abandoned
- 2011-10-28 DE DE112011105706.7T patent/DE112011105706T5/de not_active Ceased
- 2011-10-28 WO PCT/US2011/058462 patent/WO2013062596A1/en active Application Filing
- 2011-10-28 KR KR1020147011192A patent/KR20140085468A/ko not_active Application Discontinuation
- 2011-10-28 CN CN201180074489.1A patent/CN103907157B/zh not_active Expired - Fee Related
- 2011-10-28 GB GB1407330.8A patent/GB2510286B/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20140247673A1 (en) | 2014-09-04 |
WO2013062596A1 (en) | 2013-05-02 |
GB2510286A (en) | 2014-07-30 |
GB201407330D0 (en) | 2014-06-11 |
KR20140085468A (ko) | 2014-07-07 |
CN103907157A (zh) | 2014-07-02 |
CN103907157B (zh) | 2017-10-17 |
GB2510286B (en) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112011105706T5 (de) | Zeilenverschiebender verschiebbarer Speicher | |
DE69516881T2 (de) | Speichervorrichtung und datenverarbeitungssystem mit einer solchen speichervorrichtung | |
DE4222273C2 (de) | Zweikanalspeicher und Verfahren zur Datenübertragung in einem solchen | |
DE69635663T2 (de) | vERFAHREN FÜR DAS EINSPEICHERN VON DATEN IN EINEM FLASH-EEPROM-HAUPTSPEICHER IN EINEM RECHNERSYSTEM | |
DE19928767B4 (de) | Halbleiterspeicherbauelement | |
DE69535672T2 (de) | Synchrone NAND DRAM Architektur | |
DE3588247T2 (de) | Dynamischer Halbleiterspeicher mit einer statischen Datenspeicherzelle | |
DE69324508T2 (de) | DRAM mit integrierten Registern | |
DE3886600T2 (de) | Ferroelektrischer, latenter Bild-RAM-Speicher. | |
DE69229988T2 (de) | Kombinierte DRAM- und SRAM-Speichermatrize | |
DE69333909T2 (de) | Leseverstärker mit lokalen Schreibtreibern | |
DE69723105T2 (de) | Speicher und verfahren zum lesen von speicherelementenuntergruppen | |
DE2919166C2 (de) | Speichervorrichtung | |
EP0908893B1 (de) | Speicherarchitektur mit Mehrebenenhierarchie | |
DE60302821T2 (de) | Data-Austauschvorrichtung zwischen Abtastketten | |
DE112011105670T5 (de) | Verschiebbarer Speicher, der Ringregister verwendet | |
DE2331589A1 (de) | Datenverarbeitungsanordnung | |
DE19932683A1 (de) | Halbleiterspeicher | |
DE69028382T2 (de) | Serielle multiplexierte Registerarchitektur für VRAM | |
DE4141892A1 (de) | Halbleiterspeichereinrichtung | |
DE2617408A1 (de) | Datenverarbeitungsgeraet | |
DE69432512T2 (de) | Für fensterumgebungsoperationen entworfenes rasterpuffersystem | |
DE69618319T2 (de) | Mehrbankenspeicherarchitektur und Systeme und Verfahren unter Verwendung derselben | |
DE102008026762A1 (de) | Vorrichtung und Verfahren zum Betreiben einer integrierten Schaltung | |
DE1286789B (de) | Einrichtung an einem elektronischen Ziffernrechner zum schnellen Datenaustausch zwischen der Verarbeitungseinheit und dem zentralen Speicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R081 | Change of applicant/patentee |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOU, US Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US |
|
R082 | Change of representative |
Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER, SCHE, DE Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER & PAR, DE |
|
R081 | Change of applicant/patentee |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOU, US Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US |
|
R082 | Change of representative |
Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB, DE Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB PATENTANWA, DE Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER, SCHE, DE |
|
R082 | Change of representative |
Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB, DE Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB PATENTANWA, DE Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE |
|
R082 | Change of representative |
Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB, DE Representative=s name: FLEUCHAUS & GALLO PARTNERSCHAFT MBB PATENTANWA, DE |
|
R002 | Refusal decision in examination/registration proceedings | ||
R003 | Refusal decision now final |