DE102004013484B3 - Rechenwerk - Google Patents

Rechenwerk Download PDF

Info

Publication number
DE102004013484B3
DE102004013484B3 DE102004013484A DE102004013484A DE102004013484B3 DE 102004013484 B3 DE102004013484 B3 DE 102004013484B3 DE 102004013484 A DE102004013484 A DE 102004013484A DE 102004013484 A DE102004013484 A DE 102004013484A DE 102004013484 B3 DE102004013484 B3 DE 102004013484B3
Authority
DE
Germany
Prior art keywords
bit
register
operand
register cells
bus
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 - Fee Related
Application number
DE102004013484A
Other languages
English (en)
Inventor
Norbert Janssen
Holger Sedlak
Tanja Römer
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies 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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102004013484A priority Critical patent/DE102004013484B3/de
Priority to US11/080,998 priority patent/US7483936B2/en
Priority to KR1020050022101A priority patent/KR100723084B1/ko
Priority to FR0502688A priority patent/FR2868565B1/fr
Application granted granted Critical
Publication of DE102004013484B3 publication Critical patent/DE102004013484B3/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3896Bit slicing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Logic Circuits (AREA)

Abstract

Das erfindungsgemäße Rechenwerk umfaßt eine Anzahl von Bit-Slices, die kleiner als die Anzahl von Stellen des zu verarbeitenden Operanden ist. Jeder Bit-Slice hat ein Logikelement und einen Kommunikationsbus zwischen dem Logikelement und der Mehrzahl von Registerzellen. Die Registerzellen sind bezüglich des slice-internen Kommunikationsbusses parallel geschaltet und werden von einer Steuerungseinrichtung so angesteuert, daß immer nur eine Registerzelle der Mehrzahl von Registerzellen mit dem Kommunikationsbus gekoppelt ist. Damit ist einerseits eine einfache Ansteuerung sichergestellt und andererseits werden Querströme der Schaltung auf ein Minimum reduziert.

Description

  • Die vorliegende Erfindung bezieht sich auf Rechenwerke und insbesondere auf Rechenwerke zum Verarbeiten eines Operanden mit einer Anzahl von Stellen, wobei das Rechenwerk eine Anzahl von Bit-Slices hat, die gleich einem m-ten Teil der Anzahl von Stellen des Operanden ist. In anderen Worten ausgedrückt bezieht sich die vorliegende Erfindung auf ein Rechenwerk zum Verarbeiten von einem oder mehreren Operanden, wobei das Rechenwerk weniger Bit-Slices hat als der eine oder die mehreren Operanden.
  • 4 zeigt ein bekanntes Rechenwerk. Das Rechenwerk umfaßt eine Rechenwerkssteuerung 40 und eine Mehrzahl von Bit-Slices 41a, 41b, 41c, wobei in 4 insgesamt N Bit-Slices bzw. Bit-Slice-Einrichtungen dargestellt sind. Ferner umfaßt das Rechenwerk, das in 4 abschnittsweise gezeigt ist, einen externen Rechenwerksbus 42, der ausgebildet ist, um Daten in jeden Bit-Slice zu laden. In der Ausführungsform können auch Daten, die von einem Bit-Slice in den nächsten Bit-Slice weitergegeben werden, also beispielsweise Übertrag-Bits, über slice-interne Kommunikationsleitungen von einem Bit-Slice zum nächsthöheren Bit-Slice übertragen werden. Alternativ kann dies jedoch auch über den externen Bus 42 erfolgen.
  • Lediglich schematisch ist in 4 ein Operand 43 gezeigt, der eine Anzahl von m mal N Stellen hat, dessen Stellenanzahl also zunächst einmal größer als die Anzahl N von Bit-Slices ist. Bei dem speziellen in 4 gezeigten Fall ist der Faktor m größer oder gleich 2, so daß die Anzahl von Stellen des Operanden 43 gleich dem Doppelten, Dreifachen, Vierfachen, ..., M-fachen der Anzahl von Bit-Slices N des in 4 gezeigten Rechenwerks ist.
  • 5 zeigt eine detailliertere Darstellung des Bit-Slices i von 4. Bei dem in 5 gezeigten Ausführungsbeispiel ist das Rechenwerk ausgebildet, um eine Anzahl k von Operanden zu verarbeiten, wobei in 5 lediglich für den Bit-Slice i der Registerbereich 50a für den ersten Operanden sowie der Registerbereich 50b für den zweiten Operanden gezeigt sind. Weitere Registerbereiche für weitere Operanden sind bei 50c angedeutet.
  • Ein Bit-Slice umfaßt ferner ein Logikelement 51, das typischerweise aus einer Anzahl von Logikgattern besteht, um – insbesondere bei Langzahlrechenwerken – eine Addiererzelle zum Addieren einer Mehrzahl von Operanden zu schaffen. Das Logikelement umfaßt hierzu die für einen Addierer nötigen Gatter zum Erzeugen eines Summenbits und eines Übertragbits aus den beiden Eingangsoperandenbits und einem Übertragbit aus dem nächstniedrigeren Bit-Slice, also aus dem Bit-Slice mit der Ordnungszahl i – 1. Bezüglich einer detaillierteren Beschreibung von Bit-Slices und deren Stapelung aufeinander, um ein Rechenwerk zu erhalten, sei auf die DE 3631992 C1 verwiesen.
  • Die Elemente 50a, 50b, 50c, 51 einer Bit-Slice i sind über einen lokalen Kommunikationsbus für den Bit-Slice i, der in 5 mit 52 bezeichnet ist, miteinander verbunden. Im einzelnen umfaßt jede Registereinheit einen Anschluß an den Kommunikationsbus 52, wobei der Kommunikationsbus 52 sich zum externen Bus 42 erstrecken kann, oder über Slice-Ein/Aus-Schaltungen mit dem externen Bus 42 verbunden sein kann. Der Bit-Slice i ist in 5 ferner so gezeigt, daß er über die Steuerungseinrichtung 40, die bereits anhand von 4 dargestellt worden ist, steuerbar ist.
  • Wie es bereits ausgeführt worden ist, dient das in 4 gezeigte Rechenwerk zur Verarbeitung eines Operanden oder mehrerer Operanden. Wird nur ein Operand verarbeitet, so könnte dies beispielsweise eine Inversion des Operanden etc. sein. Typischerweise werden jedoch zwei oder mehrere Operanden miteinander verarbeitet, wie beispielsweise zwei Operanden, wenn einfach addiert wird, oder wie beispielsweise drei Operanden, die addiert werden, um insbesondere für kryptographische Anwendungen, wie beispielsweise das RSA-Kryptosystem, eine effiziente Ausführung der modularen Exponensation umzusetzen, wie es in der DE 3631992 C2 offenbart ist. In diesem Fall besteht das Logikelement 51 von 5 aus einem bitweisen Drei-Operanden-Addierer, der jeweils aus einem Halbaddierer und einem nachgeschalteten Volladdierer für jede Bit-Slice besteht.
  • Ist die Länge des Rechenwerks, also die Anzahl der Bit-Slices N, größer oder gleich der Anzahl von Stellen des Operanden, so wird der Operand typischerweise in einem Eingabezyklus in die entsprechenden Rechenwerk-Registerzellen über den externen Bus 42 eingeladen. Dies bedeutet, daß das niederstwertige Bit in eine Registerzelle des Bit-Slices 41a eingespeist wird, daß das nächsthöhere Bit in den Bit-Slice 41b eingespeist wird, daß das wieder nächsthöhere Bit in den Bit-Slice 41c eingespeist wird, und daß das i-te Bit in den Bit-Slice i eingespeist wird.
  • Hat der Operand nicht mehr Stellen, ist die Anzahl von Stellen des Operanden also kleiner oder gleich der Anzahl von Bit-Slices, so kann in einem Zyklus eine Operation durchgeführt werden, wobei das Ergebnis der Operation wiederum in einem eigenen Ergebnisregister eines Bit-Slices abgespeichert werden kann, oder in dem Register, in dem der ursprüngliche Wert war, wenn der ursprüngliche Wert nicht mehr benötigt wird. Das Ergebnis der Operation kann dann für den externen Bus 42 von 4 ausgegeben werden und z. B. in einem externen Speicher abgespeichert werden. Je nach Anforderung kann das Ergebnis jedoch wieder verwendet werden, um in einem nächsten Rechenschritt wieder über die jeweiligen lokalen Kommunikationsbusse der Bit-Slices den Logikelementen zugeführt zu werden, um wiederum eine erneute Rechnung durchzu führen. Diese Steuerung wird durch die Rechenwerks-Steuerungseinrichtung 40 ausgeführt, die mit jeder Bit-Slice in Wirkverbindung steht, um entsprechende Register-Lade-Funktionalitäten durchzuführen.
  • Bei den vorstehenden Ausführungen wurde angenommen, daß jeder Registerblock 50a, 50b, 50c genau eine einzige Registerzelle hat. Würde in einem solchen Rechenwerk, bei dem jede Bit-Slice für jeden Operanden eine Registerzelle hat, z. B. eine Addition zweier Operanden durchgeführt werden, die beide mehr Stellen haben als Bit-Slices vorhanden sind, so würde über den externen Bus zunächst eine erste Untergruppe von Stellen des Operanden in den Addierer eingespeist werden, um die ersten niedrigeren Stellen des Ergebnisses zu berechnen. Diese würden dann ausgegeben werden, wobei der Übertrag der höchsten Bit-Slice gespeichert wird. Dann würde über den externen Bus die nächste Portion von Stellen in die Bit-Slice-Registerzellen eingespeist werden, um dann unter Verwendung des zuletzt gespeicherten Übertragbits für den niedrigsten Bit-Slice die nächste Portion von Summenbits auszurechnen. Dieses Prozedere kann wiederholt werden, bis sämtliche Stellen des Operanden abgearbeitet sind.
  • Dieses Prozedere ist insbesondere dahingehend nachteilhaft, daß immer, nach jedem Rechenwerks-Zyklus, Daten über den externen Bus übertragen werden müssen.
  • Um diesen Nachteil zu übergehen, wurde das in 6 beschriebene Konzept eingesetzt, bei dem jeder Bit-Slice eine Mehrzahl von Registerzellen hat, und zwar insbesondere m Registerzellen. Insbesondere zeigt 6 den Register-Abschnitt eines Bit-Slices i von 5, also eine vergrößerte Darstellung der Blöcke 50a, 50b samt Steuerungseinrichtung 40 und Kommunikationsbus 52. Der Kommunikationsbus 52 umfaßt bei dem in 6 gezeigten Beispiel einen Hin-Kommunikationsbus 52a und einen Rück-Kommunikationsbus 52b. Im einzelnen umfaßt nunmehr jeder Registerblock 50a, 50b eine Mehrzahl von M seriell geschalteten Registerzellen 61a61d im Hinblick auf den Registerblock 50a sowie eine Mehrzahl von seriell geschalteten m Registerzellen 62a, 62b, 62c, 62d im Hinblick auf den Registerblock 50b. Die Registerzellen 61a, 61b sind also, wie es in 6 gezeigt ist, seriell geschaltet, derart, daß der Ausgang einer Registerzelle mit einem Eingang der nächsten Registerzelle verbunden ist.
  • Zum Einspeichern von Daten in die Registerzellen wird über den rechenwerks-internen Input-Bus die Dateneinspeicherung so vorgenommen, daß zunächst das i-te Bit eines bestimmten Operanden, der in den Registerblock 50a eingespeist wird, der Registerzelle 61d zugeführt wird. Für die nachfolgende Betrachtung sei davon ausgegangen, daß das Rechenwerk N Bit-Slices hat. Der Operand N + i wird dann, in einem nächsten Schritt, vom externen Bus dem Input-Bus 52b zugeführt. Dieser Operand für die Stelle N + i wird nunmehr in die Registerzelle 61d eingespeist, wobei nun jedoch der bisher in der Registerzelle m gespeicherte Operand für die Stelle i in die Registerzelle 3 „nach oben" weitergereicht wird.
  • Zum Einspeichern des nächsten Bits für die Stelle i + 2N wird dieses Bit wiederum von außen zugeführt und der Registerzelle m 61d zugeführt. Zuvor wird jedoch der aktuelle in der Registerzelle m gespeicherte Wert in die höhere Registerzelle 3 weitergereicht. Bevor dies stattfindet, wird jedoch zunächst der in der Registerzelle 3 befindliche Wert in die Registrierung 2 hochgeschoben.
  • Zum Einspeichern der Stelle i + 3N des Operanden wird folgendermaßen vorgegangen. Der aktuell in der Registerzelle 61b gespeicherte Wert wird in die Registerzelle 61a hochgeschoben. Der aktuell in der Registerzelle 61c gespeicherte Wert wird in die Registerzelle 61b hochgeschoben. Der aktuell in der Registerzelle 61d gespeicherte Wert wird in die Registerzelle 61c hochgeschoben. Dann wird schließlich der neu einzu speichernde Wert für die Stelle i + 3N in die Registerzelle m eingeführt.
  • Eine entsprechende Prozedur findet statt, wenn vom Logikelement i über den Bus 52b Werte zugeführt werden, die als Zwischenergebnis des letzten Schritts berechnet worden sind. Sie werden wieder „von unten nach oben" in die seriell geschalteten Registerzellen eingespeist. Entsprechend werden dann, wenn Registerzelleninhalte über den Output-Bus 52a z. B. zum Logikelement oder zum externen Bus, also „nach außen", transportiert werden sollen, sequentiell herausgeführt.
  • Dieses Prozedere ist insbesondere dann von Vorteil, wenn die Anzahl der Registerzellen relativ groß ist, also insbesondere größer als 2 oder 3. Dies bedeutet, daß sehr große Zahlen mit relativ kleinen Rechenwerken verarbeitet werden können. Im einzelnen sei beispielhaft der Fall dargelegt, daß Operanden mit einer Größe von bis zu 1.120 Bits verarbeitet werden sollen, und daß das Rechenwerk N gleich 280 Bit-Slices hat. In einem solchen Fall hat jeder Registerblock in der Bit-Slice vier Registerzellen, die seriell hintereinander geschaltet sind.
  • Das Laden kann in einem eigenen Ladezyklus seriell stattfinden, während bereits im Logikelement andere Bits verarbeitet werden. Andererseits ist es erforderlich, daß, um einen schnellen Betrieb zu erreichen, gewissermaßen gleichzeitig alle Registerzellen mit neuen Bits beschrieben werden. Dies bedeutet, in anderen Worten ausgedrückt, daß zu einem Zeitpunkt gewissermaßen alle Eingänge/Ausgänge aller Registerzellen geöffnet werden, damit das „Verschieben" der Registerzelleninhalte stattfinden kann.
  • Die Registerbits werden typischerweise als Latches realisiert, wobei für jeden der Anzahl von m Teilzyklen, die notwendig sind, um eine Addition abzuarbeiten, das betreffende Registerbit in einem Puffer gespeichert und alle übrigen m – 1 Bits sukzessiv durch die sequentiell angeordneten Latches weitergereicht werden, wie es anhand von 6 dargelegt worden ist. Dadurch, daß eine Zwischenspeicherung (typischerweise irgendwo auf dem Weg des Output-Busses 52a oder auf dem Weg des Input-Busses 52b) benötigt wird, ist diese Implementierung insbesondere hinsichtlich des Timings problematisch. Ferner ist die Ansteuerung komplex, was insbesondere dahingehend problematisch ist, daß nur festverdrahtete Steueroptionen innerhalb der Bit-Slices verwendet werden können.
  • Ein weiterer Nachteil von ganz erheblicher Bedeutung ist die Tatsache, daß erhebliche Querströme generiert werden, wenn die Registerzellen in der beschriebenen sequentiellen Weise betrieben werden. Insbesondere bei CMOS-Schaltungen, die typischerweise verwendet werden, wird im Halten-Zustand, also wenn keine Veränderung eines Registers auftritt, kein oder nur ein geringer Querstrom erzeugt. Ändert ein Register jedoch seinen Zustand, so werden merkbare Querströme erzeugt, die von einer chipinternen Stromquelle produziert werden müssen. Wie es bereits ausgeführt worden ist, können im ungünstigen Fall alle m Registerzellen der in 6 gezeigten Schaltungstopologie ihren Zustand ändern. Dies heißt, daß eine Stromversorgung eines Chips einen ganz erheblichen Strom erzeugen muß, der gleich der Summe sämtlicher Querströme ist. Nachdem typische Stromversorgungen über eine Spannungsquelle mit einem entsprechenden Spannungsregler implementiert sind, ist für diesen Fall der hohen Querströme eine außerordentlich starke Spannungsregelung erforderlich. Wird diese nicht vorgesehen, so wird auf dem Chip ein Spannungsabfall auftreten. Ein solcher komfortabel ausgelegter Spannungsregler, der einem solchen Spannungsabfall entgegen wirken kann, benötigt jedoch einerseits viel Chipfläche und ist andererseits im Hinblick auf den Entwurf im Vergleich zu einfacheren Spannungsreglern aufwendiger.
  • Zusammenfassend führt somit das in 6 gezeigte Konzept zu einem teureren Chip, da im Hinblick auf die Ansteuerung und deren Komplexität zusätzliche Chipfläche benötigt wird, und da auch im Hinblick auf die hohen Querströme, die potentiell auftreten können, teure Spannungsregler auf dem Chip benötigt werden.
  • Insbesondere bei Massenanwendungen, wie beispielsweise bei Chips für Chipkarten, können jedoch bereits kleine Preisdifferenzen aufgrund der großen Stückzahlen dazu führen, daß ein Produkt überlebt, während ein anderes Produkt keine Marktakzeptanz erreicht.
  • Die DE 32 28 018 A1 offenbart ein Schlüsselsystem für die RSA-Kryptographie. Für Berechnungen innerhalb einer RSA-Verschlüsselung werden ein M-Register, ein e-Register, ein n-Register und ein C-Register zur Speicherung der entsprechenden Variablen verwendet. Die Inhalte des M-Registers und des C-Registers werden einem Selektor zugeführt. Der Selektor wählt eines der beiden Signale und liefert das ausgewählte Signal an ein M2-Register. Ein Multiplizierer/Dividiererwerk erhält dieses Signal und ein anderes Signal. Das Multiplizierer/Dividiererwerk ist in einen Quotientenrechner und einen Hauptaddierer unterteilt. Der Teil ohne Quotientenrechner wird in einzelne Gruppen aufgeteilt. Jede der Gruppen hat eine Steuerung. Ein Register mit einer Bitlänge von beispielsweise 512 wird in 8 Register mit einer Bitlänge von jeweils 64 Bits unterteilt. Auch der Hauptaddierer ist in 8 Gruppen unterteilt.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein einfacheres und damit preisgünstigeres Rechenwerk zu schaffen.
  • Diese Aufgabe wird durch ein Rechenwerk nach Patentanspruch 1 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß das Problem der komplexen Ansteuerung und insbesondere der hohen Querströme dadurch angegangen werden kann, wenn die m Registerzellen in einem Bit-Slice, nicht mehr, wie im Stand der Technik der Fall, seriell hintereinander geschaltet werden, sondern parallel geschaltet werden. Dies bedeutet, daß jede Registerzelle eine Kopplung zum slice-internen lokalen Kommunikationsbus hat und selektiv ansteuerbar ist, derart, daß diese Registerzelle zum Lesen oder Schreiben geöffnet werden kann, während alle anderen Registerzellen geschlossen sind. Damit wird dann, wenn ein in der Registerzelle gespeichertes Bit zu einer Logikeinheit transportiert wird, ein Querstrom auftreten, der dem Querstrom entspricht, wenn eine einzige Registerzelle ihren Inhalt ändert. Dies stellt eine erhebliche Verbesserung im Vergleich zum Stand der Technik dar, bei dem potentiell der m-fache Querstrom auftreten konnte.
  • Ferner ist die Ansteuerung einfach, da immer nur eine „1-aus-M"-Codierung eingesetzt werden braucht, um eine Registerzelle zu öffnen, also mit dem Kommunikationsbus zu verbinden, während die anderen Registerzellen geschlossen gehalten werden.
  • Die vorliegende Erfindung ist ferner dahingehend vorteilhaft, daß ohne weiteres eine Dual-Rail-Implementierung mit Initialisierungstakt zwischen zwei Nutztakten, also mit Precharge bzw. Pre-Discharge eingesetzt werden kann. In diesem Fall hat der Kommunikationsbus eine Busleitung für Daten und eine weitere Busleitung für negierte Daten. Aufgrund der parallelen Anordnung der Registerzellen bezüglich der Datenbusse ist diese busbezogene Dual-Rail-Architektur ohne weiteres implementierbar, nämlich einfach durch einen Input-Schalter sowie einen Output-Schalter für eine Registerzelle.
  • Im Gegensatz zum Datentakt, bei dem immer eine Registerzelle mit dem Kommunikationsbus verbunden ist, während alle anderen Registerzellen funktionsmäßig von dem Kommunikationsbus abgetrennt sind, sind im Initialisierungstakt sämtliche Registerzellen funktionsmäßig vom Kommunikationsbus abgetrennt.
  • Je nach Implementierung können jedoch auch Dual-Rail-Register eingesetzt werden, die ebenfalls initialisiert werden können, um eine optimale Sicherheit gegenüber Seitenkanal-Angriffen zu ermöglichen.
  • In der Implementierung kann derselbe Datenbus ohne weiteres als Eingabebus und als Ausgabebus verwendet werden. Fall jedoch ein separater Input-Bus oder ein separater Output-Bus benötigt werden, ist dies ebenfalls ohne weiteres durchführbar, da immer nur eine entsprechende Anzahl von Input-/Output-Schaltern für die einzelnen Register vorgesehen werden müssen.
  • Das erfindungsgemäße Konzept basiert somit auf dem parallelen Anschluß der m Latches eines Bit-Slices an einem lokalen Bus des Bit-Slices. Je nach Aufgabe des Registers genügt ein Bus zum Lesen und Schreiben oder es müssen zwei Busse implementiert werden.
  • Damit ergibt sich der Vorteil der einfachen Ansteuerung, da immer nur ein einziges Register geöffnet werden muß. Da kein Weiterreichen der Registerbits notwendig ist, werden nur verschwindend geringe Querströme generiert. Statt der sequentiellen Konfiguration, wie sie eingangs dargestellt worden ist, wird erfindungsgemäß eine parallele Verschaltung der Registerzellen im Hinblick auf die Immunität gegenüber Seitenkanal-Attacken gewählt.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 eine schematische Darstellung des Registerblocks eines Bit-Slices i gemäß der vorliegenden Erfindung;
  • 2 eine detailliertere Darstellung von zwei Registerzellen von 1;
  • 3a eine Übersichtsdarstellung über die „1-aus-M"-Codierung zur Ansteuerung der Registerzellen mit dazwischenliegenden Initialisierungstakten;
  • 3b eine Registerzelle in Dual-Rail-Technik;
  • 4 ein schematisches Diagramm eines Rechenwerks, das aus N Bit-Slices aufgebaut ist;
  • 5 eine detaillierte Darstellung eines Bit-Slices i von 4;
  • 6 eine bekannte Implementierung eines Bit-Slices i mit einer Anzahl von m seriell geschalteten Registerzellen.
  • 1 zeigt eine schematische Darstellung zweier Registerblöcke eines erfindungsgemäßen Rechenwerks zum Verarbeiten von wenigstens einem und vorzugsweise mehreren Operanden, wobei jeder Operand eine Anzahl von Stellen hat. Das erfindungsgemäße Rechenwerk ist ein Rechenwerk vom Bit-Slice-Architektur-Typ, wie er anhand von 4 dargestellt worden ist. Das erfindungsgemäße Rechenwerk umfaßt somit eine Anzahl von Bit-Slices 41a, 41b, 41c (4), wobei die Anzahl von Bit-Slices kleiner als die Anzahl von Stellen des zumindest einen Operanden ist.
  • Jeder Bit-Slice des Rechenwerks umfaßt wieder, wie im Falle des anhand von 4 gezeigten bekannten Rechenwerks, ein Logikelement 51 (5). Der Bit-Slice i des erfindungsgemäßen Rechenwerks, der in 1 dargestellt ist, umfaßt ferner einen lokalen Bit-Slice-Kommunikationsbus 10 sowie für jeden Registerblock eine Mehrzahl von Registerzellen 12a, 12b, 12c, 12d für den linken Registerblock oder 14a, 14b, 14c, 14d für den rechten Registerblock von 1. Die Registerzellen 12a, 12b, 12c, 12d sind, wie es aus 1 ersichtlich ist, mit dem Kommunikationsbus 10 so gekoppelt, daß die Registerzellen bezüglich des Kommunikationsbusses für einen Registerblock parallel geschaltet sind. Insbesondere hat jede Zelle in 1 einen Bit-Ausgang 13a, 13b, 13c, 13d, über den das in der jeweiligen Zelle gespeicherte Bit zum Kommunikationsbus 10 ausgebbar ist. Vorzugsweise umfaßt jede Zelle auch einen Ausgang für das jeweilige negierte Bit 15a, 15b, 15c, 15d.
  • Erfindungsgemäß ist ferner jede Registerzelle über eine eigene Steuerleitung 17a, 17b, 17c, 17d ansteuerbar, dahingehend, daß sie von dem Kommunikationsbus 10 abgetrennt ist oder daß sie mit dem Kommunikationsbus 10 zu Zwecken des Lesens oder Schreibens gekoppelt ist.
  • Die Steuerleitungen 17a17d werden über eine irgendwo auf dem Chip angeordnete Steuerungseinrichtung 20 angesteuert, derart, daß immer die korrekte Zelle mit dem Bus 10 verbunden wird. Die Steuerungseinrichtung 20 ist somit vorgesehen, um die Mehrzahl von Registerzellen so zu steuern, daß nur eine der Registerzellen mit dem Kommunikationsbus gekoppelt ist, um eine gespeicherte Stelle des Operanden über den Kommunikationsbus zum Logikelement zu übertragen oder eine Stelle zu Zwecken des Speicherns in der Registerzelle vom Logikelement zu erhalten, wobei die anderen Registerzellen von dem Kommunikationsbus abgekoppelt bleiben.
  • Vorzugsweise ist die Anzahl der Zellen in einem Registerblock einer Bit-Slice i für einen Operanden gleich m, wobei der zu verarbeitende Operand eine Anzahl von m mal N Stellen hat, wobei N die Anzahl der Bit-Slices des Rechenwerks ist. Es ist jedoch ohne weiteres ersichtlich, daß das erfindungsgemäße Konzept auch dann funktioniert, wenn die Anzahl von Stellen des Operanden a = m mal N ist, da es insbesondere für Addiererrechenwerke unerheblich ist, ob eine bestimmte Anzahl von Bit-Slices, die eigentlich für höhere Bits als das höchstwertige Bit des Operanden vorgesehen wären, gewissermaßen „leerlaufen". Anders ausgedrückt können diese Bit-Slices entweder deaktiviert werden oder einfach mit Nullen gespeist werden, um die entsprechenden Bit-Slices de facto zu „neutralisieren".
  • Bei dem in 1 gezeigten Ausführungsbeispiel umfaßt jede Registerzelle zwei Ausgänge, nämlich einen Ausgang für das Bit 13a beispielsweise und einen Ausgang für das negierte Bit 15a beispielsweise. Diese Implementierung ist insbesondere für eine Anwendung des Dual-Rail-Konzepts auf den sliceinternen lokalen Kommunikationsbus günstig. Zu diesem Zweck wird Bezug nehmend auf 2 eine detailliertere Darstellung der Registerzellen gegeben. So umfaßt eine Registerzelle bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung zwei gegengekoppelte Inverter 22a, 22b bzw. 24a, 24b für die Zelle 1 12a bzw. die Zelle 2 12b von 1. Die Steuerleitung 17a beispielsweise für die Zelle 1 ist ausgebildet, um zwei Schalter zu betätigen, wobei ein Schalter ausgebildet ist, um die Zelle mit der Leitung 13d für ein Datenbit zu koppeln (Schalter 26a), und wobei der andere Schalter ausgebildet ist, um die Speicherzelle mit der Leitung 15d für das negierte Bit zu koppeln (26b). Entsprechende Schalter 28a, 28b existieren für die zweite Zelle 12b. Bei dem bevorzugten Ausführungsbeispiel stellen die Schalter 26a, 26b, 28a, 28b eine leitende Verbindung dar, wenn auf der entsprechenden Steuerleitung 17a bzw. 17b ein positiver Spannungsimpuls anliegt, während in dem Fall, in dem an der Steuerleitung keine Spannung anliegt, die Schalter 26a, 26b, 28a, 28b einen Leerlauf darstellen, derart, daß die Registerzelle von dem Bus 13d bzw. 15d abgekoppelt ist.
  • Die Busleitungen 13d, 15d sind ferner, wie es in 2 gezeigt ist, mit einer Initialisierungseinrichtung 30 gekoppelt, die ausgebildet ist, um dann, wenn ein Initialisierungstakt durch eine Steuerleitung 32 signalisiert wird, einen Precharge-Betrieb oder einen Pre-Discharge-Betrieb auszuführen. Dies bedeutet, daß im Precharge-Betrieb beide Leitungen 13d, 15d auf einen hohen Spannungszustand gebracht werden. Pre-Discharge-Betrieb heißt, daß beide Leitungen 13d, 15d auf einen niedrigen Spannungszustand gebracht werden. Der Precharge-Betrieb bzw. Pre-Discharge findet immer zwischen zwei Datentakten statt, so daß auf einen Datentakt ein Initialisierungstakt folgt. Damit wird sichergestellt, daß unabhängig davon, ob sich tatsächliche Datenzustände ändern oder nicht, immer von einem Takt zum nächsten auf den Busleitungen 13d, 15d genau eine Änderung stattfindet, so daß unabhängig von den über den Bus 13d, 15d übertragenen Daten dasselbe Stromprofil erzeugt wird.
  • Dieser Betrieb ist in der in 3 gezeigten Tabelle schematisch dargestellt. Aus der in 3 gezeigten Tabelle ist ferner die One-Hot-Codierung zu sehen, die unter den Steuerleitungen verwendet wird, wenn ein Datentakt stattfindet. In dem ersten Takt ist nur die Steuerleitung 1 hoch, was bedeutet, daß die Zelle 1 12a von 1 mit dem Bus verbunden ist, um Daten aus der Zelle zum Logikelement zu bringen oder um Daten vom Logikelement in die Zelle zu bringen. Die Steuerleitungen 2, 3 und 4 sind dagegen mit einer Null beaufschlagt, so daß die entsprechenden Speicherzellen 12b, 12c, 12d vom lokalen Kommunikationsbus abgekoppelt sind. Dann folgt ein Initialisierungstakt, in dem durch die Initialisierungseinrichtung 30 von 2 beide Busleitungen, also die Busleitung für das Bit und die Busleitung für das invertierte Bit auf denselben Zustand gebracht werden. Dann folgt ein Datentakt, in dem nunmehr nur der Inhalt der zweiten Registerzelle zum Logikelement gebracht wird bzw. ein von dem Logikelement bereitgestelltes Datum in die Registerzelle 2 eingespeist wird, jedoch in keine andere Zelle. Dann folgt wieder ein Initialisierungstakt etc.
  • Es sei darauf hingewiesen, daß bei dem in 1 gezeigten Ausführungsbeispiel von der Steuereinrichtung 20 zu jeder Zelle eine eigene Leiterbahn ausgeführt ist. Es könnte jedoch auch nur eine einzige Leitung bereitgestellt werden, die mit jeder Zelle verbunden ist. In diesem Fall müßte innerhalb einer Zelle eine Decodierung beispielsweise in Form eines Multiplexers stattfinden, um das auf der Steuerleitung liegende Signal zu interpretieren, um herauszufinden, ob eine aktuell betrachtete Registerzelle mit dem Bus verbunden werden soll oder nicht. Aufgrund der Einfachheit der Implementierung wird jedoch bevorzugt, für jede Registerzelle eine eigene Steuerleitung zu haben.
  • Obgleich in 1 eine Dual-Rail-Ausführung gezeigt ist, bei der jede Zelle sowohl einen Bit-Anschluß auch als einen Anschluß für das negierte Bit hat, würde auch eine Single- Rail-Ausführung möglich sein. In diesem Fall würden die Anschlüsse 15a, 15b, 15c, 15d und die entsprechende Busleitung des Busses 10 nicht vorhanden sein. Die Dual-Rail-Ausführung kann jedoch für die in 2 gezeigten Latches ohne weiteres verwendet werden, da die Latches aufgrund ihrer Konstruktion bereits sowohl das Datenbit als auch das negierte Datenbit ohne weiteren schaltungstechnischen Aufwand liefern.
  • Obgleich in den 1 und 2 eine Implementierung gezeigt ist, bei der der lokale Bit-Slice-Kommunikationsbus 10 sowohl zum Übertragen von Daten zum Logikelement als auch zum Übertragen von Daten vom Logikelement gezeigt ist, existieren auch andere Implementierungen, bei denen ein eigener Bus zum Übertragen von Daten zum Logikelement und ein eigener Bus zum Übertragen von Daten vom Logikelement zur Registerzelle vorgesehen sind. In diesem Fall würde jede Registerzelle einen zusätzlichen Ausgang für das nicht-negierte Bit sowie einen zusätzlichen Ausgang für das negierte Bit haben, wobei diese beiden zusätzlichen Ausgänge für einen weiteren Kommunikationsbus vorgesehen sind, um die geforderte Zwei-Wege-Funktionalität auf zwei verschiedenen Bussen zu implementieren.
  • Obgleich in den vorstehenden Ausführungen dargelegt worden ist, daß im Initialisierungstakt, der durch die Precharge-/Pre-Discharge-Einrichtung 30 in 2 bewirkt wird, alle Speicherzellen abgeklemmt werden, kann dieses Dual-Rail-Konzept mit Initialisierung auch auf ein Register-Dual-Rail-Konzept ohne weiteres erweitert werden. So ist es aus 2 ersichtlich, daß es generell nicht möglich ist, die Speicherzelle 1 z. B. auf beiden Seiten, also auf der linken Seite 15d und der rechten Seite 13d auf denselben Zustand zu bringen. Dies liegt daran, daß die beiden Inverter 22a, 22b gegensinnig verschaltet sind und nur dann einen stabilen möglichen Zustand haben, wenn links und rechts bezüglich der Inverter ein unterschiedlicher Zustand ist.
  • Daher wird bei dem in 2 gezeigten Konzept im Dual-Rail-Betrieb eine Abkopplung von allen Speicherzellen durchgeführt, so daß das Dual-Rail-Konzept nur für den lokalen Bit-Slice-Kommunikationsbus implementiert wird. Für einen noch sicheren Betrieb könnte jedoch auch dann, wenn auf ein Register geschrieben werden soll, also wenn Daten von dem Logikelement zur Registerzelle zurückübertragen werden, der Dual-Rail-Betrieb mit Initialisierung auf eine Registerzelle übertragen werden. Zu diesem Fall würde die in 2 gezeigte Registerzelle 1 beispielsweise durch ein weiteres Paar aus gekoppelten Invertern erweitert werden, die nebeneinander geschaltet sind.
  • Dieses im Dual-Rail-Betrieb betreibbare Register ist in 3b schematisch dargestellt. Es zeichnet sich dadurch aus, daß es gewissermaßen zwei Paare von gegengekoppelten Invertern, nämlich 22a, 22b und 23a, 23b hat. Beide Inverter sind über eine Abschlußeinrichtung bzw. einen steuerbaren Abschluß 27 verbunden. Der steuerbare Abschluß 27 ist ausgebildet, um die rechte Seite des Inverterpaars 22a, 22b von der linken Seite des Inverterpaars 23a, 23b gewissermaßen zu trennen, so daß eine Initialisierung nicht nur auf den Busleitungen 15d, 13d durchgeführt werden kann, sondern auch in der Registerzelle selbst. Bei der in 3b gezeigten Schaltung ist es nunmehr möglich, auch im Initialisierungstakt die beiden Schalter 26a, 26b geöffnet zu halten, so daß die linke Seite des Inverterpaars 22a, 22b genauso wie die rechte Seite des Inverterpaars 23a, 23b auf denselben Spannungszustand initialisiert werden. Dies ist dann sinnvoll, wenn vom Logikelement Daten zurück auf eine Registerzelle geschrieben werden. Damit wird sichergestellt, daß unabhängig von den Daten, die auf die Registerzelle geschrieben werden, also unabhängig davon, ob der Zustand der Registerzelle geändert wird oder nicht, immer eine Änderung im linken Inverterpaar 22a, 22b oder im rechten Inverterpaar 23a, 23b auftritt, so daß auch Seitenkanalangriffe direkt auf das Register selbst erfolglos bleiben werden. Die Abschlußeinrichtung 27 ist in diesem Fall ausgebildet, um eine Potentialtrennung zwischen den beiden Inverterpaaren zu erreichen, wobei diese Potentialtrennung nur dann wichtig ist, wenn die Registerpaare im Precharge- bzw. Pre-Discharge-Betrieb sind. Falls die Registerzelle aus 3b im normalen Betrieb ist, kann die Abschlußeinrichtung eine Potentialverbindung beibehalten, muß dies aber nicht.
  • 10
    Kommunikationsbus
    12a – 12d
    Registerzellen für den ersten Operanden
    13a – 13d
    Ausgang einer Registerzelle für ein Bit
    14a – 14d
    Registerzellen für den zweiten Operanden
    15a – 15d
    Ausgang einer Registerzelle für ein invertier
    tes Bit
    17a – 17d
    jeweilige Steuerleitung für eine Registerzelle
    20
    Steuerungseinrichtung
    22a, 22b
    Inverterpaar der erste Registerzelle
    23a, 23b
    zweites Inverterpaar für die Dual-Rail-
    Registerzelle
    24a, 24b
    Inverterpaar der zweiten Registerzelle
    26a, 26b
    Eingangs-/Ausgangsschalter für die erste
    Registerzelle
    27
    steuerbare Abschlußeinrichtung
    28a, 28b
    Eingangs-/Ausgangsschalter für die zweite
    Registerzelle
    30
    Initialisierungseinrichtung
    32
    Steuerung für die Initialisierungseinrichtung
    40
    Rechenwerksteuerung
    41a – 41c
    Bit-Slices
    42
    externer Bus
    43
    Operand mit m mal N Stellen
    50a
    Registerblock für den ersten Operanden
    50b
    Registerblock für den zweiten Operanden
    50c
    Registerblöcke für weitere Operanden
    51
    Logikelement
    52
    lokaler Kommunikationsbus
    52a
    Output-Kommunikationsbus
    52b
    Input-Kommunikationsbus
    61a – 61d
    Registerzellen 1 bis m
    62a – 62d
    Registerzellen 1 bis m

Claims (11)

  1. Rechenwerk zum Verarbeiten eines Operanden mit einer Anzahl von Stellen mit folgenden Merkmalen einer Anzahl von Bit-Slices (41a, 41b, 41c), wobei die Anzahl von Bit-Slices kleiner als die Anzahl von Stellen des Operanden ist, wobei ein Bit-Slice ein Logikelement (51) und eine Mehrzahl von Registerzellen (12a, 12b, 12c, 12d) hat, wobei ein Kommunikationsbus (10) zwischen der Mehrzahl von Registerzellen und dem Logikelement (51) vorgesehen ist, wobei jede der Mehrzahl von Registerzellen mit dem Kommunikationsbus (10) so gekoppelt ist, daß die Mehrzahl von Registerzellen bezüglich des Kommunikationsbusses parallel geschaltet sind; und einer Steuerungseinrichtung (20) zum Steuern der Mehrzahl von Registerzellen so, daß nur eine der Registerzellen mit dem Kommunikationsbus gekoppelt ist, um eine gespeicherte Stelle des Operanden über den Kommunikationsbus zu dem Logikelement zu übertragen, oder um eine zu speichernde Stelle von dem Logikelement zu der Registerzelle zu übertragen, wobei die anderen Registerzellen von dem Kommunikationsbus abgekoppelt sind.
  2. Rechenwerk nach Anspruch 1, bei dem die Anzahl von Bit-Slices des Rechenwerks gleich einem m-ten Teil der Stellen des Operanden ist, wobei m größer oder gleich 2 ist.
  3. Rechenwerk nach Anspruch 1 oder 2, bei dem die Steuereinrichtung (20) ferner ausgebildet ist, um eine Ausgabe des Logikelements in dieselbe Registerzelle zu speichern, aus der eine Eingabe zur Berechnung der Ausgabe über den Kommunikationsbus (10) zu dem Logikelement übertragen wurde.
  4. Rechenwerk nach einem der Ansprüche 1, 2 oder 3, bei dem eine Registerzelle als Latch (22a, 22b, 23a, 23b) ausgebildet ist, wobei der Latch einen ersten Eingang für ein Bit und einen zweiten Eingang für ein negiertes Bit aufweist.
  5. Rechenwerk nach Anspruch 4, bei dem der Kommunikationsbus eine erste Busleitung (13d), die über einen ersten Schalter (26a) mit dem ersten Eingang verbunden ist, und eine zweite Busleitung (15d) aufweist, die über einen zweiten Schalter (26b) mit dem zweiten Eingang verbunden ist, und wobei die Steuereinrichtung (40) ausgebildet ist, um zu einem Zeitpunkt den ersten und den zweiten Schalter nur von einer Speicherzelle zu schließen, wobei die ersten Schalter und die zweiten Schalter von den anderen Registerzellen in dem Bit-Slice geöffnet sind.
  6. Rechenwerk nach Anspruch 5, das für einen Initialisierungsbetrieb mit Precharge oder Pre-Discharge ausgebildet ist, wobei die Steuereinrichtung ferner eine Initialisierungseinrichtung (30) aufweist, die ausgebildet ist, um in einem Initialisierungstakt alle ersten und zweiten Schalter der Registerzellen in dem Bit-Slice zu öffnen, und wobei in dem Initialisierungstakt sowohl die erste Busleitung (15d) als auch die zweite Busleitung (13d) auf denselben Spannungszustand gebracht werden.
  7. Rechenwerk nach einem der vorhergehenden Ansprüche, bei dem das Rechenwerk zur Verarbeitung einer Mehrzahl von Operanden ausgebildet ist, bei dem ein Bit-Slice für jeden der Operanden eine Anzahl von Registerzellen aufweist, und wobei für jeden Operanden ein eigener Kommunikationsbus vorgesehen ist, wobei die Registerzellen für einen Operanden bezüglich des Kommunikationsbusses für den Operanden parallel geschaltet sind.
  8. Rechenwerk nach einem der vorhergehenden Ansprüche, bei dem das Rechenwerk N Bit-Slices hat, und bei dem die Steuereinrichtung (20) ausgebildet ist, um die Registerzellen eines i-ten Bit-Slices so zu laden, daß in der ersten Registerzelle eine i-te Stelle des Operanden gespeichert ist, in der zweiten Registerzelle eine (i+N)-te Stelle des Operanden gespeichert ist, und bei dem die Steuereinrichtung (20) ausgebildet ist, um zur Verarbeitung des Operanden zunächst in alle N Bit-Slices die in den jeweiligen ersten Registerzellen gespeicherten Stellen des Operanden zu verarbeiten und dann in allen N Bit-Slices die in den jeweiligen zweiten Registerzellen gespeicherten Stellen des Operanden zu verarbeiten.
  9. Rechenwerk nach einem der vorhergehenden Ansprüche, das eine Anzahl von Bit-Slices hat, die größer oder gleich 140 ist, und bei dem die Anzahl von Stellen des Operanden größer oder gleich 280 ist.
  10. Rechenwerk nach einem der vorhergehenden Ansprüche, das für die Verarbeitung einer Mehrzahl von Operanden ausgebildet ist, wobei der Kommunikationsbus eine Mehrzahl von Dezentral-Busleitungen aufweist, wobei jede Dezentral-Busleitung für die Mehrzahl von Registerzellen eines Operanden vorgesehen ist, und wobei der Kommunikationsbus eine Zentral-Busleitung aufweist, mit der jede der Dezentral-Busleitungen verbunden ist.
  11. Rechenwerk nach einem der vorhergehenden Ansprüche, bei dem die Steuereinrichtung für jeden Operanden m Steuerleitungen aufweist, wobei jede Steuerleitung mit einer eigenen Registerzelle der Mehrzahl von Registerzellen gekoppelt ist und wobei zu einem Zeitpunkt nur eine der Steuerleitungen einen ersten Zustand hat und alle anderen der Steuerleitungen einen zweiten Zustand haben, der sich von dem ersten Zustand unterscheidet.
DE102004013484A 2004-03-18 2004-03-18 Rechenwerk Expired - Fee Related DE102004013484B3 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102004013484A DE102004013484B3 (de) 2004-03-18 2004-03-18 Rechenwerk
US11/080,998 US7483936B2 (en) 2004-03-18 2005-03-14 Calculating unit
KR1020050022101A KR100723084B1 (ko) 2004-03-18 2005-03-17 계산 장치
FR0502688A FR2868565B1 (fr) 2004-03-18 2005-03-18 Unite de calcul

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004013484A DE102004013484B3 (de) 2004-03-18 2004-03-18 Rechenwerk

Publications (1)

Publication Number Publication Date
DE102004013484B3 true DE102004013484B3 (de) 2005-08-11

Family

ID=34745448

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004013484A Expired - Fee Related DE102004013484B3 (de) 2004-03-18 2004-03-18 Rechenwerk

Country Status (4)

Country Link
US (1) US7483936B2 (de)
KR (1) KR100723084B1 (de)
DE (1) DE102004013484B3 (de)
FR (1) FR2868565B1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007007699A1 (de) * 2007-02-09 2008-08-14 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
US9202041B2 (en) * 2013-02-07 2015-12-01 Fairchild Semiconductor Corporation Permanent lockout attack detection
US9423820B2 (en) 2013-07-31 2016-08-23 Fairchild Semiconductor Corporation Complimentary bit slicing side channel attack defense

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3228018C2 (de) * 1981-07-27 1985-03-21 Nippon Telegraph & Telephone Public Corp., Tokio/Tokyo Schlüsselsystem für RSA-Kryptographie
DE3631992C2 (de) * 1986-03-05 1988-12-08 Holger 3300 Braunschweig De Sedlak

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4393468A (en) * 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Bit slice microprogrammable processor for signal processing applications
US4939575A (en) * 1987-11-13 1990-07-03 Texas Instruments Incorporated Fault-tolerant serial video processor device
KR0141494B1 (ko) * 1988-01-28 1998-07-15 미다 가쓰시게 레벨시프트회로를 사용한 고속센스 방식의 반도체장치
KR930001099B1 (ko) * 1989-12-26 1993-02-15 재단법인 한국전자통신연구소 비트 슬라이스 소자를 이용한 마이크로 컴퓨터 시스템
DE69424626T2 (de) * 1993-11-23 2001-01-25 Hewlett Packard Co Parallele Datenverarbeitung in einem Einzelprozessor
US5784313A (en) * 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
JPH0969061A (ja) * 1995-08-30 1997-03-11 Sony Corp ビデオ信号用プロセツサ
GB9707861D0 (en) * 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
US6140839A (en) * 1998-05-13 2000-10-31 Kaviani; Alireza S. Computational field programmable architecture
JP2002063025A (ja) * 2000-08-18 2002-02-28 Fujitsu Ltd 可変長データ処理用プロセッサ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3228018C2 (de) * 1981-07-27 1985-03-21 Nippon Telegraph & Telephone Public Corp., Tokio/Tokyo Schlüsselsystem für RSA-Kryptographie
DE3631992C2 (de) * 1986-03-05 1988-12-08 Holger 3300 Braunschweig De Sedlak

Also Published As

Publication number Publication date
KR20060043731A (ko) 2006-05-15
KR100723084B1 (ko) 2007-05-29
FR2868565A1 (fr) 2005-10-07
US7483936B2 (en) 2009-01-27
FR2868565B1 (fr) 2007-04-20
US20050210088A1 (en) 2005-09-22

Similar Documents

Publication Publication Date Title
DE3913219C2 (de)
DE2905675C2 (de)
DE69822796T2 (de) Nutzerprogrammierbarer prozessor
DE2450528C3 (de) Einrichtung zur Anpassung von Taktsignalen Informationssignale auf Übertragungsleitungen mit unterschiedlichen Laufzeitverhältnissen
DE3606650A1 (de) Hardware logik-simulator
EP0010173A1 (de) Halbleiterplättchen mit verbesserter Prüfbarkeit der monolithisch hochintegrierten Schaltungen
EP0217122B1 (de) Schaltungsanordung mit einer matrixförmigen Speicheranordnung zur variabel einstellbaren Verzögerung digitaler Signale
DE2364253A1 (de) Schaltungsanordnung fuer mikroprogrammierte geraete der datenverarbeitung
DE1115488B (de) Datenverarbeitungssystem
DE102004013484B3 (de) Rechenwerk
DE1935845A1 (de) Datenverarbeitungsanlage mit mehreren Operatorfamilien-Steuereinheiten
EP1540460A2 (de) Vorrichtung und verfahren zum umsetzen und addiererschaltung
DE2121490A1 (de) Orthogonaler Datenspeicher
DE60221515T2 (de) Speichersystem für schleifenbeschleunigung nach wunsch
DE3214230A1 (de) Speicheranordnung mit mehrfach-zugriffsleitungen
DE10227618B4 (de) Logikschaltung
DE10224742B4 (de) Datenverarbeitungsschaltung und Verfahren zum Übertragen von Daten
EP1468491B1 (de) Integrierte schaltung und verfahren zum betrieb der integrierten schaltung
DE60307050T2 (de) Schaltung und verfahren für logische operationen
DE3933172A1 (de) Akkumulator fuer komplexe zahlen
DE1094020B (de) Periodisch arbeitende numerische Rechenmaschine
DE3331043C2 (de)
DE102004063898B4 (de) Übertragungsvorrichtung
DE4422189A1 (de) Halbleiterspeicher-Steuereinheit
EP0193157A1 (de) Schaltungsanordnung mit einer matrixförmigen Speicheranordnung zur variabel einstellbaren Verzögerung digitaler Signale

Legal Events

Date Code Title Description
8100 Publication of patent without earlier publication of application
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee