DE10249204A1 - Rekonfigurierbare digitale Logikeinheit - Google Patents

Rekonfigurierbare digitale Logikeinheit

Info

Publication number
DE10249204A1
DE10249204A1 DE10249204A DE10249204A DE10249204A1 DE 10249204 A1 DE10249204 A1 DE 10249204A1 DE 10249204 A DE10249204 A DE 10249204A DE 10249204 A DE10249204 A DE 10249204A DE 10249204 A1 DE10249204 A1 DE 10249204A1
Authority
DE
Germany
Prior art keywords
logic
unit according
logic unit
cells
microprogram
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
Application number
DE10249204A
Other languages
English (en)
Inventor
Joachim Bangert
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE10249204A priority Critical patent/DE10249204A1/de
Publication of DE10249204A1 publication Critical patent/DE10249204A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Abstract

Rekonfigurierbare digitale Logikeinheit, umfassend: DOLLAR A - eine Mehrzahl von Logikzellen (19, 26) mit konfigurierbaren Eigenschaften; DOLLAR A - einen Speicher (13) mit einer Mehrzahl von Mikroprogrammen (14, 16), enthaltend Informationen betreffend die Funktionalität mehrerer Logikzellen (19, 26), wobei mindestens eines der Mikroprogramme (14, 16) in Abhängigkeit von einer bestimmten Anwendung zumindest während des laufenden Betriebs der Logikeinheit reprogrammierbar ist; DOLLAR A - ein Mittel zum Auswählen wenigstens eines Mikroprogramms (14, 16); DOLLAR A - ein Mittel zum Konfigurieren von Logikzellen entsprechend den Funktionalitätsinformationen des ausgewählten Mikroprogramms (14, 16) zumindest während des laufenden Betriebs der Logikeinheit.

Description

  • Die Erfindung betrifft eine rekonfigurierbare digitale Logikeinheit.
  • Herkömmliche programmierbare logische Bausteine wie Prozessoren führen Programme aus, die aus einem Speicher geladen werden. Diese Speicher können als diskrete Bausteine (z. B. Festplatte, Speicher-Chip) oder im Prozessor integriert sein. Ein bekanntes Beispiel für ersteres sind die bekannten IBM-kompatiblen PCs, für letzteres sog. Flash-Microprozessoren. Die auszuführende Software ist in Form von Befehlswörtern als Maschinenbefehl im Speicher abgelegt. Die Befehlswörter werden geladen, analysiert und in einer Verarbeitungseinheit ausgeführt. Die Verarbeitung eines einzigen Befehlswortes löst eine Vielzahl von Einzelaktionen in der Logikeinheit aus.
  • Ein entscheidendes Kennzeichen herkömmlicher programmierbarer Logikbausteine ist, dass die Verarbeitungseinheit durch jedes neue Befehlswort für einige Taktzyklen neu programmiert wird. Die Informationen über das vorherige Befehlswort in der Verarbeitungseinheit werden überschrieben, abgesehen von Registerinhalten. Die Verarbeitungseinheit moderner Mikroprozessoren ist aufgrund der Vielzahl möglicher Operationen sehr aufwendig aufgebaut. Für weniger als 500 mögliche Befehlsworte werden mehr als 30 Millionen Transistoren benötigt, was zu einem entsprechend hohen Energieverbrauch führt, da jeder Transistor auch dann Energie verbraucht, wenn er nicht genutzt wird und sich im "Wartezustand" befindet. Um eine Energieeinsparung zu erzielen, ist bereits vorgeschlagen worden die Betriebsspannung anzupassen, d. h. zu reduzieren. Ebenso kann die Taktfrequenz verringert werden, allerdings sinkt dadurch die Gesamtleistung der Logikeinheit.
  • Der Aufwand für das Design, die Fertigung und den Test dieser Transistoren ist immens. Die einmal entworfene Funktionalität kann nicht verändert werden. Zu einer bestimmten Zeit kann nur eine Aufgabe abgearbeitet werden.
  • Besonders bei der Ausführung von Programmschleifen ist nur ein geringer Teil des Prozessors aktiv. Die meisten Anwendungen enthalten eine große Zahl von Programmschleifen, wobei jede Schleife nur relativ wenige in die Schleife eingebettete Befehle enthält. Dabei kann es sich um Zählschleifen handeln, beispielsweise um die Anzahl der Spülvorgänge in einer Waschmaschine. Ebenso sind bedingte Schleifen sehr häufig, bei denen die Zahl der Wiederholungen bei Schleifeneintritt unbekannt ist, da die Schleife in Abhängigkeit eines Ergebnisses verlassen wird. Tritt das Ereignis nicht auf, werden die-vorherigen Befehle in der Schleife wiederholt.
  • Bekannte digitale Logikeinheiten, insbesondere Computer mit Mikroprozessoren, beruhen auf der Konzeption des von-Neumann- Computers. Die Zentraleinheit, d. h. der Computerkern besteht aus den Hauptbestandteilen Hauptspeicher, Steuereinheit und Verarbeitungseinheit (Rechenwerk). Der Hauptspeicher speichert Befehlswörter (Programmdaten) und Verarbeitungsdaten (Operandenwörter) und stellt diese auf Anforderung zur Verfügung. Ferner nimmt der Hauptspeicher Zwischen- und Endresultate der Verarbeitung auf. Hauptspeicher können durch flüchtige oder nichtflüchtige Speicher realisiert werden. Die Steuereinheit organisiert die Reihenfolge, in der Befehlswörter abgearbeitet werden. Sie fordert Befehlswörter aus dem Hauptspeicher an und veranlasst die Ausführung des Befehlswortes in der Verarbeitungseinheit. Sie analysiert Befehlswörter und veranlasst die Lieferung von Verarbeitungsdaten an die Verarbeitungseinheit. Die Verarbeitungseinheit führt die Operation an den Verarbeitungsdaten aus und liefert die Resultate an den Hauptspeicher. Für jede Operation enthält die Verarbeitungseinheit ein Mikroprogramm, das die benötigten Übertragungsleitungen freischaltet. Die Verarbeitungseinheit wird durch die Steuereinheit auf die jeweilige Operation, d. h. auf den abzuarbeitenden Befehl eingestellt. Dieser Zentraleinheit sind Peripheriegeräte zugeordnet, bei denen es sich um die oben erwähnten externen Speicher, Ein- und Ausgabegeräte handeln kann. Die beschriebenen Hauptkomponenten der Zentraleinheit können physikalisch getrennt sein, zumeist sind sie jedoch auf einem gemeinsamen Prozessorchip mit einem Cache oder beispielsweise auf einem embedded ROM realisiert.
  • Die bekannten digitalen Logikeinheiten weisen insbesondere bei häufig wiederkehrenden Aktionen, beispielsweise bei der Ausführung von Programmschleifen den Nachteil auf, dass Befehlswörter geladen und ausgeführt werden, die bereits einige Prozessortakte zuvor in einem Befehlsregister standen. Ein Beispiel für eine derartige Schleife ist eine Tastaturabfrage. In dem Fall, dass keine Taste gedrückt ist, werden sämtliche Schleifenbefehle in kurzem Abstand wiederholt, wobei jedes Mal die Befehlswörter erneut geladen werden müssen, als wären sie vollkommen neu. Der allergrößte Teil des Prozessors wird während des Wartens nicht benötigt, er kann jedoch in dieser Zeit keine anderen Aufgaben ausführen.
  • Der Ausnutzungsgrad einer derartigen Logikeinheit ist äußerst schlecht, da weniger als ein Tausendstel der vorhandenen Hardware genutzt wird. Der überwiegende Teil der Chipfläche bleibt ungenutzt, dennoch muss kontinuierlich Energie zum Betrieb aufgewendet werden.
  • Die Anpassung von Prozessoren an unterschiedliche Gegebenheiten wird bereits auf einer niedrigen Komplexitätsebene durchgeführt. Ein Beispiel dafür ist das Umschalten von Speicherbänken eines Prozessors, die unterschiedliche Programme enthalten. Aktuell nicht genutzte Speicherbänke können verändert werden. Diese Technik wird als IAP (in application programming) bezeichnet. Die durch diese Maßnahme erzielte Verbesserung ist vergleichsweise gering, da an der Prozessorhardware nichts geändert wird, sondern nur die auszuführenden Programme zeitgleich mit anderen Prozessen geladen werden.
  • Für weniger komplexe Aufgaben werden häufig programmierbare Logikbausteine (PLD) eingesetzt. Solche Logikbausteine sind z. B. aus US 4,870,302 oder der Veröffentlichung "Ranmuthu, I. W. et al.; Magneto-resistive elements - An Alternative to Floating Gate Technology; In: Proceedings of the Midwest Symposiums on Circuits and Systems, 1992, pg(s). 134-136 vol. 1" bekannt. Das gesamte Anwendungsprogramm wird bei solchen Logikbausteinen in einem Spezial-Compiler (sog. Fitter) in geeignete Befehle übersetzt. Das PLD wird mit diesen Programmdaten einmalig, in der Regel beim Booten definiert: aus einem Programmspeicher wird ein Programm ausgelesen, konfigurierbare Bereiche werden konfiguriert. Die konfigurierbaren Bereiche haben folgende Eigenschaften: entweder definieren sie Verknüpfungen zwischen vorgegebenen Punkten (routing- Bereiche) oder verarbeiten logische Eingangssignale zu logischen Ausgangssignalen (Logikzellen-Bereiche). Werden aber von den vom Hersteller realisierten technischen Vorgaben des PLD's abweichende Verbindungen benötigt, müssen zwei oder mehrere Verbindungsblöcke kaskadiert werden, es kommt zu Laufzeitzunahmen und Durchlaufverzögerungen. Dadurch kann die tatsächliche Geschwindigkeit der Anwendungsprogrammausführung nicht vorhergesagt werden. In vielen Fällen sind Anpassungen im Programm erforderlich, um beispielsweise eine minimale Geschwindigkeitsforderung oder eine Synchronizität von Signalen in einem PLD realisieren zu können. Werden bei der Verarbeitung logischer Signale andere Eigenschaften als die vorhandenen verlangt (z. B. höhere Bitbreite), dann muss ebenfalls kaskadiert werden. Dadurch sind im PLD die Verknüpfungsbereiche flächenmäßig größer als die Logikbereiche. Trotz der Konfigurierbarkeit der Bausteine ist also die Flexibilität für unterschiedliche Aufgaben gering. Bei praktischen Problemen wird daher im allgemeinen ein anderer Chip mit anderer Chiparchitektur gewählt, deren Ressourcen dem Problem (z. B. Bitbreite, Durchlaufverzögerungsanforderungen) besser angepasst ist. Das Architekturkonzept der PLD's sieht vor, die Programmierinformationen vom Fitter auf eine Vielzahl gleichartiger Logikzellen auf dem PLD-Chip zu verteilen. Diese werden durch eine Vielzahl gleichartiger Routingbereiche verknüpft. Die Programmierinformation wird also in der Fläche verteilt. Die Konfigurierbarkeit der PLD's beschränkt sich auf wenige konfigurierbare Parameter, die beim Booten fest eingestellt werden. Es werden dabei zwei Speicher benötigt: ein externer Boot-Speicher-Chip (diskreter Chip, z. B. das EEPROM 113 in US 4,870,302) und interne, flächig verteilte Speicherzellen (z. B. nach den Fig. 3a und 10a in US 4,870, 302 oder Fig. 5 in der Veröffentlichung von Ranmuthu et al. Die lokalen Speicherzellen enthalten nach dem Booten die Informationen für die Verknüpfungen und für die Logikfunktionen der Zellen. Die Flächen- und die Verlustleitungseffizienz der verteilten Speicherzellen ist ca. zwei Größenordnungen schlechter als von diskreten Speicherchips gleicher Leistungsfähigkeit. Benötigt das Anwendungsprogramm aber weniger Leistungsfähigkeit als der Chip bereitstellt, so verbrauchen die nicht genutzten Bereiche unvermeidlich ebenfalls Verlustleistung. Typische Ausnutzungsgrade der Ressourcen von PLDs liegen bei ca. 30% bis 70%. Zu einem bestimmten Zeitpunkt sind davon auch nur Bruchteile aktiv an der Verarbeitung von Logikinformationen beteiligt.
  • Der Erfindung liegt daher das Problem zugrunde, die genannten Nachteile zu vermeiden und eine digitale Logikeinheit anzugeben, bei der die Ausnutzung der Hardware verbessert ist.
  • Dieses Problem wird gelöst durch eine rekonfigurierbare digitale Logikeinheit, umfassend eine Mehrzahl von Logikzellen mit konfigurierbaren Eigenschaften; einen internen Speicher mit einer Mehrzahl von Mikroprogrammen, enthaltend Informationen betreffend die Funktionalität mehrerer Logikzellen, wobei zumindest eines der Mikroprogramme in Abhängigkeit von einer bestimmten Anwendung zumindest während des laufenden Betriebs der Logikeinheit reprogrammierbar ist; ein Mittel zum Auswählen wenigstens eines Mikroprogramms; sowie ein Mittel zum Konfigurieren von Logikzellen entsprechend den Funktionalitätsinformationen des ausgewählten Mikroprogramms zumindest während des laufenden Betriebs der Logikeinheit. Unter dem Begriff "Funktionalität" ist sowohl "Datenverarbeitung" sowie "Datenverknüpfung" zu verstehen.
  • Die erfindungsgemäße Logikeinheit ist also während des laufenden Betriebs variabel, d. h. die Logikzellen sind während des Betriebs der Logikeinheit konfigurierbar, das oder die Mikroprogramme können während des laufenden Betriebs der Logikeinheit reprogrammiert werden. Es ist also jederzeit eine Anpassung der Logikeinheit an die gestellte und zu bearbeitende Aufgabe möglich, da keine feste Konfiguration und Programmierung herstellerseits vorgegeben ist, vielmehr kannquasi in-situ konfiguriert werden und die Eigenschaften verändert und angepasst werden. Die Änderung der Programmierung oder der Konfiguration kann vom Programmierer softwaremäßig vorgegeben sein, es kann sich aber auch um ein selbständige lernendes System handeln. Infolge der stets gegebenen Variationsmöglichkeit müssen also nicht alle möglichen Befehle bzw. Verknüpfungen auf dem Chip realisiert sein, vielmehr lassen sich die benötigten Verknüpfungen während des Betriebs gemäß dem gerade gegebenen Erfordernis erzeugen. Es wird also wesentlich weniger Platz auf dem Chip benötigt, auch kann die Verlustleitung deutlich verringert werden, da aufgrund der Einstellmöglichkeit nur solche Zellen und Verknüpfungen konfiguriert werden, die für die geforderte Anwendung benötigt werden.
  • Dabei ist unter dem Begriff "Logikzelle jedwedes eine Logikfunktion ausführendes Element zu verstehen. Im einfachsten Fall kann es sich um eine einzelne Speicherzelle handeln, im komplexeren Fall um ein Gatter, ein Subnetzwerk aus mehreren Gattern oder gar ein Prozessorelement handeln. Das Prinzip einer Logikzelle entspricht dem einer Subroutine, es kann eine einfache Funktionalität enthalten (z. B. "Ausgang = Eingang" oder "Ausgang = konstant") oder als Subnetzwerk mit erheblicher komplexer Funktionalität ausgebildet sein. Meist wird es Teilaufgaben enthalten, die sich durch häufige Verwendung (z. B. Primitives (z. B. Gatterfunktionen) oder Volladdierer) oder zweckmäßige und vorteilhafte Ausgestaltungen (insbesondere in Form kommerzieller IP) auszeichnen.
  • Unter dem Begriff "konfigurierbare Eigenschaft" sind alle nichtflüchtigen, aber änderbaren Eigenschaften oder Arbeitsparameter zu verstehen. Als Beispiele für eine Logikzelle sind die Bitbreite am Eingang / die Anzahl der Variablen, die physikalische Position der Eingänge, die Codierung der Bits (z. B. seriell oder parallel), die logische Verarbeitung der Bits, das Zeitverhalten, die Registerfunktion, die lokale Speicherfunktion, die Bitbreite am Ausgang, die physikalische Position der Ausgangsbits oder die Betriebsbereitschaft zu nennen, wobei diese Aufzählung nicht abschließend ist. Die Änderungen sind unabhängig von anderen Prozessoren im Chip durchführbar, idealerweise erfolgt die Änderung der Bitverarbeitung und Verknüpfung in jedem Takt.
  • Besonders geeignet sind solche Logikzellen mit konfigurierbaren Eigenschaften, die ein magnetoresistives Schichtsystem aufweisen.
  • Anstelle von Logikzellen mit magnetoresistiven Schichten können auch alternative, ähnlich leistungsfähige Technologien eingesetzt werden, beispielsweise ferroelektrische RAMs (FRAM).
  • Jede Logikzelle der erfindungsgemäßen Logikeinheit kann wenigstens ein magnetoresistives Schichtsystem sowie Eingangs- und Ausgangsanschlüsse aufweisen, die an Verbindungsleiterbahnen angeschlossen sind. Das Schichtsystem kann vom GMR-Typ (giant magneto resistive), TMR-Typ (tunnel magneto resistive) oder vom AMR-Typ (anisotropy magneto resistive) sein.
  • Die Magnetisierungsrichtung einer magnetischen Schicht kann zur Informationsspeicherung benutzt werden. Dieser Speichervorgang ist sehr schnell und nahezu unbegrenzt oft durchführbar. Der Widerstand der Speicherzelle ist entweder niedrig oder hoch, in Abhängigkeit von der Magnetisierungsrichtung der freien magnetischen Schicht relativ zu einer Referenzrichtung. Eine darauf basierende Logikzelle kann als logisches Gatter verwendet werden, wobei durch die Ansteuerung bzw. die Zusammenschaltung mehrerer Zellen praktisch alle üblichen Gatterfunktionen (z. B. NOR, XOR, AND, OR, INV usw.) realisiert werden können. Wesentlich ist dabei, dass durch entsprechende Mittel die Funktionalität zwischen wenigstens zwei dieser Gatterfunktionen verändert werden kann. Ebenso kann eine Logikzelle als Speicher verwendet werden, insbesondere kann das Ergebnis einer logischen Verknüpfung gespeichert werden. Besonders geeignet sind Speicherzellen vom TRAM-Typ (tunnel random access memory), da diese unbegrenzt beschreibbar sind.
  • Erfindungsgemäß sind bei der digitalen Logikeinheit Verknüpfungen von Logikzellen zu Logikzellenblöcken vorgesehen, die die Funktion eines Halbaddierers, eines Volladdierers oder eines Multiplikators haben. Zusätzlich kann eine Logikzelle einen lokalen Speicher umfassen. Dieser kann Zwischen- oder Endergebnisse einer logischen Verknüpfung speichern.
  • Die erfindungsgemäße digitale Logikeinheit umfasst einen internen Speicher mit einer Mehrzahl von Mikroprogrammen. Es kann sich dabei um einen Speicher handeln, der durch Befehlswörter aus einem Hauptspeicher angesprochen wird und Informationen betreffend die Funktionalität und die Verknüpfung mehrerer Logikzellen enthält. Ein Befehlswort wird aus dem Hauptspeicher geladen, analysiert und anhand des Mikroprogramms wird die dafür benötigte Logikzellenanordnung abgeleitet. Ein solches Mikroprogramm ist mit einem Befehlsmakro vergleichbar, es enthält eine Anzahl von Grundoperationen, die durch eine Verknüpfung mehrerer Logikzellen realisiert werden können. Typische Grundoperationen sind das Laden, Analysieren oder Auswählen. Ein Mikroprogramm kann dementsprechend als Bauplan oder Schaltungsaufbau angesehen werden, der sämtliche benötigten Informationen über die Logikzellen enthält. Zusätzlich können auch Informationen über gegebenenfalls benötigte Speicher, Register oder ähnliche Komponenten enthalten sein. Ferner kann ein Mikroprogramm auch Konstanten enthalten, beispielsweise kann die Zahl "0" als Konstante definiert werden. Außerdem können Informationen über Eingänge, Ausgänge oder die Verknüpfung der Eingänge mit Variableh und Konstanten durch ein Mikroprogramm definiert sein.
  • Viele Standardaufgaben können durch die Mikroprogramme abgedeckt werden, beispielsweise kann eine Tastaturabfrage durch ein Mikroprogramm definiert werden, ebenso die Ausgabe von Daten an ein externes Gerät oder die Eingabe und der Empfang von Daten eines externen Geräts. Ebenso können beliebige logische Verknüpfungen in Form von Mikroprogrammen gespeichert werden, beispielweise arithmetische Verknüpfungen wie die Grundrechenarten, aber auch wesentlich komplexere Algorithmen. Logikverknüpfungen werden in einzelne Bestandteile zerlegt, die jeweils durch ein Mikroprogramm definiert werden.
  • Mit besonderem Vorteil ist erfindungsgemäß vorgesehen, dass ein Mikroprogramm reprogrammierbar ist. Das Mikroprogramm kann geladen und in Abhängigkeit von einer bestimmten Anwendung geändert werden. Dadurch wird eine besonders hohe Flexibilität der Logikeinheit erreicht. Es kann auch vorgesehen sein, dass ein Mikroprogramm Befehle zur Definition neuer Mikroprogramme oder zum Ändern vorhandener Mikroprogramme aufweist.
  • Gemäß einer Weiterbildung des Erfindungsgedankens ist vorgesehen, dass ein Mikroprogramm Firmware enthaltende Befehle umfasst. Ferner können Befehlsfolgen eines Mikroprogramms von einem Anwendungsprogramm erkannt werden und als neues Mikroprogramm abgelegt werden.
  • Die erfindungsgemäße digitale Logikeinheit kann ferner ein Mittel zum Auswählen wenigstens eines Mikroprogramms enthalten. Die Mikroprogramme können vordefiniert sein oder im Sinne einer "evolvable hardware" auch neu definiert werden. Der Speicher kann eine Vielzahl von Befehlswörtern enthalten, die durch das Mittel jeweils wenigstens ein Mikroprogramm auswählen.
  • Das Auswählen des wenigstens einen Mikroprogramms kann durch einen Programmzeiger (program pointer) erfolgen.
  • Die erfindungsgemäße digitale Logikeinheit umfasst ferner ein Mittel zum Konfigurieren von Logikzellen entsprechend den Funktionalitätsinformationen des ausgewählten Mikroprogramms.
  • Die durch das ausgewählte Mikroprogramm definierten Logikzellenverknüpfungen sowie die gegebenenfalls benötigten lokalen Speicherzellen werden in reprogrammierbare Hardware programmiert. Die magnetoresistiven Logikzellen werden durch eine Programmierroutine programmiert. Die Programmierroutine legt fest, in welcher Reihenfolge die einzelnen Logikzellen einen Programmierstrom erhalten. Dadurch werden die gewünschten Logikgatterfunktionen programmiert. Ebenso werden Verknüpfungen zwischen verschiedenen Logikzellen hergestellt.
  • Die bei der erfindungsgemäßen digitalen Logikeinheit verwendeten Speicher weisen den Vorteil auf, dass der Speicherinhalt nicht flüchtig ist, d. h. er bleibt auch nach dem Abschalten der Spannung erhalten. Dennoch können bereits programmierte Logikzellen zu einem späteren Zeitpunkt umprogrammiert werden, d. h. die Funktionalität einer Logikzelle kann rekonfiguriert werden. Programmschleifen laufen daher "in Hardware", d. h. für eine bestimmte logische Verknüpfung wird ein exakt dazu passender Hardwareaufbau geschaffen, der möglichst optimal an das zu bearbeitende Problem angepasst ist. Eine Spannung muss lediglich solchen Logikzellen zugeführt werden, die tatsächlich augenblicklich benötigt werden. Wenn eine durch Logikzellen definierte Programmschleife endgültig verlassen wird, können die zugehörigen Logikzellen abgeschaltet werden, so dass sie keine Energie mehr verbrauchen. Dadurch wird das bei herkömmlichen Logikeinheiten auftretende Problem vermieden, dass große Teile der Hardware ständig in einem Wartezustand sind, in welchem sie Strom verbrauchen.
  • Es hat sich als besonders günstig herausgestellt, die Logikzellen rasterfeldartig anzuordnen. Dadurch wird eine regelmäßig angeordnete Logikzellenschicht erzeugt, bei der jede einzelne Logikzelle wie die Komponente einer Matrix durch die Angabe der Reihe und der Spalte adressiert werden kann. Es kann auch vorgesehen sein, dass verschiedene Typen von Logikzellen regelmäßig auf dem Rasterfeld verteilt sind, beispielsweise können häufig benötigte Gatter wie NOR-, XOR- und AND-Gatter in allen Bereichen des Rasterfelds angeordnet sein, so dass beim Verknüpfen von einzelnen Logikzellen nur relativ geringe Abstände und weniger Funktionalitätskonfigurationen zu überbrücken sind. Logikzellenverknüpfungen können auf dem Rasterfeld grundsätzlich in beliebiger Form ausgebildet sein. Bevorzugt werden Logikzellenverknüpfungen, bei denen zu verknüpfende Logikzellen direkt oder möglichst nah benachbart sind. Die verknüpften Logikzellen können auf dem Rasterfeld sowohl linienförmig als auch flächig, d. h. in Form von Funktionsblöcken angeordnet sein.
  • Die Logikzellen mit dem magnetoresistiven Schichtsystem und den Eingangs- und Ausgangsanschlüssen sind an Verbindungsleiterbahnen angeschlossen, die im Wesentlichen horizontal und vertikal verlaufen und sich vorzugsweise rechtwinklig kreuzen. Die Leiterbahnen können aus einem Kupfermaterial bestehen.
  • In weiterer Ausgestaltung des Erfindungsgedankens kann vorgesehen sein, dass Logikzellen in verschiedenen Schichten oder Ebenen gitterartig angeordnet sind. Mit dreidimensional angeordneten Logikzellen ergibt sich eine wesentlich größere Vielfalt der Verknüpfungsmöglichkeiten. Es ist auch möglich, eine Variable oder Konstante in einer Logikzelle zu speichern. Auf diese Logikzelle kann dann von verschiedenen Mikroprogrammen zugegriffen werden. Beispielsweise kann eines der Mikroprogramme in einer höheren Schicht angeordnet sein, ein anderes Mikroprogramm kann neben der Logikzelle platziert sein. Diese Logikzelle kann also von mehreren Mikroprogrammen genutzt werden.
  • Die Verbindung verschiedener Schichtebenen der Logikzellen kann in bekannter Weise durch senkrecht zur Schichtebene angeordnete Kontaktlöcher erfolgen. Derartige dreidimensionale Aufbauten sind bekannt und bedürfen daher keiner weiteren Erläuterung. Bevorzugt werden rekonfigurierbare digitale Logikeinheiten, die vier bis sechs Schichtebenen sich kreuzender Verbindungsleiterbahnen mit zwischenliegenden magnetoresistiven Schichtsystemen enthalten. Die einzelnen Schichten können durch eine Isolationsschicht voneinander getrennt sein. Zusätzlich können vorzugsweise auf einer Außenseite weitere Bauelemente vorhanden sein, die in herkömmlicher Siliziumtechnologie hergestellt sein können. Es kann auch vorgesehen sein, dass vorzugsweise zueinander benachbarte Schichten in Flächenebene zueinander versetzt angeordnet sind. Dadurch kann beispielsweise eine geradlinige Verbindungsleiterbahn zwischen der zweiten und der vierten Schicht gebildet werden. Die Gitteranordnung kann kartesisch sein, aber auch "Bienenwaben" in der Form der hexagonal dichtesten Packung angeordnet sein, um eine größere Anzahl nächster Nachbarn zu bilden.
  • Erfindungsgemäß ist vorgesehen, dass die Abarbeitung von Logikfunktionen durch wenigstens einen Befehlszähler steuerbar ist. Ein Befehlszähler, der auch als Befehlstoken bezeichnet werden kann, signalisiert, welche der Logikzellen augenblicklich aktiv ist, d. h. das Befehlstoken zeigt auf die aktuell arbeitende Logikzelle bzw. auf die aktuell arbeitende Logikverknüpfung. Der Befehlszähler kann ein logisches Signal sein, das nur bei einer Logikzelle gesetzt ist ("1") und bei allen anderen Logikzellen nicht gesetzt ist ("0").
  • Gemäß einer ersten Ausführungsvariante der Erfindung ist ein einziger Befehlszähler für die Logikeinheit vorgesehen. Dementsprechend kann zu einem Zeitpunkt nur eine einzige Logikzelle bzw. eine einzige Logikzellenverknüpfung aktiv sein. Die übrigen Logikzellen sind währenddessen nicht aktiv. Wenn die entsprechende Logikfunktion abgearbeitet ist, wird der Befehlszähler "weitergegeben", d. h. er zeigt auf die nächste abzuarbeitende Logikzelle. Das Mikroprogramm bzw. mehrere Mikroprogramme können hintereinander auf dem Logikzellenfeld angeordnet sein, so dass die einzelnen Logikzellen sequentiell abgearbeitet werden. Alternativ ist es auch möglich, dass die Logikzellen bzw. die Logikzellenverknüpfungen wahlfrei auf dem Logikzellenfeld gespeichert sind, diese Anordnung ist mit der Speicherung von Daten auf einer Festplatte vergleichbar.
  • Gemäß einer zweiten Ausgestaltung kann vorgesehen sein, dass eine Logikeinheit mehrere Befehlszähler besitzt, die gleichzeitig aktiv sein können. Demnach können zwei oder mehrere Mikroprogramme gleichzeitig ablaufen, d. h. es findet eine Parallelbearbeitung statt. Der Befehlszähler bzw. das Befehlstoken kann als logisches Signal ausgebildet sein, das in einem Flag-Register gespeichert wird und nach Abschluss der Berechnung zurückgesetzt wird. Eine "1" bedeutet, dass die Logikzellenverknüpfung aktiv ist, nach der Berechnung wird das flag auf "0" zurückgesetzt. Nur eine aktive Logikzellenanordnung bzw. ein aktives Mikroprogramm weist den Wert "1" auf, was dazu führt, dass die Betriebsspannung für die mit dem aktiven Mikroprogramm verknüpften Logikzellen freigeschaltet wird. Die gemeinsame Nutzung von programmierten Konstanten und die Übergabe von Ergebnissen ist möglich.
  • Die Abarbeitung von Mikroprogrammen kann auf unterschiedliche Arten erfolgen. Bei synchron arbeitenden Logikeinheiten wird mit dem nächsten Takt das Flag abgefragt und anschließend das nächste Mikroprogramm aktiviert. Es kann vorgesehen sein, dass die Abarbeitung bei synchronen Logikeinheiten einfach zeitgesteuert erfolgt, d. h. jedes Mikroprogramm hat gleich viel Zeit zur Abarbeitung der programmierten Befehlsworte. Es ist auch möglich, dass die Abarbeitung bei synchronen Logikeinheiten komplex zeitgesteuert erfolgt, d. h. jedes Mikroprogramm ist mit einer vorgegebenen Zeit zur Abarbeitung der programmierten Befehlsworte verknüpft. Diese Zeitinformation kann beispielsweise in einer Variablen des Mikroprogramms enthalten sein.
  • Darüber hinaus kann bei asynchron arbeitenden Logikeinheiten vorgesehen sein, dass das logische Freigabesignal direkt weitergereicht wird. Die Zeit der Abarbeitung der programmierten Befehlsworte spielt dabei keine Rolle. Gegebenenfalls sind Maßnahmen zur Synchronisierung mehrerer gleichzeitig aktiver Mikroprogramme erforderlich, um Konflikte wie einen gleichzeitigen Zugriff auf eine Speicherzelle zu vermeiden.
  • In einer Weiterbildung der Erfindung kann vorgesehen sein, dass die Logikeinheit eine Tabelle der belegten und/oder nicht belegten Logikzellen umfasst. Es ist auch denkbar, dass ein Algorithmus verwendet wird, der überprüft, ob eine benötigte Logikzellenanordnung, z. B. ein Multiplizierer, bereits als konfigurierter Block in dem Logikzellenfeld vorhanden ist. In diesem Fall könnte dieselbe Logikzellenanordnung von verschiedenen Mikroprogrammen verwendet werden. Ferner kann es vorgesehen sein, dass ein Algorithmus freie Bereiche der Logikzellen findet, um eine optimale Ausnutzung der vorhandenen Logikzellen zu erreichen. Gleichermaßen kann vorgesehen sein, dass Logikzellen auf ihre Funktionsfähigkeit geprüft werden und gegebenenfalls als defekt klassifizierte Logikzellen in einer Tabelle markiert werden.
  • Weitere Vorteile und Einzelheiten der Erfindung ergeben sich aus dem im Folgenden beschriebenen Ausführungsbeispiel sowie anhand der Zeichnungen. Die Zeichnungen sind schematische Darstellungen und zeigen:
  • Fig. 1 einen Querschnitt durch eine erfindungsgemäße Logikeinheit, bestehend aus mehreren Schichten von Logikzellen;
  • Fig. 2 eine schematische Schnittansicht einer erfindungsgemäßen Logikeinheit mit vertikalen Verbindungslöchern; und
  • Fig. 3 ein schematisches Ablaufdiagramm der Konfigurierung einer erfindungsgemäßen digitalen Logikeinheit.
  • Die in Fig. 1 im Schnitt dargestellte digitale Logikeinheit 1 besteht aus mehreren Schichten magnetoresistiver Logikzellen 2, von denen jede ein magnetoresistives Schichtsystem mit in Fig. 1 nicht dargestellten Eingangs- und Ausgangsanschlüssen aufweist, die an die Verbindungsleiterbahnen 3, 4 angeschlossen sind. Die Leiterbahnen 3, 4 umfassen eine Vielzahl von in unterschiedlichen Ebenen angeordneten parallelen Leiterbahnen. Die einzelnen Leiterbahnen sind elektrisch voneinander isoliert, eine Verbindung kann nur über die Logikzellen 2 erfolgen, die sowohl an die Leiterbahnen 3 als auch 4 angrenzen. Jede der Speicherzellen ist durch eine Isolationsschicht 5 von der benachbarten Schicht getrennt. Die Logikeinheit 1 kann zweckmäßigerweise vier bis sechs derartige Einzelschichten umfassen.
  • Die Logikzellen 2 sind nichtflüchtig, aber reprogrammierbar, es handelt sich um wiederbeschreibbare Logikbauelemente, die mit einer hohen Geschwindigkeit zu programmieren sind. Sie bieten die Möglichkeit, eine logische Funktion und gleichzeitig einen Speicher zu realisieren oder auch Verknüpfungen freizuschalten oder zu unterbrechen.
  • Unterhalb der unteren Isolationsschicht 6 sind schematisch weitere Bauelemente 7 dargestellt, die in herkömmlicher Silizium-Technologie aufgebaut sind. Es ist daher möglich Logikzellen 2 mit Siliziumhalbleitern zu kombinieren.
  • Fig. 2 zeigt eine schematische Schnittansicht einer erfindungsgemäßen Logikeinheit mit vertikalen Verbindungslöchern zwischen den Einzelschichten.
  • Die Logikeinheit 1 besteht aus den Schichten 8, 9, 10, die analog zu der Logikeinheit von Fig. 1 aufgebaut sind. Zwischen den Schichten 8, 9, 10 und einer unteren Schicht 11 sind Kontaktlöcher 12 ausgebildet, die eine vertikale Verbindung zwischen den Schichten, bzw. zwischen auf den Schichten angeordneten Logikzellen herstellen. In ähnlicher Weise kann auch ein Gitteraufbau realisiert werden, bei dem die Verbindungsleiterbahnen entlang aller drei Raumachsen ausgebildet sind und sich in jedem Kreuzungspunkt des Gitters eine Logikzelle befindet. Zur Adressierung einer Logikzelle ist ihre X-, Y- und Z-Koordinate erforderlich.
  • In Fig. 3 ist schematisch der Ablauf bei der Konfigurierung der digitalen Logikeinheit gezeigt.
  • Ein interner Speicher 13 umfasst eine Anzahl von unterschiedlichen Mikroprogrammen 14, die Informationen über die Verknüpfung mehrerer Logikzellen enthalten.
  • Ein Programmpointer 15 wählt eines der Mikroprogramme des Speichers 13 aus. Das ausgewählte Mikroprogramm 16 enthält alle Informationen, die für die Programmierung der Logikzellen 2 benötigt werden. Es handelt sich dabei um Informationen betreffend die Verarbeitungseinheit, die Steuereinheit, Variablen, Eingabe-/Ausgabe-Prozesse (I/O) und ein Befehlstoken. Es ist nicht erforderlich, dass jedes Mikroprogramm Informationen zu allen genannten Punkten aufweist, in Abhängigkeit von der Aufgabenstellung können einzelne Punkte entfallen oder das Mikroprogramm kann weitere Programminformationen enthalten.
  • Eine Programmierroutine 17 analysiert die Informationen des ausgewählten Mikroprogramms 16 und programmiert die benötigten Logikfunktionen.
  • Ein Logikzellenfeld 18 umfasst eine große Anzahl regelmäßig in Reihen und Spalten angeordneter magnetoresistiver Logikzellen 19, die in Fig. 3 schematisch durch Rasterpunkte dargestellt sind. Das Logikzellenfeld 18 kann sehr viele Logikzellen 19 umfassen, beispielsweise könnte es 1000 mal 1000 Zellen, also insgesamt 1 Million Logikzellen enthalten. Bei diesem Ausführungsbeispiel besteht das Logikzellenfeld 18 aus einer einzigen Schicht. Es ist auch möglich, mehrere derartige Logikzellenfelder zu einem Logikzellengitter zu kombinieren.
  • Jede einzelne Logikzelle 19 kann eine Grundverknüpfung durchführen, sie kann beispielsweise ein AND- oder XOR-Gatter sein oder sich entsprechend konfigurieren lassen.
  • Zur Programmierung der benötigten Logikoperationen und der lokalen Speicherstellen wählt die Programmierroutine 17 diejenigen Logikzellen 19, bzw. Gruppen von Logikzellen aus, die nicht belegt sind bzw. die nicht mehr benötigt werden und reprogrammiert werden können. Dazu dient eine Tabelle 20, die auch als Liste ausgebildet sein kann und die freien, zur Verfügung stehenden Logikzellen enthält. Alternativ können die belegten Logikzellen erfasst sein, ebenso solche Logikzellen, die sich als defekt herausgestellt haben. Die Tabelle 20 kann auch als zwei- oder dreidimensionale Matrix ausgebildet sein und zu jeder Logikzelle 19 einen Eintrag aufweisen, der eine Information über den aktuellen Status enthält. Nach jedem Programmiervorgang wird die Tabelle 20 aktualisiert, neu belegte Logikzellen 19 werden in der Tabelle 20 entsprechend gekennzeichnet, nicht mehr benötigte Logikzellen 19 werden wieder frei gegeben. Aufgrund der Informationen der Tabelle 20 wird festgelegt, in welchem Bereich des Logikzellenfelds 18 das aktuell zu programmierende Mikroprogramm 16 gespeichert wird. Die Informationen über programmierte Zustände und Verknüpfungen sind sehr platzsparend abzuspeichern.
  • Nicht gezeigt ist in Fig. 3 der Hauptspeicher sowie dessen dazugehörige Peripherie, der auf bekannte Weise Verarbeitungsdaten und Befehlsworte enthält, wobei die Befehlsworte das aktive Mikroprogramm aus dem internen Speicher 13 auswählen.
  • Wie in Fig. 3 zu erkennen ist, weist das Logikzellenfeld 18 bereits einige programmierte Logikzellenblöcke 21, 22, 23 auf, denen jeweils ein bestimmtes Mikroprogramm des Speichers 13 zugeordnet ist. Zwischen den Logikzellenblöcken 21 und 22 ist schematisch ein Kontaktpunkt 24 eingezeichnet, an dem Signale oder Daten zwischen den Logikzellenblöcken 21, 22 ausgetauscht werden können. Selbstverständlich können zwischen zwei benachbarten Logikzellenblöcken auch mehrere derartige Kontaktpunkte angeordnet sein.
  • Zur Programmierung einer Logikzelle muss diese zunächst in dem Auswahlschritt 25 anhand ihrer Reihe und Spalte bestimmt werden. Die ausgewählte Logikzelle 26 wird anschließend durch die Programmierroutine 17 programmiert, dieser Vorgang schließt die Verschaltung der benötigten Verbindungsleitungen ein.
  • Das Logikzellenfeld 18 enthält weitere Logikzellenblöcke 27, 28, die in der Tabelle 20 als nicht mehr benötigt gekennzeichnet sind. Diese können zu einem späteren Zeitpunkt rekonfiguriert werden.
  • Wenn sämtliche Logikzellen der Logikzellenblöcke 21, 22, 23 programmiert sind, kann die Abarbeitung der zugehörigen Logikzellenverknüpfungen unmittelbar danach beginnen. Mehrere Logikzellenblöcke können auch derart miteinander verkettet werden, dass sie einen Ring oder eine Schleife bilden.
  • Zum Betrieb der Logikzellenblöcke 21, 22, 23 ist ein Befehlstoken erforderlich. Es handelt sich dabei um ein logisches Signal, das an einem Ausgang der Logikzellenblöcke 21, 22, 23 anliegt. Dadurch soll erreicht werden, dass jeweils nur einer der Logikzellenblöcke aktiv ist. Bei dem aktiven Logikzellenblock wird das Befehlstoken gesetzt, anschließend wird diesem Logikzellenblock die Betriebsspannung zugeführt. Nach der Abarbeitung des diesem Logikzellenblock zugeordneten Mikroprogramms wird das Befehlstoken zurückgesetzt tnd die Betriebsspannung abgeschaltet. Das Befehlstoken wird an den nächsten Logikzellenblock weitergegeben, so dass dieser arbeiten kann.
  • Es ist auch möglich, dass gleichzeitig mehrere Befehlstoken gesetzt sind, so dass mehrere Mikroprogramme gleichzeitig abgearbeitet werden. Diese Betriebsweise entspricht einem verteilten Prozessor. Allerdings ist darauf zu achten, dass die den jeweiligen Befehlstoken zugeordneten Logikzellenblöcke unabhängig voneinander arbeiten, das heißt es muss vermieden werden, dass es zu Kollisionen bei Zugriffen auf Speicher oder Adress- oder Datenleitungen kommt. Dementsprechend kann es vorgesehen sein, dass mehrere Logikzellenblöcken synchron arbeiten. Eine asynchrone Arbeitsweise ist allerdings auch möglich, wenn Vorkehrungen gegen das Auftreten der genannten Kollisionen getroffen werden.

Claims (27)

1. Rekonfigurierbare digitale Logikeinheit, umfassend:
eine Mehrzahl von Logikzellen (19, 26) mit konfigurierbaren Eigenschaften;
einen Speicher (13) mit einer Mehrzahl von Mikroprogrammen (14, 16), enthaltend Informationen betreffend die Funktionalität mehrerer Logikzellen (19, 26), wobei mindestens eines der Mikroprogramme (14, 16) in Abhängigkeit von einer bestimmten Anwendung zumindest während des laufenden Betriebs der Logikeinheit reprogrammierbar ist;
ein Mittel zum Auswählen wenigstens eines Mikroprogramms (14, 16);
ein Mittel zum Konfigurieren von Logikzellen entsprechend den Funktionalitätsinformationen des ausgewählten Mikroprogramms (14, 16) zumindest während des laufenden Betriebs der Logikeinheit.
2. Logikeinheit nach Anspruch 1, dadurch gekennzeichnet, dass die Logikzellen (19, 26) ein magnetoresistives Schichtsystem aufweisen.
3. Logikeinheit nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Logikzellen (19, 26) rasterfeldartig angeordnet sind.
4. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Logikzellen (19, 26) an im Wesentlichen horizontal und vertikal verlaufenden Verbindungsleiterbahnen (3, 4) angeschlossen sind.
5. Logikeinheit nach Anspruch 4, dadurch gekennzeichnet, dass sich kreuzende Leiterbahnen (3, 4) in unterschiedlichen Ebenen angeordnet sind.
6. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass Logikzellen (19, 26) in verschiedenen Schichten gitterartig angeordnet sind.
7. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass Logikzellen (19, 26) versetzt zueinander angeordnet sind.
8. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass einer Logikzelle (19, 26) eine der primitiven Logikfunktionen AND, XOR, OR, INV oder der inversen Funktionen NAND, XNOR, NOR, BUF zugeordnet ist oder dass eine Logikzelle (19, 26) derart konfiguriert werden kann.
9. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass mehrere Logikzellen (19, 26) zu einem Logikzellenblock (21, 22, 23) verknüpft sind.
10. Logikeinheit nach Anspruch 9, dadurch gekennzeichnet, dass ein Logikzellenblock (21, 22, 23) als Halbaddierer oder Volladdierer oder Multiplikator ausgebildet ist.
11. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass eine Logikzelle (19, 26) einen lokalen Speicher aufweist oder als Speicher konfigurierbar ist.
12. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass Befehle zur vorzugsweise anwendungsorientierten Definition neuer Mikroprogramme und/oder zum Ändern vorhandener Mikroprogramme vorhanden sind.
13. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass ein Mikroprogramm (14, 16) Firmware enthaltende Befehle enthält.
14. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass Befehlsfolgen eines Mikroprogramms (14, 16) von einem Anwendungsprogramm erkennbar sind und als neues Mikroprogramm ablegbar sind.
15. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass ein Mikroprogramm (14, 16) Befehle zur Konfigurierung von Logikfunktionen und/oder Verknüpfungen und/oder Variablen und/oder Konstanten enthält.
16. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass ein Mikroprogramm (14, 16) mit einem Speicher, insbesondere einem flüchtigen oder nichtflüchtigen oder permanenten Speicher, zusammenwirkt.
17. Logikeinheit nach einem der Ansprüche 9 bis 16, dadurch gekennzeichnet, dass ein Mikroprogramm (14, 16) in einen Logikzellenblock (21, 22, 23) kopierbar ist.
18. Logikeinheit nach einem der Ansprüche 9 bis 17, dadurch gekennzeichnet, dass ein Mikroprogramm (14, 16) Mittel zum Konfigurieren von Verbindungen zwischen den rekonfigurierbaren Logikzellen (19, 26) und/oder den Logikzellenblöcken (21, 22, 23) und/oder nicht konfigurierbaren Logikzellen aufweist.
19. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Abarbeitung von Logikfunktionen durch wenigstens einen Befehlszähler steuerbar ist.
20. Logikeinheit nach Anspruch 19, dadurch gekennzeihnet, dass die Betriebsspannung für die dem Befehlszähler aktuell zugeordnete Logikzelle (19, 26) und/oder für einen dem Befehlszähler aktuell zugeordneten Logikzellenblock (21, 22, 23) oder für einen Teil dieses Logikzellenblocks (21, 22, 23) freigeschaltet wird.
21. Logikeinheit nach Anspruch 19 oder 20, dadurch gekennzeichnet, dass sie mehrere Befehlszähler aufweist.
22. Logikeinheit nach einem der Ansprüche 19 bis 21, dadurch gekennzeichnet, dass sie mittels des bzw. der Befehlszähler zur synchronen Abarbeitung mehrerer Logikfunktionen ausgebildet ist.
23. Logikeinheit nach Anspruch 22, dadurch gekennzeichnet, dass Mikroprogramme (14, 16) derart ausgebildet sind, dass die Abarbeitung von Logikfunktionen in einem vorgegebenen Zeitraum erfolgt.
24. Logikeinheit nach Anspruch 22, dadurch gekennzeichnet, dass ein Mikroprogramm (14, 16) derart ausgebildet ist, dass es eine die Zeit zur Abarbeitung von Logikfunktionen betreffende Information aufweist.
25. Logikeinheit nach einem der Ansprüche 19 bis 21, dadurch gekennzeichnet, dass sie zur asynchronen Abarbeitung von Logikfunktionen ausgebildet ist.
26. Logikeinheit nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass sie eine Tabelle (20) betreffend die Belegung des Logikzellenfelds mit Mikroprogrammen aufweist.
27. Logikeinheit nach Anspruch 26, dadurch gekennzeichnet, dass die Tabelle (20) Informationen zu defekten Logikzellen enthält.
DE10249204A 2001-10-29 2002-10-22 Rekonfigurierbare digitale Logikeinheit Ceased DE10249204A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10249204A DE10249204A1 (de) 2001-10-29 2002-10-22 Rekonfigurierbare digitale Logikeinheit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10153349 2001-10-29
DE10249204A DE10249204A1 (de) 2001-10-29 2002-10-22 Rekonfigurierbare digitale Logikeinheit

Publications (1)

Publication Number Publication Date
DE10249204A1 true DE10249204A1 (de) 2003-05-28

Family

ID=7704099

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10249204A Ceased DE10249204A1 (de) 2001-10-29 2002-10-22 Rekonfigurierbare digitale Logikeinheit

Country Status (5)

Country Link
US (1) US7225321B2 (de)
EP (1) EP1506496A2 (de)
JP (1) JP3857691B2 (de)
DE (1) DE10249204A1 (de)
WO (1) WO2003038644A2 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004045527B4 (de) * 2003-10-08 2009-12-03 Siemens Ag Konfigurierbare Logikschaltungsanordnung
US7745685B2 (en) * 2005-10-31 2010-06-29 Kimberly-Clark Worldwide, Inc. Absorbent articles with improved odor control
US7847586B2 (en) * 2007-08-20 2010-12-07 Northern Lights Semiconductor Corp. Integrate circuit chip with magnetic devices
US20100023736A1 (en) * 2007-11-12 2010-01-28 Takashi Morimoto Reconfigurable circuit, reset method, and configuration information generation device

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870302A (en) 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4791603A (en) 1986-07-18 1988-12-13 Honeywell Inc. Dynamically reconfigurable array logic
GB8906145D0 (en) * 1989-03-17 1989-05-04 Algotronix Ltd Configurable cellular array
US5301344A (en) * 1991-01-29 1994-04-05 Analogic Corporation Multibus sequential processor to perform in parallel a plurality of reconfigurable logic operations on a plurality of data sets
US5794062A (en) 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US5712578A (en) * 1995-12-27 1998-01-27 Intel Corporation PLA architecture having improved clock signal to output timing using a type-I domino and plane
US6173434B1 (en) 1996-04-22 2001-01-09 Brigham Young University Dynamically-configurable digital processor using method for relocating logic array modules
US5828858A (en) * 1996-09-16 1998-10-27 Virginia Tech Intellectual Properties, Inc. Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
US5805477A (en) 1996-09-26 1998-09-08 Hewlett-Packard Company Arithmetic cell for field programmable devices
US6047115A (en) * 1997-05-29 2000-04-04 Xilinx, Inc. Method for configuring FPGA memory planes for virtual hardware computation
TW440835B (en) 1998-09-30 2001-06-16 Siemens Ag Magnetoresistive memory with raised interference security
WO2000049496A1 (en) * 1999-02-15 2000-08-24 Koninklijke Philips Electronics N.V. Data processor with a configurable functional unit and method using such a data processor
US6507214B1 (en) * 2000-10-26 2003-01-14 Cypress Semiconductor Corporation Digital configurable macro architecture
US6779168B2 (en) * 2002-02-01 2004-08-17 Lsi Logic Corporation Magnetoresistive memory for a complex programmable logic device

Also Published As

Publication number Publication date
US20040250052A1 (en) 2004-12-09
EP1506496A2 (de) 2005-02-16
US7225321B2 (en) 2007-05-29
JP3857691B2 (ja) 2006-12-13
JP2005510901A (ja) 2005-04-21
WO2003038644A2 (de) 2003-05-08
WO2003038644A3 (de) 2004-12-23

Similar Documents

Publication Publication Date Title
DE69827589T2 (de) Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
DE4417575C2 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE69914864T2 (de) Steuerung der konfiguration in einer programmierbaren logik-einheit mittels nichtflüchtiger bauelemente
DE4305442C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Testvektors
WO2004021176A2 (de) Verfahren und vorrichtung zur datenverarbeitung
WO2004038599A1 (de) Rekonfigurierbare sequenzerstruktur
DE102004045527B4 (de) Konfigurierbare Logikschaltungsanordnung
DE2907181A1 (de) Befehlssatz-modifizierregister fuer einen datenprozessor
DE60219990T2 (de) Speichertest-Schaltung
WO1998029952A1 (de) VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
DE112007000659T5 (de) Flexibles Halten von Zustandsinformationen eines Mehrkernprozessors
DE112016001836T5 (de) Energieeffiziente Prozessorkernarchitektur für Bildprozessoren
DE112019007371T5 (de) Eine mit einem system-on-chip gekoppelte speichergerätearchitektur
DE10249204A1 (de) Rekonfigurierbare digitale Logikeinheit
DE60221607T2 (de) Nichtflüchtiger Halbleiterspeicher und Informationsgerät
DE4344231C2 (de) Integrierte Schaltungsvorrichtung mit Bit-Slice-Zellen
WO2000017772A2 (de) Konfigurierbarer hardware-block
EP1789889B1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
DE10347975B4 (de) Einrichtung der programmierbaren Logik
WO2006058358A2 (de) Verfahren zum steuern der zyklischen zuführung von instruktionswörtern zu rechenelementen und datenverarbeitungseinrichtung mit einer solchen steuerung
DE102021204651A1 (de) Vorrichtung und Verfahren basierend auf memristiven Domino-Verarbeitungseinheit-basierten Computerparadigmen
DE69733251T2 (de) Datenverarbeitungssystem zur dynamischen Verwendung von Betriebsmitteln
DE102007052219A1 (de) Integrierter Schaltungschip mit Magnetvorrichtungen
DE19625628C1 (de) Halbleiterspeichervorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection