DE69810995T2 - Rekonfigurierbarer Dual-Modus-Speicher in programmierbaren logischen Einrichtungen - Google Patents

Rekonfigurierbarer Dual-Modus-Speicher in programmierbaren logischen Einrichtungen Download PDF

Info

Publication number
DE69810995T2
DE69810995T2 DE69810995T DE69810995T DE69810995T2 DE 69810995 T2 DE69810995 T2 DE 69810995T2 DE 69810995 T DE69810995 T DE 69810995T DE 69810995 T DE69810995 T DE 69810995T DE 69810995 T2 DE69810995 T2 DE 69810995T2
Authority
DE
Germany
Prior art keywords
dual
mode
data
address
programmable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69810995T
Other languages
English (en)
Other versions
DE69810995D1 (de
Inventor
Krishana Rangasayee
Robert N. Beilby
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of DE69810995D1 publication Critical patent/DE69810995D1/de
Application granted granted Critical
Publication of DE69810995T2 publication Critical patent/DE69810995T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital 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

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft unter einem Aspekt generell programmierbare logische Einrichtungen bzw. Logikeinrichtungen, die einen rekonfigurierbaren Dual-Modus-Speicher enthalten. Unter einem anderen Aspekt ist ein rekonfigurierbarer Dual-Modus-Speicher beschrieben, der zum Funktionieren entweder als CAM oder RAM ausgebildet ist.
  • 2. Beschreibung der verwandten Technik
  • Eine programmierbare Logikeinrichtung bzw. PLD ist eine programmierbare integrierte Schaltung, die dem eine Softwarekontrolle verwendenden Benutzer der Schaltung erlaubt, die logischen Funktionen bzw. Logikfunktionen, welche die Schaltung ausführt, kundenspezifisch anzupassen. Die bisher von integrierten Kleinintegrations-, Mittelintegrations- und Großintegrationsschaltungen ausgeführten Logikfunktionen können anstelle dessen von programmierbaren Logikeinrichtungen ausgeführt werden. Wird eine typische programmierbare Logikeinrichtung von einem Hersteller integrierter Schaltungen geliefert, kann sie noch nicht jede spezifische Funktion ausführen. Der Benutzer kann die PLD, um die von der Benutzeranwendung benötigte Funktion oder Funktionen auszuführen, in Verbindung mit vom Hersteller gelieferter oder vom Benutzer oder einer angenommenen Quelle erzeugter Software programmieren. Die PLD kann dann in einem vom Benutzer gebildeten größeren System ebenso funktionieren, als wären fest dedizierte logische Chips verwendet. Zwecks dieser Beschreibung ist es so zu verstehen, dass eine programmierbare Logikeinrichtung sich sowohl auf einmal programmierbare als auch auf umprogrammierbare Einrichtungen bezieht.
  • Programmierbare Logik umfasst alle vom Endbenutzer konfigurierten digitalen Logikschaltungen, enthaltend am Einsatzort programmierbare bzw. feldprogrammierbare Gate-Arrays (FPGAs) und komplexe PLDs (= complex PLDs = CPLDs). Ein Beispiel einer CPLD ist als programmierbare Eingebettet-Array-Logikeinrichtung (= embedded array programmable logic device) bekannt. Eine programmierbare Eingebettet-Array-Logikeinrichtung verwendet mehrere Eingebettet-Array-Blöcke (= embedded array blocks) bzw. EABs, die programmierbar miteinander verbunden sind, um einen Speicher und ein Logikarray zum Realisieren bzw. Implementieren einer Speicherfunktion und spezialisierter Logikfunktionen zu bilden. Generell werden Logikfunktionen durch Verwendung eines Logikarrays implementiert, das aus programmierbar miteinander verbundenen Logik-Array-Blöcken (= logic array blocks) bzw. LABs besteht. Durch geeignetes programmierbares miteinander Verbinden des Arrays aus EABs und des Arrays aus LABs kann eine programmierbare Eingebettet-Array-Logikeinrichtung viele komplexe Logik- und kombinierte Logik/Speicher-Funktionen implementieren.
  • Die Architektur der programmierbaren Eingebettet-Array-Logikeinrichtung kann durch mehrere Logik-Array-Blöcke gebildet sein, die in Zeilen und Spalten angeordnet und mittels programmierbarer Verbinder an mehrere horizontale und vertikale Leiter gekoppelt sind. Auf ähnliche Weise kann ein Array aus Eingebettet-Array-Blöcken derart ausgebildet sein, dass in jeder Zeile aus Logik-Array-Blöcken wenigstens ein EAB vorhanden ist. Die EABs des Arrays sind ebenfalls mittels mehrerer programmierbarer Verbinder an die mehreren horizontalen und vertikalen Leiter gekoppelt. Beispielsweise ist die 1 eine Darstellung der Architektur einer programmierbaren Eingebettet-Array-Logikeinrichtung, wie sie durch die FLEX10KTM-Logikeinrichtungen-Familie exemplifiziert ist, die von der Altera Corporation in San Jose, California, hergestellt wird. Wie oben beschrieben sind die Logik-Array-Blöcke 104a und 104b so angeordnet, dass sie einen Abschnitt einer Zeile 150, die einen einzelnen Eingebettet-Array-Block 102a enthält, bilden. Auf im Wesentlichen ähnliche Weise ist eine zweite Zeile 152 ist ausgebildet, bei der ein Abschnitt die Anordnung aus den Logik-Array-Blöcken 104c und 104d und den Eingebettet-Array-Block 102b enthält.
  • Wie oben beschrieben kann jeder LAB und EAB durch geeignet angeordnete programmierbare Verbinder programmierbar an die mehreren vertikalen und horizontalen Leiter gekoppelt sein. Beispielsweise kann der in einem Abschnitt der Zeile 150 enthaltene LAB 104a durch programmierbare Verbinder 180 und 182 elektrisch an eine erste Anzahl horizontaler Leiter 174 und bzw. eine zweite Anzahl horizontaler Leiter 176 gekoppelt sein. Auf ähnliche Weise kann der LAB 104a durch programmierbare Verbinder 194 und 196 elektrisch an eine erste Anzahl vertikaler Leiter 190 bzw. eine zweite Anzahl vertikaler Leiter 192 gekoppelt sein. Auf ähnliche Weise kann jeder der EABs eines Arrays elektrisch an jeweils wenigstens einen der mehreren vertikalen und horizontalen Leiter gekoppelt sein. Beispielsweise kann der EAB 102a mittels programmierbarer Verbinder 195 und 197 elektrisch an die jeweiligen vertikalen Leiter 192 bzw. 191 und mittels programmierbarer Verbinder 193 und 199 an die jeweiligen horizontalen Leiter 174 bzw. 176 gekoppelt sein. Auf diese Weise ist eine programmierbare Eingebettet-Array-Logikeinrichtung gebildet, die viele komplexe Logik- und kombinierte Logik/Speicher-Funktionen implementieren kann.
  • Der EAB ist ein flexibler Direktzugriffsspeicher-Block bzw. RAM-Block mit Registern an den Eingangs- und Ausgangstoren. Wie es bei der Technik bekannt ist, ist ein RAM ein Array aus individuellen Speicherzellen, deren jede mehrere Transistoren enthält, die so konfiguriert sind, dass sie digitale Daten in Form eines einzelnen Bits speichern. Typischerweise sind die individuellen Speicherzellen so angeordnet, dass sie Datenwörter mit von der speziellen Anwendung abhängender variierender Länge bilden. In der Praxis können Datenwörter jede Länge aufweisen, jedoch sind Datenwortlängen von 1, 8, 16 oder 32 Bit üblich, aber es ist jede vom Benutzer gewünschte Wortlänge möglich. So wie sie strukturiert ist hat die RAM-Einrichtung die Fähigkeit, durch wahlweises Frei geben gewünschter Zeilen und Spalten auf jedes gespeicherte Datenbit oder Datenwort unabhängig von jedem anderen gespeicherten Datenbit oder -wort zuzugreifen oder es zu lesen.
  • Viele Anwendungen, beispielsweise Datenbankmaschinen, Bild- oder Spracherkennung oder Computer- und Kommunikationsnetzwerke erfordern Hochgeschwindigkeits-Suchen in Datenbänken, Listen, oder Mustern. Üblicherweise verwenden Hochgeschwindigkeits-Suchen, die einen Speicher mit wahlfreiem Zugriff bzw. Direktzugriffsspeicher bzw. RAM (= random access memory) verwenden, Such-Algorithmen, beispielsweise Baum-basisierte binäre Suchen oder Vorgriffs-Etiketten- bzw. -Markierungs-Puffer. Leider erfordert die Struktur des RAM, dass die Algorithmen die gewünschte Information gegen die im RAM vorab gespeicherten Daten auf relativ langsame Weise sequentiell vergleicht, was zu inakzeptablen Suchzeiten führt.
  • Um den Bedarf an Hochgeschwindigkeits-Suchen in großen Datenbänken, Listen oder Mustern zu befriedigen, wurde eine Einrichtung, die in der Technik als inhaltsadressierbarer Speicher bzw. Assoziativspeicher bzw. CAM (= content addressable memory) bekannt ist, entwickelt. Der CAM ist eine Speichereinrichtung, welche Anwendungen wie beispielsweise Datenbankmaschinen, Bild- oder Spracherkennung oder Computer- und Kommunikationsnetzwerke, die schnelle Suchen in einer Datenbank, Liste oder einem Muster benötigen, beschleunigt. CAMs können bei der Ausführung von Hochgeschwindigkeits-Suchen in Datenbänken, Listen und Mustern gegenüber der Verwendung eines RAM signifikante Leistungsvorteile aufweisen, da CAMs die ganze Liste vorab gespeicherter Daten simultan vergleicht. Typischerweise gibt die CAM-basierte Suchmaschine bei der Ausführung von Hochgeschwindigkeits-Suchen eine bis zu einer Größenordnung schnellere Leistung als die RAM-basierte Maschine ab.
  • Im Hinblick auf das Vorstehende wäre es vorteilhaft und deshalb wünschenswert, eine programmierbare Logikeinrichtung bereitzustellen, die einen effizienten konfigurierbaren inhaltsadressierbaren Speicher bzw. Assoziativspeicher aufweist.
  • Aus EP-A-0612154 geht eine Dual-Modus-Speicherzelle hervor, die so ausgebildet ist, dass sie in einem ersten Modus als Assoziativspeicher funktioniert und in einem zweiten Modus als Speicher mit wahlfreien Zugriff bzw. Direktzugriffsspeicher funktioniert, wobei die Dual-Modus-Speicherzelle eine Datenspeicherschaltung zum Speichern von Daten, eine Vergleichsschaltung zum Vergleichen von in der Datenspeicherschaltung gespeicherten Daten mit angeforderten Daten und eine Anpassungs- bzw. Gleichheitsleitung zum Anzeigen, ob die gespeicherten Daten und die angeforderten Daten angepasst bzw. gleich sind, aufweist.
  • Aus US-A-4740917 geht ein Speicher hervor, der eine Matrix aus konventionellen Harper-pnp-Zellen und peripheren Schaltungen aufweist, die ihm erlaubt, entweder als Direktzugriffsspeicher oder als Assoziativspeicher benutzt zu werden.
  • Gemäss einem ersten Aspekt der Erfindung ist eine Dual-Modus-Speicherzelle bereitgestellt, die ausgebildet ist zum Funktionieren in einem ersten Modus als inhaltsadressierbarer Speicher bzw. Assoziativspeicher und zum Funktionieren in einem zweiten Modus als Speicher mit wahlfreiem Zugriff bzw. Direktzugriffsspeicher, wobei die Dual-Modus-Speicherzelle aufweist:
    eine Datenspeicherschaltung zum Speichern von Daten,
    eine Vergleichsschaltung zum Vergleichen von in der Datenspeicherschaltung gespeicherten Daten mit angeforderten Daten,
    eine Anpassungs- bzw. Gleichheitsleitung zum Anzeigen, ob die gespeicherten Daten und die angeforderten Daten einander angepasst bzw. gleich sind, und
    eine Isolationsschaltung zum Wahlweisen Isolieren der Datenspeicherschaltung von der Vergleichsschaltung und Gleichheitsleitung.
  • Gemäss einem zweiten Aspekt dieser Erfindung ist eine programmierbare Logikeinrichtung bereitgestellt, die aufweist:
    ein Array aus programmierbaren, miteinander verbundenen Logikzellen, das zur Verwendung bei der Implementierung programmierter logischer Funktionen bzw. Logikfunktionen geeignet ist,
    einen Dual-Modus-Speicherblock, der programmierbar an das Array aus Logikzellen gekoppelt ist, wobei der Dual-Modus-Speicherblock ein Array aus Dual-Modus-Speicherzellen nach einem der Ansprüche 1 bis 3 aufweist,
    eine Modussteuerschalt-Schaltung, die zum wahlweisen Freigeben der Dual-Modus-Speicherzellen zum Arbeiten in entweder dem ersten oder zweiten Modus geeignet ist.
  • Bei einer bevorzugten Ausführungsform weist ein Dual-Modus-Speicherblock eine mehrere Spalten und Zeilen aufweisende Anzahl Dual-Modus-Speicherzellen auf, die geeignet angeordnet sind, um mit angeforderten Datenwörtern korrespondierende Anpassungs- bzw. Gleichheitsadressen auszugeben, wenn der Dual-Modus-Speicherblock so konfiguriert ist, dass er als Assoziativspeicher arbeitet. Die Dual-Modus-Speicherzellen können auch mehrere Dual-Modus-Speicherzellen-Datenleitungen, eine Zeilenleitung, eine Anpassungs- bzw. Gleichheitsleitung, eine Datenspeicherschaltung zum Speichern von Daten, eine Vergleichsschaltung zum Vergleichen der gespeicherten Daten mit angeforderten Daten und eine Isolationsschaltung zum wahlweisen Isolieren der Datenspeicherschaltung und der Vergleichsschaltung aufweisen.
  • Die programmierbare Logikeinrichtung kann auch eine Komparandeneinheit zum Speichern und in eine Warteschlange Einordnen angeforderter Daten und einen Prioritätscodierer aufweisen. Der Prioritätscodierer ist geeignet sowohl zum Empfang und Speichern von Gleichheitsadressen als auch zur Erzeugung eines Systemanpassungs- bzw. Systemgleichheitskennzeichens, das einen GLEICHHEIT- oder NICHTGLEICH-Zustand anzeigt, geeignet.
  • Bei einer anderen Ausführungsform weist die rekonfigurierbare programmierbare Logikeinrichtung ein Array aus programmierbar miteinander verbundenen Logikzellen auf, das zur Verwendung bei der Implementierung programmierter Logikfunk tionen geeignet ist. Die rekonfigurierbare programmierbare Logikeinrichtung weist auch einen Dual-Modus-Speicherblock auf, der programmierbar an das Array aus Logikzellen gekoppelt ist. Der Dual-Modus-Speicherblock kann so ausgebildet sein, dass er in einem ersten Modus als Assoziativspeicher und in einem zweiten Modus als Direktzugriffsspeicher arbeitet.
  • Die programmierbare Logikeinrichtung weist auch eine an den Assoziativspeicherblock gekoppelte Modussteuerschalt-Schaltung auf. Die Modussteuerschalt-Schaltung gibt den Dual-Modus-Speicherblock zum Arbeiten als ein Assoziativspeicherblock oder als Direktzugriffsspeicherblock frei. Bei einer anderen Ausführungsform kann der Dual-Modus-Speicherblock als ein statischer Direktzugriffsspeicherblock arbeiten.
  • Bei einer noch anderen Ausführungsform weist die rekonfigurierbare programmierbare Logikeinrichtung ein Array aus programmierbar miteinander verbundenen Logikzellen, das zur Verwendung bei der Implementierung programmierter Logikfunktionen geeignet ist, und einen Assoziativspeicherblock, der programmierbar an das Array aus Logikzellen gekoppelt ist, auf. Der Assoziativspeicherblock ist zum Ausgeben von mit angeforderten Datenwörtern korrespondierenden Adressenstellen ausgebildet. Die rekonfigurierbare Logikeinrichtung kann auch eine an den Assoziativspeicherblock gekoppelte Modussteuerschalt-Schaltung aufweisen. Die Modussteuerschalt-Schaltung kann den Assoziativspeicherblock freigeben, damit er als Direktzugriffsspeicherblock arbeitet.
  • Mit einer noch anderen Ausführungsform ist eine programmierbare Logikeinrichtung offenbart, die eine als ein Dual-Modus-Speicher konfigurierte Eingebettet-Logik-Array-Block-Architektur verwendet. Die programmierbare Logikeinrichtung weist ein Array aus programmierbar miteinander verbundenen Logikblöcken auf, das zur Verwendung bei der Implementierung programmierter Logikfunktionen geeignet ist. Die programmierbare Logikeinrichtung weist auch einen Dual-Modus-Speicherblock auf, der programmierbar an das Array aus Logikblöcken gekoppelt ist. Bei dieser Ausführungsform ist der Du al-Modus-Speicherblock so ausgebildet, dass er in einem ersten Modus als Assoziativspeicher und in einem zweiten Modus als Direktzugriffsspeicher funktioniert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung kann zusammen mit weiteren Aufgaben und Vorteilen am besten durch Bezugnahme auf die folgende Beschreibung anhand der beigefügten Zeichnungen verstanden werden, in denen:
  • 1 eine Darstellung einer Architektur einer programmierbaren Eingebettet-Array-Logikeinrichtung ist.
  • 2A eine Darstellung einer programmierbaren Eingebettet-Array-Logikeinrichtung ist, die einen Dual-Modus-Speicherblock gemäß einer Ausführungsform der Erfindung aufweist.
  • 2B ein funktionelles Blockschaltbild einer programmierbaren Eingebettet-Array-Logikarchitektur ist, die eine wie in 2A dargestellte rekonfigurierbare Dual-Modus-Speichereinrichtung aufweist.
  • 3A ein funktionelles Blockschaltbild eines Dual-Modus-Speicherblocks ist, der als ein Assoziativspeicher oder als Direktzugriffsspeicher benutzerkonfiguriert werden kann, wobei Eingabedaten von einer Daten-Ein/Datenpuffer-Kombination empfangen und an eine Komparandeneinheit gemäß einer Ausführungsform der Erfindung weitergegeben werden können.
  • 3B ein funktionelles Blockschaltbild eines mittels eines R/C-Modus-Steuereingangs als ein Assoziativspeicher benutzerkonfigurierten Dual-Modus-Speicherblocks ist, wobei Eingabedaten direkt von einer Komparandeneinheit gemäß einer Ausführungsform der Erfindung empfangen werden.
  • 4A ein Schaltbild einer Dual-Modus-Speicherzelle gemäß einer Ausführungsform der Erfindung ist.
  • 4B eine Darstellung eines Abschnitts eines in einer Dual-Modus-Speichereinheit gemäß einer Ausführungsform der Erfindung enthaltenen Arrays aus Dual-Modus-Speicherzellen.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die Erfindung betrifft generell die Bereitstellung programmierbarer Logikeinrichtungen mit einem Assoziativspeicher. Bei einer bevorzugten Ausführungsform ist der Assoziativspeicher so konfiguriert, dass er als ein Dual-Modus-Speicher arbeitet, derart, dass der Speicher in einem ersten Modus als ein Assoziativspeicher bzw. CAM arbeitet. In einem zweiten Modus arbeitet der Speicher nur als ein RAM, beispielsweise als eine statische Direktzugriffsspeichereinrichtung bzw. SRAM (= static random access memory).
  • Zunächst bezugnehmend auf die 2A wird eine programmierbare Eingebettet-Array-Logikeinrichtung 200 mit wenigstens einem Dual-Modus-Speicherblock gemäß einer Ausführungsform der Erfindung beschrieben. Die programmierbare Logikeinrichtung 200 weist mehrerer Logik-Array-Blöcke (LABs) 204a–204d und mehrere Eingebettet-Array-Blöcke in Form von Dual-Modus-Speicherblöcken (= DMMBs = dual mode memory blocks) 202a202b auf. Die generelle Architektur der programmierbaren Eingebettet-Array-Logikeinrichtung ist jenen, die von der von der Altera Corporation in San Jose, Kalifornien, hergestellten FLEX10KTM-Logikeinrichtungen-Familie Kenntnis haben können, generell vertraut. Obgleich nur wenige Logik-Array-Blöcke und Dual-Modus-Speicherblöcke dargestellt sind, ist einzusehen, dass jede beliebige Zahl von Blöcken vorgesehen sein kann, um die Erfordernisse eines speziellen Systems zu erfüllen.
  • Jeder der Logik-Array-Blöcke 204a–204d und Dual-Modus-Speicherblöcke 202a–202b kann durch geeignet angeordnete programmierbare Koppler bzw. Verbinder programmierbar an die mehreren vertikalen Leiter und/oder die mehreren horizontalen Leiter gekoppelt sein. Beispielsweise kann der in einem Abschnitt der Zeile 250 enthaltene LAB 204a durch einen programmierbaren Koppler bzw. Verbinder 280 an eine erste Anzahl horizontaler Leiter 274 und durch einen programmierbaren Koppler bzw. Verbinder 282 an eine zweite Anzahl horizontaler Leiter 276 elektrisch gekoppelt sein. Auf ähnliche Weise kann der LAB 204a durch einen programmierbaren Koppler bzw. Verbinder 296 an eine erste Anzahl vertikaler Leiter 290 und durch einen programmierbaren Koppler bzw. Verbinder 294 an eine zweite Anzahl vertikaler Leiter 292 elektrische gekoppelt sein. Auf ähnliche Weise kann jeder DMMB des Arrays aus DMMBs an jeweils wenigstens einen der mehreren vertikalen und horizontalen Leiter elektrische gekoppelt sein. Beispielsweise kann der DMMB 202a mittels eines programmierbaren Kopplers bzw. Verbinders 295 an die vertikalen Leiter 292, mittels eines programmierbaren Kopplers bzw. Verbinders 297 an die vertikalen Leiter 291, mittels eines programmierbaren Kopplers bzw. Verbinders 293 an die horizontalen Leiter 274 und mittels eines programmierbaren Kopplers bzw. Verbinders 299 an die horizontalen Leiter 276 elektrisch gekoppelt sein. Auf diese Weise ist ein Array aus rekonfigurierbarer Logik und einem Dual-Modus-Speicher gebildet.
  • 2B ist ein funktionelles Blockschaltbild einer programmierbaren Eingebettet-Array-Logikarchitektur, die als eine Dual-Modus-Speichereinrichtung gemäß einer Ausführungsform der Erfindung rekonfigurierbar ist. Bei der beschriebenen Ausführungsform kann der Dual-Modus-Speicherblock 202a als ein Assoziativspeicher (CAM) oder als ein Direktzugriffsspeicher (RAM) benutzerkonfiguriert werden. Wie beschrieben weist ein Dual-Modus-Speicherblock 202a einen Eingangssteuerblock 900 auf, der zum Koppeln mehrerer wahlweise programmierter Eingänge 297 vom vertikalen Leiter 291 an eine Spaltensteuereinheit 500 und eine Zeilensteuereinheit 300 verwendet ist. An die Dual-Modus-Speichereinheit 400 ist ein RAM/CAM-Modus-Steuereingang 225 (nachfolgend als R/C-Modus-Steuereingang bezeichnet) direkt gekoppelt. Der R/C-Modussteuerungseingang 225 bewirkt, dass die Dual-Modus-Speichereinheit 400 in Abhängigkeit vom Zustand des R/C-Modus-Steuereingangs 225 als ein CAM oder als ein RAM arbeitet. Geht bei einer Ausführungsform der R/C-Modus-Steuereingangs 225 auf HOCH (was beispielsweise durch einen zugeordneten hohen Spannungspegel oder den Digitalwert „1" repräsentiert ist), kann die Dual-Modus-Speichereinheit 400 als CAM arbeiten. Geht alternativ dazu der R/C-Modus-Steuereingang 285 auf NIEDRIG (was durch einen zugeordneten niedrigen Span nungspegel oder den Digitalwert „0" repräsentiert ist), kann die Dual-Modus-Speichereinheit 400 als RAM arbeiten.
  • Bei der beschriebenen Ausführungsform können die wahlweise programmierten Eingängen 297 mehrere Dateneingänge 210 aufweisen, die in gewählten Speicherstellen in der Dual-Modus-Speichereinheit 400 zu speichernde Eingangsdaten repräsentieren, wenn diese so konfiguriert ist, dass sie als RAM arbeitet. Ist alternativ dazu die Dual-Modus-Speichereinheit 400 so konfiguriert, dass sie als CAM arbeitet, können die mehreren Dateneingänge 210 angeforderte Daten repräsentieren, die mit in der Dual-Modus-Speichereinheit 400 vorab gespeicherten Daten zu vergleichen sind. Die Eingänge 297 können auch eine erste Anzahl Adresseneingänge 220 aufweisen, die bei einer Ausführungsform die niedrigstwertigen Bits (LSB) eines Multibit-Adressierungsschemas repräsentieren. Die Eingänge 297 können auch eine zweite Anzahl Adresseneingänge 222 aufweisen, die bei einer Ausführungsform für die höchstwertigen Bits (MSB) eines Multibit-Adressierungsschemas repräsentativ sind.
  • Bei der beschriebenen Ausführungsform empfängt eine Spaltensteuereinheit 500 mittels einer Eingangssteuerung 900 Eingangsdaten 210 und überträgt sie mittels eines Spaltendatensignals 520 zur Dual-Modus-Speichereinheit 400. Die Spaltensteuereinheit 500 empfängt auch die zweite Anzahl Adresseneingaben 222, die für die höchstwertigen Bits (oder MSB) eines Multibit-Adressierungsschemas repräsentativ sind. Dann decodiert die Spaltensteuereinheit 500 die empfangenen Adresseneingaben 222, um einen Spaltenwähldatensatz zu bilden, der danach zur Dual-Modus-Speichereinheit 400 übertragen wird. Auf diese Weise kann die Spaltensteuereinheit 500 gewählte Speicherzellenspalten, die in der Dual-Modus-Speichereinheit 400 enthalten sind, wahlweise freigeben, um Eingangsdaten 210 zu empfangen. Auf ähnliche Weise empfängt eine Zeilensteuereinheit 300 mittels einer Eingangssteuereinheit 900 die erste Anzahl Adresseneingänge 220, die bei einer Ausführungsform für die niedrigstwertigen Adressenbits (oder LSB) repräsentativ sind, und gibt an die Dual-Modus-Speichereinheit 400 ein Leseadressensignal 310 oder ein Schreibadressensignal 320 aus.
  • Die Dual-Modus-Speichereinheit 400 kommuniziert mittels eines Ausgabesignals 650 mit einer Ausgangssteuereinheit 600, wenn sie so konfiguriert ist, dass sie als RAM arbeitet, und mit einer globalen Anpassungs- bzw. Gleichheitausgabe 800, wenn sie so konfiguriert ist, dass sie als CAM arbeitet. Die Ausgangssteuereinheit 600 kann an (nicht gezeigte) Ausgabetreiber gekoppelt sein, die an wenigstens einen der mehreren horizontalen Leiter oder an wenigstens einen der mehreren vertikalen Leiter programmierbar gekoppelt sind. 3A ist ein funktionelles Blockschaltbild eines Dual-Modus-Speicherblocks 202a, der gemäß einer Ausführungsform der Erfindung mittels eines R/C-Modus-Steuereingangs 225 als Assoziativspeicher oder Direktzugriffsspeicher rekonfigurierbar ist. Bei dieser Ausführungsform bilden ein Dateneingaberegister 910, ein Datenpuffer 912, ein Komparand 914, ein Adressenregister 970, ein Adressenregister 972, eine Adressensteuerung 960, eine Lese/Schreib-Freigabeeinheit 965 und ein Adressendecodierer 950 die Eingangssteuereinheit 900 der 2B.
  • Unter Bezugnahme auf die 3A kann die Dual-Modus-Speichereinheit 400 beim Betrieb als CAM mittels des Dateneingangsregisters 910 Eingangsdaten 210 empfangen. Der Datenpuffer 912 weist (nicht gezeigte) elektronische Puffer auf, die ihm erlauben, Eingangsdaten 210 zu empfangen und an die Eingänge der Komparandeneinheit 914 zu übertragen, die Eingabedaten 210 als angeforderte Daten in eine Warteschlange einordnet. Bei dieser Ausführungsform werden die angeforderten Daten mit in den Speicherzellenschaltungen der Dual-Modus-Speichereinheit 400 vorab gespeicherten Daten verglichen, so dass die Adressenstellen aller passenden bzw. gleichen gespeicherten Daten, die, soweit vorhanden, in der Dual-Modus-Speichereinheit 400 enthalten sind, bestimmt werden. Bei einer anderen Ausführungsform können die Eingangsdaten 210 vorteilhafter Weise direkt von den Eingängen einer wie in 3B gezeigten Komparandeneinheit 914 empfangen werden, wobei vorteilhafterweise alle mit Daten im Register 910 und Datenpuffer 912 verbundenen Verzögerungszeiten eliminiert sind.
  • Nach 3A wiederum kann bei Konfiguration der Dual-Modus-Speichereinheit 400 zum Arbeiten als RAM der Komperand 914 überbrückt werden, und die Eingangsdaten 210 werden mittels des Datenpuffers 912 direkt in die Dateneingänge einer Spaltensteuereinheit 500 eingegeben.
  • Bei der beschriebenen Ausführungsform wird mittels einer Adresseneingabeeinheit 970 und einer Adresseneingabeeinheit 972 Benutzeradresseninformation in die Dual-Modus-Speichereinheit 400 eingegeben. Die Benutzeradresseninformation kann in eine erste Gruppe Adresseneingangsdaten 220, die bei einer Ausführungsform die niedrigstwertigen Bits (oder LSB) einer Adresseninformation darstellt, und eine zweite Gruppe Adresseneingangsdaten 222, welche die höchstwertigen Bits (oder MSBs) einer Adresseninformation darstellt, syntaktisch analysiert bzw. lexikalisch untergliedert werden. Bei der beschriebenen Ausführungsform empfängt die Adresseneingabeeinheit 970 die erste Gruppe Adresseneingangsdaten 220 und überträgt sie zur Adressensteuerung 960. Die Adressensteuerung 960 erzeugt ihrerseits eine Ausgabe, die zum Adressencodierer 950 weitergeleitet wird. Beispielsweise kann die erste Gruppe Adresseneingangsdaten 220 aus sechs Datenbits, die für die fünf niedrigstwertigen Bits eines Multibit-Adressierungsschemas repräsentativ sind, und einem einzelnen Steuerbit bestehen. Bei diesem Szenario empfängt die Adresseneingabeeinheit 970 die fünf Adressenbits der ersten Gruppe Adresseneingabedaten 220 und das einzelne Steuersbit und überträgt sie zur Adressensteuerung 960. Die Adressensteuerung 960 erzeugt ihrerseits sechs Ausgaben, von denen fünf wählbare Adressestellen, die vom Adressendecodierer 950 empfangen werden können, darstellen und die sechste ein Lese/Schreib-Steuersignal ist, das direkt zur Zeilensteuereinheit 300 weitergeleitet wird. Bei dieser Ausführungsform weist der Adressendecodierer 950 (nicht gezeigte) Decodierer auf, welche die empfangenen fünf Adressenbits der ersten Gruppe Adresseneingangsdaten 220 in 32 Bits einer Lese/Schreib-Zeilenadresseninformation um wandeln. Diese 32 Adresseninformationsbits werden ihrerseits zur Zeilensteuerungseinheit 300 weitergeleitet.
  • Die zweite Gruppe Adresseneingangsdaten 222 kann mittels der Adresseneingabeeinheit 972 und der Spaltensteuereinheit 500 in die Dual-Modus-Speichereinheit 400 eingegeben werden. Beim Betrieb empfängt die Adresseneingabeeinheit 972 die zweite Gruppe Adresseneingangsdaten 222 und leitet sie zu den Adresseneingängen der Spaltensteuerungseinheit 500 weiter. Beispielsweise kann die von der Adresseneingabeeinheit 972 empfangenen Adresseninformation fünf Adressenbits, die den höchstwertigen Bits eines Multibit-Adressierungsschemas zugeordnet sind, und ein Schreibfreigabebit aufweisen. Die fünf höchstwertigen Adressenbits können zur Spaltensteuereinheit 500 übertragen werden. Die Spaltensteuereinheit 500 weist einen (nicht gezeigten) Spaltenadressendecodierer auf, der die fünf höchstwertigen Bits decodiert und 32 Spaltenadressenbits erzeugt. Das von der Adresseneingabeeinheit 972 ausgegebenen Schreibfreigabebit bildet eine Eingabe in die Lese/Schreib-Steuereinheit 965, welche das in die Zeilensteuereinheit 300 eingegebene Lesefreigabe-RE966- und Schreibfreigabe-WE967-Signal erzeugt.
  • Wie oben beschrieben empfängt die Zeilensteuereinheit 300 die vom Adressendecodierer 950 erzeugte Adresseninformation. Bei der beschriebenen Ausführungsform empfängt die Zeilensteuereinheit 300 die vom Adressendecodierer 950 erzeugten Adressenbits. Die Zeilensteuereinheit 300 weist (nicht gezeigte) Zwei-zu-Eins-Demultiplexer auf, welche zwei Gruppen Adressenbits erzeugen, von denen eine mit einer Leseadresse korrespondiert und die andere mit einer Schreibadresse korrespondiert. Gibt beispielsweise der Adressendecodierer 950 an die Zeilensteuereinheit 300 32 Lese/Schreib-Adressenbits aus, erzeugen die in der Zeilensteuereinheit 300 enthaltenen Zwei-zu-Eins-Demultiplexer ein Leseadressensignal 300 aus 32 Bits und ein Schreibadressensignal 320 aus 32 Bits. Bei dieser Ausführungsform empfängt die Zeilensteuereinheit 300 auch komplementäre Signale RE966 und WE967, die bestimmen, ob die Adresseninformation am Ausgang der Zeilensteuereinheit 300 zum Lesen aus der oder Schreiben in die Dual-Modus-Speichereinheit 400 zu benutzen ist.
  • Bei der beschriebenen Ausführungsform weist eine Ausgangseinheit 600 mehrere Ausgangspufferregister 620 und einen Prioritätscodierer 610 auf. Die mehreren Ausgangspufferregister 620 können von der Dual-Modus-Speichereinheit 400 ausgegebene Daten in eine Warteschlange einordnen und sie als Ausgangsdaten 622 zu (nicht gezeigte) Ausgangstreibern übertragen. Bei einer anderen Ausführungsform können die Ausgangspufferregister 620 Ausgangsdaten zu einem in der programmierbaren Logikeinrichtung enthaltenen anderen DMMB oder EAB übertragen, um durch Kaskadierung zusätzlicher Speicherblöcke größere RAM-Blöcke zu bilden. Der Prioritätscodierer 620 kann die globalen Gleichheitsdaten 800 empfangen, welche die Gleichheitsadressen anzeigen, wenn die Dual-Modus-Speichereinheit 400 als CAM konfiguriert ist. Der Prioritätscodierer 620 kann ein SYSTEMGLEICHHEIT-Signal 612 übertragen, welches einen GLEICHHEIT- oder einen NICHTGLEICH-Zustand anzeigt. Der Prioritätscodierer 610 kann auch mehrere Gleichheitsadressen speichern und ein GLEICHHEITKENNZEICHEN-Signal 614 erzeugen, das die Gesamtzahl von in der Dual-Modus-Speichereinheit 400 enthaltenen Gleichheitsadressen anzeigt.
  • Bei einer Ausführungsform weist die Dual-Modus-Speichereinheit 400 ein Array aus Dual-Modus-Speicherzellen 410 auf, von denen eine die in 4A gezeigte Dual-Modus-Speicherzelle 420 sein kann. Die Dual-Modus-Speicherzelle 420 weist eine Datenspeicherschaltung 460, eine Vergleichsschaltung 430 und eine Isolatorschaltung 450 auf.
  • Bei der beschriebenen Ausführungsform weist die Speicher-Speicherschaltung 460 einen p-Kanal-Transistor 464 und einen n-Kanal-Transistor 466, einen p-Kanal-Transistor 462 und einen n-Kanal-Transistor 468 auf, die so konfiguriert sind, dass sie eine statische Direktzugriffsspeicherzelle bzw. SRAM-Zelle bilden. Die SRAM-Zelle ist wie beschrieben als eine dem Fachmann bekannte kreuzgekoppelte Inverterrückkopplungsschaltung konfiguriert, die mit einer digitalen Eins und einer digitalen Null korrespondierende digitale Daten speichern kann. Bei einer anderen Ausführungsform kann die Speicher-Speichereinheit 460 als eine Dualport-Speicherzelle, eine Nurlese-Speicherzelle bzw. ROM-Zelle oder irgendeine andere dem Fachmann bekannte Schaltung sein, die Daten speichern kann.
  • Bei der beschriebenen Ausführungsform ist ein E/A-Knoten 965 mit den Gates der Transistoren 464 und 466 sowie mit der Drain des Transistors 462 und der Source des Transistors 468 elektrisch verbunden. Auf ähnliche Weise ist ein zweiter E/A-Knoten 463 mit den Gates der Transistoren 462 und 468 sowie mit der Drain des Transistors 464 und der Source des Transistors 466 elektrisch verbunden. So wie sie konfiguriert sind, sind die Sources der Transistoren 464 und 462 elektrisch an Vcc gekoppelt, während die Drains der Transistoren 466 und 468 an Masse bzw. Erde gekoppelt sind.
  • Die Speicher-Speicherschaltung 460 kann mittels des n-Kanal-Durchgangsgate-Transistors 472 elektrisch an eine erste Datenleitung 424 und eine Wortleitung 523 gekoppelt sein. So wie er konfiguriert ist, weist der Transistor 472 eine elektrisch mit dem ersten E/A-Knoten 465 verbundene Source, eine elektrisch mit der Datenleitung 424 verbundene Drain und ein elektrisch mit der Wortleitung 523 verbundenes Gate auf. Außerdem kann die Speicher-Speicherschaltung 460 mittels eines n-Kanal-Durchgangsgate-Transistors 474 elektrisch an eine zweite Datenleitung 422 und eine Wortleitung 523 gekoppelt sein. Wie er konfiguriert ist, weist der Transistor 474 eine elektrisch mit dem zweiten E/A-Knoten 463 verbundene Source, eine elektrisch mit der Datenleitung 422 verbundene Drain und ein elektrisch mit der Wortleitung 523 verbundenes Gate auf. Geht die Wortleitung 523 auf HOCH, sind die Transistoren 472 und 474 im Wesentlichen leitend, so dass die E/A-Knoten 463 und 465 elektrisch an die Datenleitungen 422 bzw. 424 gekoppelt sind. Auf diese Weise kann der erste E/A-Knoten 465 der Speicher-Speicherschaltung 460 mittels der Datenleitung 424 zu speichernde Daten empfangen (für den Fachmann als SCHREIB-Operation bezeichnet) und gespeicherte Daten übertragen (dem Fachmann als LESE-Operation bekannt). Auf ähnliche Weise kann der zweite E/A-Knoten 463 mittels der Datenleitung 422 zu speichernde Daten empfangen und gespeicherte Daten übertragen. Beim Betrieb stellen der erste und zweite E/A-Knoten 465 und 463 komplementäre Datenzustände dar.
  • Die Vergleichsschaltung 430 weist einen n-Kanal-Transistors 432 auf, dessen Drain elektrisch mit der Source eines n-Kanal-Transistors 436 verbunden ist. Die Vergleichsschaltung 430 weist auch einen n-Kanal-Transistor 434 auf, dessen Drain elektrisch an die Source eines n-Kanal-Transistors 438 gekoppelt ist. Die Sources der n-Kanal-Transistoren 432 und 434 sind elektrisch mit einer Anpassungs- bzw. Gleichheitsleitung 440 verbunden, während die Drains der Transistoren 436 und 438 an Masse bzw. Erde gekoppelt sind. Die Gleichheitsleitung 440 ist elektrisch an die Sources der Transistoren 432 und 434 gekoppelt und bildet einen Abschnitt eines Eingangs zu einer globalen Gleichheitsleitung 800.
  • Die Isolationsschaltung 450 wirkt so, dass sie die Speicher-Speicherschaltung 460 und die Vergleichsschaltung 430 mittels der n-Kanal-Transistoren 454 und 452 koppelt. So wie er konfiguriert ist, weist der Transistor 454 eine elektrisch mit dem Gate des Transistors 436 der Vergleichsschaltung 430 verbundene Source und eine mit dem E/A-Knoten 465 der Speicher-Speicherschaltung 460 verbundene Drain auf. Ruf ähnliche Weise weist der Transistor 452 eine elektrisch mit dem Gate des Transistors 438 der Vergleichsschaltung 430 verbundene Source und eine elektrisch mit dem E/A-Knoten 463 der Speicher-Speicherschaltung 460 verbundene Drain auf.
  • Der R/C-Modus-Steuereingang 225 ist bei einem Knoten 455 derart elektrisch an die Gates der beiden Transistoren 454 und 452 gekoppelt, dass ein Leiten beider Transistoren bewirkt ist, wenn der R/C-Modus-Steuereingang 225 auf HOCH ist. Auf diese Weise ist die Daten-Speicherschaltung 460 elektrisch an die Vergleichsschaltung 430 gekoppelt. Ist alternativ dazu der R/C-Modus-Steuereingang 225 auf NIEDRIG, sind die Transistoren 452 und 454 im Wesentlichen nicht leitend, wobei sie die Speicher-Speicherschaltung 460 und die Vergleichsschaltung 430 effektiv isolieren. Auf diese Weise kann die Dual-Modus-Speichereinheit 400 als CAM arbeiten, wenn die Vergleichsschaltung 430 und die Speicher-Speicherschaltung 460 mittels der Isolatorschaltung 450 elektrisch gekoppelt sind. Alternativ dazu kann bei dieser Ausführungsform die Dual-Modus-Speicherschaltung 420 ausschließlich als RAM arbeiten, wenn die Vergleichsschaltung 430 und die Speicher-Speicherschaltung 460 mittels der Isolatorschaltung 450 elektrisch isoliert sind.
  • Wünscht beim Betrieb ein Benutzer, die Dual-Modus-Speichereinheit 400 zur ausschließlichen Benutzung als SRAM zu konfigurieren, wird der R/C-Modus-Steuereingang 225 auf NIEDRIG gebracht, so dass beide Transistoren 454 und 452 der Isolationsschaltung 450 auf AUS geschaltet sind. Auf diese Weise sind die Vergleichsschaltung 430 und die Gleichheitleitung 440 effektiv von der Speicher-Speicherschaltung 460 elektrisch getrennt. Auf diese Weise wird beim RAM-Modus al-lein die als SRAM konfigurierte Speicher-Speicherschaltung 460 die einzige interaktive Schaltung der Dual-Modus-Speicherzelle 420, so dass die Dual-Modus-Speichereinheit 400 ausschließlich als SRAM wirkt.
  • Wünscht alternativ dazu ein Benutzer, den Dual-Modus-Speicher 400 zur Verwendung als CAM zu konfigurieren, wird der R/C-Modus-Steuereingang 225 auf HOCH gebracht, so dass beide Transistoren 454 und 452 der Isolationsschaltung 450 auf EIN geschaltet werden, wodurch die Vergleichsschaltung 430 elektrisch an die E/A-Knoten 465 und 463 der Speicher-Speicherschaltung 460 gekoppelt wird. Auf diese Weise wirken im CAM-Modus sowohl die Vergleichsschaltungen 430 als auch die Gleichheitleitung 440 und die Speicher-Speicherschaltung 460 zusammen, um als Assoziativspeicher zu funktionieren.
  • Ist sie einmal konfiguriert, um als CAM zu arbeiten, können in der Speicher-Speicherschaltung 460 gespeicherte Daten dazu benutzt werden, mittels des Komparanden 914 mit jeder Dateneingabe verglichen zu werden. Beispielsweise bildet die Gleichheitleitung 440 einen Eingang zur globalen Gleichheitleitung 800, die elektrisch mit einem Datenregister ähnlich dem vorstehend beschrieben Prioritätscodierer 610 ver- bunden sein kann. Bei dieser Ausführungsform kann die Gleichheitleitung 440 vor der tatsächlichen Vergleichsoperation auf einen HOCH-Zustand vorgeladen sein. Ein im Komparator 914 in eine Warteschlange eingeordnetes einzelnes BIT eines Datenwortes DATA vorbestimmter Länge kann durch die wie vorstehend beschriebene Aktion der Spaltensteuereinheit 500 und Zeilensteuereinheit 300 die Datenleitungen 424 und 422 auf BIT bzw. sein Komplement /BIT treiben. Auf ähnliche Weise kann ein Datenwort COMP durch eine vorhergehende SCHREIB-Operation in einem Abschnitt des Speicherzellenarrays 410 vorab gespeichert werden. Bei dieser Ausführungsform kann das Datenwort COMP ein in der Speicher-Speicherschaltung 460 gespeichertes einzelnes Bit COMPBIT aufweisen. Ist beispielsweise bei einer vorhergehenden SCHREIB-Operation COMPBIT durch Treiben der Datenleitung 424 auf COMPBIT und der Datenleitung 422 auf /COMPBIT in die Speicher-Speicherschaltung 460 geschrieben worden, kann am E/A-Knoten 465 ein mit /COMPBIT korrespondierender Spannungspegel präsent sein. Ähnlich kann am E/A-Knoten 463 ein mit COMPBIT korrespondierender Spannungspegel präsent sein.
  • Während einer VERGLEICH-Operation wird die Wortleitung 523 durch die Aktion der Zeilensteuereinheit 300 auf NIEDRIG getrieben, was die Transistoren 472 und 474 auf AUS schaltet und die Ausgangsknoten 463 und 465 von den Datenleitungen 422 bzw. 424 entkoppelt. Da jedoch der R/C-Modus-Schalter auf HOCH ist, werden die E/A-Knoten 463 und 465 mittels der Gates der Transistoren 436 und 438 elektrisch an die Vergleichsschaltung 430 gekoppelt. Auf diese Weise führt der E/A-Knoten 463 dem Gate des Transistors 438 einen mit COMPBIT korrespondierenden ersten Spannungspegel zu, und der E/A-Knoten 465 führt dem Gate des Transistors 436 einen mit /COMPBIT korrespondierenden zweiten Spannungspegel zu.
  • Eine Bitanpassung bzw. Bitgleichheit tritt auf, wenn das in der Speicher-Speicherschaltung 460 gespeicherte COMPBIT und das im Komparanden 914 gespeicherte korrespondierende BIT im Wesentlichen ähnliche Spannungspegel aufweisen, die mit dem gleichen digitalen Wert korrespondieren. Auf diese Weise hält beim Auftreten einer Anpassung bzw. Gleichheit die Vergleichsschaltung 430 die Gleichheitleitung 440 auf ihrem vorgeladenen HOCH-Zustand. Sind jedoch COMPBIT und BIT nicht gleich, das heißt von im Wesentlichen verschiedenen Spannungspegeln, so dass sie als verschiedenen digitale Werte zu betrachten sind, agiert die Vergleichsschaltung 430 so, dass sie die Gleichheitleitung 440 auf im Wesentlichen Masse bzw. Erde oder null Volt bringt, was von einem an die globale Gleichheitleitung 800 gekoppelten (nicht gezeigten) Schaltkreis als ein NICHTGLEICH-Zustand verstanden wird. Alternativ dazu müssen für das Auftreten eines GLEICHHEIT-Zustandes alle Bits von DATA und COMP gleich sein, was dadurch angezeigt wird, dass alle Gleichheitleitungen auf HOCH bleiben.
  • Korrespondiert beispielsweise COMPBIT mit digital „1", wird der E/A-Knoten 465 auf NIEDRIG, d. h. einen mit digital „0" oder im Wesentlichen 0 Volt korrespondierenden Spannungspegel getrieben, was den Transistor 436 auf AUS schaltet. Ähnlich wird der E/A-Knoten 463 auf HOCH, d. h. einen mit digital „1" oder im Wesentlichen Vcc korrespondierenden Spannungspegel getrieben, was den Transistor 438 auf EIN schaltet. Korrespondiert auch BIT mit digital „1" (zeigt GLEICHHEIT an), wird die Datenleitung 424 auf HOCH getrieben, was den Transistor 432 auf EIN schaltet. Ähnlich wird die Datenleitung 422 auf NIEDRIG getrieben, was den Transistor 434 auf AUS schaltet. Auf diese Weise bleibt die Gleichheitleitung 440 auf HOCH. Sind alternativ dazu COMPBIT und BIT nicht gleich, bringt entweder das Paar Transistoren 432, 436 oder das Paar Transistoren 434, 438 die Gleichheitleitung 440 auf NIEDRIG, was einen NICHTGLEICH-Zustand anzeigt.
  • 4B ist eine Darstellung eines Abschnitts eines Arrays aus Dual-Modus-Speicherzellen 410, das die in der Dual-Modus-Speichereinheit 400 gemäss einer Ausführungsform der Erfindung enthaltenen Dual-Modus-Speicherzellen 420a–420d aufweist. Bei dieser Ausführungsform führt die Spaltensteuereinheit 500 empfangene Daten mittels eines Spaltendatensignals 520 sowie Adressenauswahldaten mittels eines Spaltenadressensignals 530 zu. Als RAM konfiguriert gibt das Spalten adressensignal 530 wahlweise verschiedene der Datenleitungen 421–424 frei, um den Empfang von während einer SCHREIB-Operation zu speichernden Daten oder die Übertragung von Daten zur Ausgabe während einer LESE-Operation zu erleichtern. Die Zeilensteuereinheit 300 gibt ein Leseadressensignal 310 oder Schreibadressensignal 320 aus, das wahlweise verschiedene Wortleitungen wie beispielsweise 523 und 521 freigibt oder sperrt. Die Datenleitungen 421–424 sind an mehrere Lese- bzw. Abtastverstärker 470–472 gekoppelt, welche die von den verschiedenen E/A-Knoten von im Array 410 enthaltenen Dual-Modus-Speicherzellen ausgegebenen Spannungspegel in eine Form auflösen, die mit zu den Ausgangsregistern 620 übertragenden Daten konsistent sind. Wenn durch die Aktion des R/C-Modus-Eingangs 225 als CAM konfiguriert, sind je jede eine von mehreren Gleichheitleitungen wie beispielsweise 440 und 442 zur Bildung der Ausgangsgleichheitleitung 800 gekoppelt, welche die globalen Gleichheitsdaten zum Prioritätscodierer 610 treibt.
  • Wenn die vorstehende Erfindung zum Zweck des klaren Verständnisses in gewissen Einzelheiten beschrieben worden ist, ist dies so zu verstehen, dass gewisse Änderungen und Modifikationen im Rahmen bzw. Schutzbereich der beigefügten Ansprüche in die Praxis umgesetzt werden können. Es sei darauf hingewiesen, dass es viele alternative Wege zur Implementierung der vorliegenden Erfindung gibt. Beispielsweise kann bei einer Ausführungsform der Direktzugriffsspeicher-Modus als statischer Direktzugriffsspeicher (SRAM), Dualport-Speicher oder Nurlesespeicher (ROM) betreibbar sein. Der Fachmann sieht ein, dass die tatsächliche Struktur der Speicherzelle weitestgehend variiert werden kann.
  • Die Erfindung ist im Kontext einer programmierbaren Logikeinrichtung beschrieben worden, die eine Eingebettet Array-Block-Architektur aufweist. Es ist jedoch einzusehen, dass die Erfindung auch in anderen programmierbaren Logikarchitekturen wie beispielsweise Architekturen vom Typ des feldprogrammierbaren Gate-Arrays implementiert werden kann. Außerdem wurde bei der beschriebenen Ausführungsform jeder der Eingebettet-Array-Blöcke so beschrieben, dass er ein Dual-Modus-Speicherblock ist. Dies ist jedoch wiederum nicht erforderlich. Vielmehr können einige der Eingebettet-Array-Blöcke als Dual-Modus-Speicher konfiguriert sein, während andere als Einzel-Modus-Speicher oder irgendeine andere geeignete Struktur konfiguriert sind. Deshalb sind die vorliegenden Beispiele als illustrativ und nicht einschränkend zu betrachten, und die Erfindung ist nicht auf die hier gegebenen Details beschränkt, sondern kann im Rahmen bzw. Schutzbereich der beigefügten Ansprüche modifiziert werden.

Claims (17)

  1. Dual-Modus-Speicherzelle (420), ausgebildet zum Funktionieren in einem ersten Modus als Assoziativspeicher und zum Funktionieren in einem zweiten Modus als Direktzugriffsspeicher, wobei die Dual-Modus-Speicherzelle aufweist: eine Datenspeicherschaltung (460) zum Speichern von Daten, eine Vergleichsschaltung (430) zum Vergleichen von in der Datenspeicherschaltung (460) gespeicherten Daten mit angeforderten Daten, eine Gleichheitsleitung (440) zum Anzeigen, ob die gespeicherten Daten und die angeforderten Daten gleich sind, und eine Isolationsschaltung (450) zum wahlweisen Isolieren der Datenspeicherschaltung (460) von der Vergleichsschaltung (430) und Gleichheitsleitung (440).
  2. Dual-Modus-Speicherzelle (420) nach Anspruch 1, wobei die Datenspeicherschaltung (460) einen ersten (465) und einen zweiten Ausgangsknoten (463) aufweist und die Vergleichsschaltung (430) eine erste (432, 436) und eine zweite Komparatorschaltung (434, 438) aufweist.
  3. Dual-Modus-Speicherzelle (420) nach Anspruch 2, wobei die Isolationsschaltung (450) aufweist: einen ersten isolierenden Transistor (454), der die erste Komparatorschaltung (432, 436) der Vergleichsschaltung (430) und den ersten Ausgangsknoten (465) der Datenspeicherschaltung (460) der Vergleichsschaltung (430) elektrisch koppelt, und einen zweiten isolierenden Transistor (452), der die zweite Komparatorschaltung (434, 438) der Vergleichsschaltung (430) an den zweiten Ausgangsknoten (463) der Datenspeicherschaltung (460) elektrisch koppelt, wobei der erste (454) und zweite isolierende Transistor (452) jeweils mittels eines Modussteuerschalt-Schaltung (225) aktiviert werden.
  4. Programmierbare Logikeinrichtung (200), mit: einem Array aus programmierbaren, miteinander verbundenen Logikzellen (204), das zur Verwendung bei der Implementierung programmierter Logikfunktionen geeignet ist, einem Dual-Modus-Speicherblock (202), der programmierbar an das Array aus Logikzellen (204) gekoppelt ist, wobei der Dual-Modus-Speicherblock (202) ein Array (410) aus Dual-Modus-Speicherzellen nach einem der Ansprüche 1 bis 3 aufweist, einer Modussteuerschalt-Schaltung (225), die zum wahlweisen Freigeben der Dual-Modus-Speicherzellen (420) zum Arbeiten in entweder dem ersten oder zweiten Modus geeignet ist.
  5. Programmierbare Logikeinrichtung (200) nach Anspruch 4, wobei die Isolationsschaltung (450) an die Modussteuerschalt-Schaltung (225) gekoppelt und so ausgebildet ist, dass sie im ersten Modus die Vergleichsschaltung (430) und die Gleichheitsleitung (440) mit der Datenspeicherschaltung (460) elektrisch koppelt und im zweiten Modus die Vergleichsschaltung (430) und die Gleichheitsleitung (440) von der Datenspeicherschaltung (460) elektrisch entkoppelt.
  6. Programmierbare Logikeinrichtung (200) nach Anspruch 4 oder 5, wobei die Vergleichsschaltungen (430) eine Gleichheitsadresse ausgibt, wenn die gespeicherten Daten und die angeforderten Daten gleich sind.
  7. Programmierbare Logikeinrichtung (200) nach einem der Ansprüche 4 bis 6, wobei das Array (410) aus Dual-Modus-Speicherzellen in mehreren Dual-Modus-Speicherzellen-Spalten und -Zeilen angeordnet sind, wobei jede Dual-Modus- Speicherzellen-Spalte mehrere Dual-Modus-Speicherzellen-Spalten-Dateneingänge, mehrere Dual-Modus-Speicherzellen-Spalten-Adresseneingänge und wenigstens einen Dual-Modus-Speicherzellen-Spalten-Ausgang aufweist.
  8. Programmierbare Logikeinrichtung (200) nach Anspruch 7, wobei der Dual-Modus-Speicherblock (202) aufweist: eine Spaltensteuereinheit (200), die zum Wählen gewünschter Dual-Modus-Speicherzellen-Spalten geeignet ist, wobei die Spaltensteuereinheit (500) mehrere Spaltensteuereinheits-Dateneingänge, mehrere Spaltensteuereinheits-Adresseneingänge und mehrere Spaltensteuereinheits-Datenausgänge, die an gewählte Dual-Modus-Speicherzellen-Spalten-Dateneingänge gekoppelt sind, aufweist, eine Zeilensteuereinheit (300), die mehrere Zeilensteuereinheits-Adresseneingänge und wenigstens einen Zeilensteuereinheits-Ausgang aufweist, eine Eingangssteuereinheit (900), die ausgebildet ist zum programmierbaren Koppeln mehrerer programmierbarer Dateneingangsleitungen (210) an die Spaltensteuereinheits-Dateneingänge, zum programmierbaren Koppeln einer ersten Anzahl programmierbarer Adresseneingangsleitungen (210) an die Spaltensteuereinheits-Adresseneingänge, und zum programmierbaren Koppeln einer zweiten Anzahl programmierbarer Adresseneingangsleitungen (220) an die Zeilensteuereinheits-Adresseneingänge, und eine Ausgangseinheitsteuerung (600), die den wenigstens einen Dual-Modus-Speicherzellen-Spalten-Ausgang programmierbar an mehrere Ausgangstreiber (610) koppelt.
  9. Programmierbare Logikeinrichtung (200) nach Anspruch 7 oder 8, wobei jede Dual-Modus-Speicherzelle (420) außerdem aufweist: mehrere Dual-Modus-Speicherzellen-Datenleitungen, die an die Datenspeicherschaltung, die zugeordneten Dual-Modus- Speicherzellen-Dateneingänge und die zugeordneten Dual-Modus-Speicherzellen-Spalten-Ausgänge gekoppelt sind, und eine Zeilenleitung, die wahlweise an einen Zeilensteuereinheits-Ausgang gekoppelt ist.
  10. Programmierbare Logikeinrichtung nach Anspruch 8 oder 9, wobei die Eingangssteuereinheit (900) außerdem aufweist: eine Komparandeneinheit (914) mit einer ersten Anzahl Komparandeneingängen, die programmierbar an die mehreren programmierbaren Dateneingangsleitungen gekoppelt sind, und einem Komparandenausgang, der an die mehreren Spaltensteuereinheits-Dateneingänge gekoppelt ist, wobei die Komparandeneinheit zum Speichern der angeforderten Daten verwendet ist, eine Dateneingabe-Einheit (910) mit mehreren Dateneingabe-Eingängen, die programmierbar an die mehreren programmierbaren Dateneingangsleitungen gekoppelt sind, und einem Dateneingabe-Ausgang, der an die mehreren Spaltensteuereinheits-Dateneingänge gekoppelt ist, eine erste Adresseneinheit (970) die programmierbar an die erste Anzahl programmierbarer Adressenleitungen gekoppelt ist, wobei die erste Adresseneinheit mehrere erste Adressenausgänge aufweist, die an die mehreren Spaltensteuereinheits-Adresseneingänge gekoppelt sind, und eine zweite Adresseneinheit (972), die programmierbar an eine zweite Anzahl programmierbarer Adressenleitungen gekoppelt ist, wobei die zweite Adresseneinheit mehrere zweite Adressenausgänge aufweist, die an die Steuereinheits-Adresseneingänge gekoppelt sind.
  11. Programmierbare Logikeinrichtung nach einem der Ansprüche 8 bis 10, wobei die Ausgangssteuereinheit außerdem aufweist: einen Prioritätscodierer (610), der die Gleichheitsadresse empfängt, und mehrere Ausgangspuffer (620) mit Ausgangspuffereingängen, die an den wenigstens einen Assoziativspeicherzellen- Spalten-Ausgang und an mehrere programmierbar an die mehreren Ausgangstreiber gekoppelten Ausgänge gekoppelt sind.
  12. Programmierbare Logikeinrichtung nach Anspruch 11, wobei der Prioritätscodierer (610) ein die Zahl Gleichheitsadressen für die angeforderten Daten anzeigendes Systemübereinstimmungs-Kennzeichen erzeugen kann.
  13. Programmierbare Logikeinrichtung nach einem der Ansprüche 4 bis 12, wobei der Dual-Modus-Speicherblock im zweiten Modus als statischer Direktzugriffsspeicher funktioniert.
  14. Programmierbare Logikeinrichtung nach Anspruch 13, wobei der Dual-Modus-Speicherblock ein Array aus Dual-Modus-Speicherzellen aufweist, wobei jede Dual-Modus-Speicherzelle zum Arbeiten als Assoziativspeicherzelle und als statische Direktzugriffsspeicherzelle geeignet ist, wobei die programmierbare Logikeinrichtung außerdem eine Modussteuerschalt-Schaltung (225) aufweist, die zum wahlweisen Freigeben der Dual-Modus-Speicherzellen für das Arbeiten als entweder Assoziativspeicherzellen oder Direktzugriffsspeicherzellen geeignet ist.
  15. Programmierbare Logikeinrichtung nach einem der Ansprüche 4 bis 14, wobei der Inhaltsadressierbare Speicherblock zum Ausgeben von mit angeforderten Datenwörtern korrespondierenden Adressenstellen ausgebildet ist.
  16. Programmierbare Logikeinrichtung nach Anspruch 15, mit einer an den Assoziativspeicherblock gespeicherten Modussteuerschalt-Schaltung (225), wobei die Modussteuerschalt-Schaltung (225) den Assoziativspeicherblock zum Arbeiten als Direktzugriffsspeicherblock freigibt.
  17. Programmierbare Logikeinrichtung nach Anspruch 16, wobei die Modussteuerschalt-Schaltung (225) die Assoziativspeicher zelle zum Arbeiten als ein statischer Direktzugriffsspeicherblock freigibt.
DE69810995T 1997-05-01 1998-04-23 Rekonfigurierbarer Dual-Modus-Speicher in programmierbaren logischen Einrichtungen Expired - Lifetime DE69810995T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US4527297P 1997-05-01 1997-05-01
US45272P 1997-05-01
US08/918,687 US5940852A (en) 1997-05-01 1997-08-21 Memory cells configurable as CAM or RAM in programmable logic devices
US918687 1997-08-21

Publications (2)

Publication Number Publication Date
DE69810995D1 DE69810995D1 (de) 2003-03-06
DE69810995T2 true DE69810995T2 (de) 2004-01-08

Family

ID=26722579

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69810995T Expired - Lifetime DE69810995T2 (de) 1997-05-01 1998-04-23 Rekonfigurierbarer Dual-Modus-Speicher in programmierbaren logischen Einrichtungen

Country Status (3)

Country Link
US (2) US5940852A (de)
EP (1) EP0883132B1 (de)
DE (1) DE69810995T2 (de)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199140B1 (en) * 1997-10-30 2001-03-06 Netlogic Microsystems, Inc. Multiport content addressable memory device and timing signals
US6240485B1 (en) * 1998-05-11 2001-05-29 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6219748B1 (en) 1998-05-11 2001-04-17 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a content addressable memory device
US6144573A (en) 1998-06-26 2000-11-07 Altera Corporation Programmable logic devices with improved content addressable memory capabilities
US6460112B1 (en) 1999-02-23 2002-10-01 Netlogic Microsystems, Llc Method and apparatus for determining a longest prefix match in a content addressable memory device
US6499081B1 (en) 1999-02-23 2002-12-24 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a segmented content addressable memory device
US6892272B1 (en) 1999-02-23 2005-05-10 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a content addressable memory device
US6574702B2 (en) 1999-02-23 2003-06-03 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a content addressable memory device
US6539455B1 (en) 1999-02-23 2003-03-25 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a ternary content addressable memory device
US6407576B1 (en) * 1999-03-04 2002-06-18 Altera Corporation Interconnection and input/output resources for programmable logic integrated circuit devices
US6137707A (en) * 1999-03-26 2000-10-24 Netlogic Microsystems Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device
US6317349B1 (en) 1999-04-16 2001-11-13 Sandisk Corporation Non-volatile content addressable memory
IT1308100B1 (it) * 1999-05-17 2001-11-29 Cselt Centro Studi Lab Telecom Perfezionamenti alle memorie indirizzabili mediante il contenuto
SE518883C2 (sv) 1999-05-19 2002-12-03 Switchcore Ab Cam/ram-minnesanordning med en skalbar struktur
US6166938A (en) * 1999-05-21 2000-12-26 Sandisk Corporation Data encoding for content addressable memories
US6157558A (en) * 1999-05-21 2000-12-05 Sandisk Corporation Content addressable memory cell and array architectures having low transistor counts
US6298068B1 (en) * 1999-08-31 2001-10-02 Telco Systems, Inc. Methods and apparatus for ISDN communications with dual mode access to interface apparatus on-board memory
US7272027B2 (en) * 1999-09-23 2007-09-18 Netlogic Microsystems, Inc. Priority circuit for content addressable memory
US7143231B1 (en) 1999-09-23 2006-11-28 Netlogic Microsystems, Inc. Method and apparatus for performing packet classification for policy-based packet routing
US6804744B1 (en) * 1999-10-27 2004-10-12 Lara Technology, Inc. Content addressable memory having sections with independently configurable entry widths
US6154384A (en) * 1999-11-12 2000-11-28 Netlogic Microsystems, Inc. Ternary content addressable memory cell
US7185293B1 (en) 1999-11-29 2007-02-27 Cellot, Inc. Universal hardware device and method and tools for use therewith
US6864710B1 (en) 1999-12-30 2005-03-08 Cypress Semiconductor Corp. Programmable logic device
US6388464B1 (en) 1999-12-30 2002-05-14 Cypress Semiconductor Corp. Configurable memory for programmable logic circuits
US6134135A (en) * 2000-01-10 2000-10-17 Switchcore, A.B. Mask arrangement for scalable CAM/RAM structures
US6163473A (en) * 2000-02-02 2000-12-19 Hewlett-Packard Company Memory for storing encoded mask and data bits
US6640220B1 (en) * 2000-03-14 2003-10-28 Aeroflex Utmc Microelectronic Systems, Inc. Search coprocessor subsystem having multiple search engines and dedicated key-table memory for connection to a computer system
US6608500B1 (en) 2000-03-31 2003-08-19 Cypress Semiconductor Corp. I/O architecture/cell design for programmable logic device
US6362992B1 (en) 2000-10-06 2002-03-26 Purple Ray, Inc. Binary-ternary content addressable memory
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US7167471B2 (en) * 2001-08-28 2007-01-23 International Business Machines Corporation Network processor with single interface supporting tree search engine and CAM
KR100406924B1 (ko) * 2001-10-12 2003-11-21 삼성전자주식회사 내용 주소화 메모리 셀
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US7092311B1 (en) * 2002-03-15 2006-08-15 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that utilize priority class detectors to identify highest priority matches in multiple CAM arrays and methods of operating same
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US6982891B2 (en) * 2003-06-10 2006-01-03 Lsi Logic Corporation Re-configurable content addressable/dual port memory
US7796464B1 (en) 2003-06-27 2010-09-14 Cypress Semiconductor Corporation Synchronous memory with a shadow-cycle counter
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7372720B1 (en) 2005-02-16 2008-05-13 Altera Corporation Methods and apparatus for decreasing soft errors and cell leakage in integrated circuit structures
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US7366830B1 (en) 2005-09-01 2008-04-29 Netlogic Microsystems, Inc. Row expansion reduction by inversion for range representation in ternary content addressable memories
US7814266B1 (en) 2005-09-01 2010-10-12 Netlogic Microsystems, Inc. Partial row expansion by logically combining range representation values in content addressable memory
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US7893772B1 (en) 2007-12-03 2011-02-22 Cypress Semiconductor Corporation System and method of loading a programmable counter
US20100057685A1 (en) * 2008-09-02 2010-03-04 Qimonda Ag Information storage and retrieval system
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
EP2478521A2 (de) 2009-09-16 2012-07-25 Rambus Inc. Konfigurierbare speicherbanken einer speichervorrichtung
US9583190B2 (en) * 2011-11-11 2017-02-28 Altera Corporation Content addressable memory in integrated circuit
US8982598B2 (en) 2012-04-18 2015-03-17 Rambus Inc. Stacked memory device with redundant resources to correct defects
EP2873075A4 (de) * 2012-07-10 2016-03-23 Hewlett Packard Development Co Statischer direktzugriffsspeicher mit listensortierung
US9972368B2 (en) * 2016-09-30 2018-05-15 Altera Corporation Circuitry for reducing leakage current in configuration memory
US10302695B2 (en) * 2017-10-30 2019-05-28 Stmicroelectronics International N.V. Low area parallel checker for multiple test patterns
US10782759B1 (en) 2019-04-23 2020-09-22 Arbor Company, Lllp Systems and methods for integrating batteries with stacked integrated circuit die elements
EP3959717A4 (de) * 2019-04-23 2023-05-31 Arbor Company LLLP Systeme und verfahren zur rekonfigurierung von zellenanordnungen mit dualer funktion
JP7402357B2 (ja) 2020-06-29 2023-12-20 アーバー・カンパニー・エルエルエルピイ プロセッサ非依存5Gモデムを有する3Dダイ・スタッキングの再構成可能プロセッサ・モジュールを使用するモバイルIoTエッジ・デバイス

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US34363A (en) * 1862-02-11 Improvement in machinery for cleaning cotton
JPS60136097A (ja) * 1983-12-23 1985-07-19 Hitachi Ltd 連想メモリ装置
EP0183885B1 (de) * 1984-11-30 1989-04-05 International Business Machines Corporation Konventioneller Zellenspeicher mit RAM oder assoziativem Speicherbetrieb
US5550782A (en) * 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
US5383146A (en) * 1992-06-08 1995-01-17 Music Semiconductors, Inc. Memory with CAM and RAM partitions
GB9303084D0 (en) * 1993-02-16 1993-03-31 Inmos Ltd Programmable logic circuit
WO1994024672A1 (en) * 1993-04-19 1994-10-27 Oki Electric Industry Co., Ltd. Circuit for decoding variable-length code, and system for decoding variable-length code which uses the circuit
US5490102A (en) * 1994-06-15 1996-02-06 Intel Corporation Low capacitance content-addressable memory cell
JPH0863975A (ja) * 1994-08-25 1996-03-08 Fujitsu Ltd スタティックramおよびこのスタティックramを有する処理装置
US5706224A (en) * 1996-10-10 1998-01-06 Quality Semiconductor, Inc. Content addressable memory and random access memory partition circuit

Also Published As

Publication number Publication date
EP0883132B1 (de) 2003-01-29
US5940852A (en) 1999-08-17
EP0883132A3 (de) 1999-07-28
EP0883132A2 (de) 1998-12-09
US6058452A (en) 2000-05-02
DE69810995D1 (de) 2003-03-06

Similar Documents

Publication Publication Date Title
DE69810995T2 (de) Rekonfigurierbarer Dual-Modus-Speicher in programmierbaren logischen Einrichtungen
DE4417575C2 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE4107889C2 (de) Halbleiterspeichereinrichtung und N-Bit-Datenpfad
DE69534812T2 (de) Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration
DE19510902A1 (de) Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern
DE3645221C2 (de)
DE19740695C2 (de) Datenspeicher mit Mehrebenenhierarchie
DE4018296C2 (de)
DE102004045527A1 (de) Konfigurierbare Logikschaltungsanordnung
DE10354501B4 (de) Logik-Schaltkreis-Anordnung
DE60129269T2 (de) Speicherschaltung für eine programmierbare logische integrierte Schaltungsanordnung
EP0282976B1 (de) Verfahren und Schaltungsanordnung zum parallelen Einschreiben von Daten in einen Halbleiterspeicher
DE3441473A1 (de) Halbleiterspeicher
EP0224887B1 (de) Gate Array Anordnung in CMOS-Technik
US6263400B1 (en) Memory cells configurable as CAM or RAM in programmable logic devices
DE69835547T2 (de) Inhaltsadressierbares Speichersystem
EP0052669A1 (de) Mehrfach adressierbarer hochintegrierter Halbleiterspeicher
EP0126784B1 (de) Halbleiterspeicher
DE1295656B (de) Assoziativer Speicher
WO2005088838A1 (de) Logik-grundzelle, logik-grundzellen-anordnung und logik-vorrichtung
EP0359743B1 (de) Cmos-ram speicher auf einer gate array-anordnung
DE4007615C2 (de) ROM Schaltung
DE102004025581B4 (de) Logik-Grundzelle und Logik-Grundzellen-Anordnung
DE60003989T2 (de) Seitenprogrammiermodus für EEPROM und zugehörige Schaltung
DE4211950A1 (de) Halbleiter-speicheranordnung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition