DE102004025418A1 - Controller mit einer Decodiereinrichtung - Google Patents

Controller mit einer Decodiereinrichtung Download PDF

Info

Publication number
DE102004025418A1
DE102004025418A1 DE102004025418A DE102004025418A DE102004025418A1 DE 102004025418 A1 DE102004025418 A1 DE 102004025418A1 DE 102004025418 A DE102004025418 A DE 102004025418A DE 102004025418 A DE102004025418 A DE 102004025418A DE 102004025418 A1 DE102004025418 A1 DE 102004025418A1
Authority
DE
Germany
Prior art keywords
command
control signal
controller
executable
response
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
DE102004025418A
Other languages
English (en)
Inventor
Franz Klug
Oliver Kniffler
Steffen Sonnekalb
Andreas Wenzel
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 DE102004025418A priority Critical patent/DE102004025418A1/de
Priority to JP2005145127A priority patent/JP2005339540A/ja
Priority to US11/132,145 priority patent/US20050278506A1/en
Priority to FR0505181A priority patent/FR2871253A1/fr
Publication of DE102004025418A1 publication Critical patent/DE102004025418A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification

Abstract

Ein Controller weist eine Empfangseinrichtung (102) zum Empfangen eines Befehls, wobei der Befehl ein ausführbarer Befehl oder ein Platzhalterbefehl ist, auf. Eine Decodiereinrichtung (104) ist ausgebildet, um ansprechend auf einen ausführbaren Befehl ein dem ausführbaren Befehl entsprechendes Steuersignal (116) auszugeben und um ansprechend auf einen empfangenen Platzhalterbefehl ein Umschaltsignal (118) auszugeben. Der Controller weist ferner eine Einrichtung (106) zum Bereitstellen eines vorbestimmten Ersatzsteuersignals (120) auf, die abhängig von dem Umschaltsignal (118) das vorbestimmte Ersatzsteuersignal (120) ausgibt.

Description

  • Die vorliegende Erfindung befaßt sich mit einem Controller mit einer Decodiereinrichtung sowie mit einem Verfahren zum Decodieren, wie es bei Controllern, beispielsweise Mikroprozessoren, eingesetzt wird.
  • Mikroprozessoren oder allgemein Controller werden über Befehle angesteuert, die in einem Befehlssatz oder Instruktionsset zusammengefaßt sind. Ein Programm, das von einem Controller ausgeführt wird, besteht aus solchen Befehlen. Der Controller ist ausgebildet, um Befehle zu verarbeiten und die durch einen jeweiligen Befehl spezifizierte Funktion auszuführen. Dazu weist der Controller eine Decodiereinrichtung auf, die die auszuführenden Befehle in Steuersignale umwandelt. Die Steuersignale veranlassen eine Recheneinheit des Controllers, die von dem auszuführenden Befehl definierte Funktion auszuüben. Bekannte Mikroprozessoren verwenden heute in aller Regel ein starr vorgegebenes Instruktionsset, mit dem eine bestimmte Funktionalität vorgegeben wird. Dieses Instruktionsset ist nur ein Ausschnitt aller möglichen Operationen, welche auf einer Hardware, also einem Controller, theoretisch ausführbar wäre. Wird nun von einem Programmierer ein bestimmter Algorithmus implementiert, kann er nur auf dieses Set an Instruktionen zurückgreifen.
  • Diese Reglementierung hat insbesondere für Programmierer, die sehr spezielle Algorithmen programmieren, erhebliche Nachteile. Als Beispiel dafür sei hier die im folgenden erläuterte und als Pseudo-Maschinecode dargestellte XTIME-Operation in einer AES-Softwareimplementierung, einer Software, die den symmetrischen kryptografischen Algorithmus AES ausführt, aufgezeigt.
  • XTIME .macro r1, r2
  • and D8, r1, D14
    sh D8, -7
    mul.u r2, D8, 0x1b
    and D8, r1, D15
    sh D8, 1
    xor r2, D8
    .endm
  • In das XTIME genannte Makro werden zwei Variablen r1, r2 übergeben. Das Makro greift auf die mit D8, D14, D15 bezeichneten Register einer 88er CPU zu. In einer ersten mit „and" bezeichneten UND-Verknüpfung wird der Wert r1 mit dem Registerwert D14 UND-verknüpft und das Ergebnis in das Register D8 geschrieben. Anschließend wird eine mit „sh" bezeichnete Schiebeoperation ausgeführt, die den Wert des Registers D8 um sieben Stellen nach rechts verschiebt. In einer folgenden mit „mul.u" bezeichneten Multiplikationsoperation wird der Wert des Registers D8 mit einem, an einer mit 0x1b bezeichneten Speicherstelle stehenden Wert multipliziert und das Ergebnis in die Variable r2 geschrieben. Anschließend wird die mit „and" bezeichnete UND-Operation ausgeführt, die eine UND-Verknüpfung des Wertes r1 mit dem Wert des Registers D15 durchführt und das Ergebnis in das Register D8 schreibt. Anschließend wird die Schiebeoperation „sh" durchgeführt, die den Wert des Registers D8 um eins nach links verschiebt. Als letzte Operation in dem Makro wird eine mit „xor" bezeichnete XOR-Operation ausgeführt, die eine XOR-Verknüpfung zwischen dem Wert r2 und dem Registerwert D8 ausführt und das Ergebnis in die Variable r2 schreibt. Das Makro XTIME wird abgeschlossen durch eine Rücksprungfunktion .endm.
  • Diese Sequenz beinhaltet eine Folge aus einer UND-Operation „and" und einer darauffolgenden Schiebe-Operation „sh". Diese Folge wird im Makro zweimal ausgeführt. Solche sich wiederholenden Befehlsabläufe haben den Nachteil, daß sie eine Programmausführung unnötigerweise verlangsamen und zudem einen Speicherbedarf des Programms unnötigerweise erhöhen. Um diese Nachteile zu vermeiden, werden häufig wiederkehrende Befehlsabfolgen in eine Architektur eines Controllers aufgenommen. Dies resultiert in einer Erweiterung des Befehlssatzes mit komplexen Befehlen, die einer Kombination mehrerer ursprünglicher Befehle entsprechen. Eine Erweiterung des Befehlssatzes ist jedoch mit einem großen Aufwand verbunden. Dies beinhaltet insbesondere eine Neuentwicklung von Teilen des als CORE bezeichneten Controllerkerns mit der dazugehörigen Verifikation, Layoutmaßnahmen und einem zusätzlichen Flächenoverhead, der für die Implementierung der komplexen Befehlserweiterungen benötigt wird. Eine solche Befehlssatzerweiterung wird deshalb nicht für nur selten benötigte, spezielle Befehlskombinationen eingeführt.
  • Rekonfigurierbare CPUs existieren lediglich ansatzweise bei FPGA-Lösungen, die jedoch nicht für fest in Hardware vergossene Controller einsetzbar sind.
  • Bekannte Controller-Architekturen erlauben lediglich die Erweiterung eines Befehlssatzes mit einem Makrobefehlssatz über einen zugefügten Decodier-ROM. Bei Verwendung eines Decoder-ROM sind die zusätzlichen Makrobefehle in Hardware gegossen und somit bereits bei der Entwicklung eines Controllers festgelegt. Solche zusätzlichen Makrobefehle unterscheiden sich somit hinsichtlich ihrer Flexibilität in keiner Weise von dem ursprünglichen Befehlssatz eines Controllers.
  • Es ist die Aufgabe der vorliegenden Erfindung, einen Controller mit einer Decodiereinrichtung sowie ein Verfahren zum Decodieren und ein Computer-Programm zum Ausführen des Verfahrens zu schaffen, die eine höhere Flexibilität aufweisen.
  • Diese Aufgabe wird durch einen Controller gemäß Anspruch 1, ein Verfahren gemäß Anspruch 7 sowie ein Computerprogramm gemäß Anspruch 8 gelöst.
  • Die vorliegende Erfindung schafft einen Controller mit folgenden Merkmalen:
    einer Empfangseinrichtung zum Empfangen eines Befehls, wobei der Befehl ein ausführbarer Befehl oder ein Platzhalterbefehl ist;
    einer Decodiereinrichtung, die ausgebildet ist, um ansprechend darauf, dass der empfangene Befehl ein ausführbarer Befehl ist, ein dem Befehl entsprechendes Steuersignal auszugeben und, um ansprechend darauf, dass der empfangene Befehl ein Platzhalterbefehl ist, ein Umschaltsignal auszugeben; und
    einer Einrichtung zum Bereitstellen eines vorbestimmten Ersatzsteuersignals, die ausgebildet ist, um abhängig von dem Umschaltsignal das vorbestimmte Ersatzsteuersignal auszugeben.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß sich unter Nutzung vorhandener Ressourcen eine verbesserte Nutzung der theoretischen Möglichkeiten eines Mikrocontrollersystems ermöglichen läßt. Eine zusätzlich benötigte Einrichtung zum Bereitstellen ist unter Hinzufügen einer geringen zusätzlichen Fläche realisierbar und ein Platzhalterbefehl benötigt lediglich einen im bisherigen Befehlssatz reservierten Opcode.
  • Der erfindungsgemäße Ansatz basiert auf einer neuartigen Möglichkeit, auf einem Mikroprozessor eine Erweiterung des vorhandenen Instruktionssets zu realisieren, ohne für jeden zusätzlichen Befehl spezifische Hardware zu implementieren und zu testen. Ein Programmierer kann so seine persönlich benötigten Erweiterungen innerhalb der Möglichkeiten des Systems vornehmen. Dies ist vor allem für Programmierer wertvoll, die spezielle, in aller Regel sehr seltene Instruktionen benötigen, welche im Gesamtsystem keine Bedeutung haben und so in der Architektur des Controllers nicht implementiert sind. Diese Erweiterungen ermöglichen eine Reduzierung des Speicherplatzes eines Systems sowie eine Performancesteigerung einer Programmausführung.
  • Gemäß der vorliegenden Erfindung wird ein Decodierer in die Lage versetzt, Befehle zu wechseln. Dadurch kann ein rekonfigurierbarer Befehl programmiert werden. Besonders nachladbare Programme können so noch nachträglich selbstdefinierte Instruktionen verwenden, die davor nicht bekannt waren. Dadurch wird zum einen die Flexibilität des CORE erhöht und zum anderen kann dadurch eine neue Art von Sicherheit erzeugt werden, da ein Programmierer seine eigenen Instruktionen erzeugen kann. Wird der erfindungsgemäße Ansatz für sicherheitsrelevante Anwendungen eingesetzt, so kann ein Angreifer nicht am Opcode erkennen, welche Instruktion der Programmierer ausführen will.
  • Ein wesentlicher Security-Aspekt in diesem Zusammenhang ist die Möglichkeit, einen oder mehrere private Instruktionssets zu entwickeln und so einen möglichen Angreifer besser abzublocken. Gemäß einem weiteren Ausführungsbeispiel werden dabei vorbestimmte Ersatzsteuersignale in einem Speicher abgelegt. Dadurch nutzt einem Angreifer selbst ein geknackter Opcode nichts, um festzustellen, was ein Programm ausführt.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 eine schematische Darstellung eines Controllers gemäß der vorliegenden Erfindung;
  • 2 eine detaillierte schematische Darstellung eines weiteren Ausführungsbeispiels eines Controllers gemäß der vorliegenden Erfindung; und
  • 3 eine schematische Darstellung eines weiteren Ausführungsbeispiels eines Controllers gemäß der vorliegenden Erfindung.
  • In der nachfolgenden Beschreibung der bevorzugten Ausführungsbeispiele der vorliegenden Erfindung werden für die in den verschiedenen Zeichnungen dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche Bezugszeichen verwendet, wobei eine wiederholte Beschreibung dieser Elemente weggelassen wird.
  • 1 zeigt eine schematische Darstellung eines Controllers gemäß der vorliegenden Erfindung. Der Controller weist eine Empfangseinrichtung 102, eine Decodiereinrichtung 104 und eine Einrichtung 106 zum Bereitstellen auf. Die Empfangseinrichtung 102 ist ausgebildet zum Empfangen eines Befehls 112. Ein empfangener Befehle 114 wird von der Empfangseinrichtung 102 an die Decodiereinrichtung 104 bereitgestellt. Der empfangene Befehl 114 ist entweder ein durch den Controller ausführbarer Befehl oder ein Platzhalterbefehl. Ein ausführbarer Befehl wird von der Decodiereinrichtung 104 in ein Steuersignal 116 umgewandelt, wobei das Steuersignal 116 von der Decodiereinrichtung 104 ausgegeben wird. Das Steuersignal 116 steuert eine Recheneinheit (nicht gezeigt in 1) des Controllers und veranlaßt die Recheneinheit dazu, eine durch den ausführbaren Befehl definierte Funktion auszuführen. Ist der empfangene Befehl 114 ein Platzhalterbefehl, so gibt die Decodiereinrichtung 104 ein Umschaltsignal 118 aus, das von der Einrichtung 106 zum Bereitstellen empfangen wird. Das Umschaltsignal 118 zeigt der Einrichtung 106 zum Bereitstellen an, daß ein Platzhalterbefehl empfangen wurde.
  • Ansprechend auf einen Platzhalterbefehl gibt die Einrichtung 106 zum Bereitstellen ein vorbestimmtes Ersatzsteuersignal 120 aus. Das Ersatzsteuersignal 120 steuert ebenfalls die Recheneinheit des Controllers und veranlaßt diese, eine zusätzliche Funktion auszuführen. Bevorzugterweise ist die zusätzliche Funktion eine Funktion, die nicht bereits schon durch ein Steuersignal 116 hervorgerufen werden kann. Somit entspricht die zusätzliche Funktion einer Funktion, die nicht bereits durch einen Befehl 112 eines Befehlssatzes des Controllers definiert ist, sondern entspricht einer Funktion, die den für den Controller definierten Befehlssatz erweitert. Der Befehlssatz weist üblicherweise eine Mehrzahl ausführbarer Befehle sowie den Platzhalterbefehl auf.
  • Alternativ kann der Platzhalterbefehl ein ausführbarer Befehl sein, der jedoch in der Dekodiereinrichtung 104 erkannt wird und nicht dekodiert wird. Ebenso kann das Ersatz-Steuersignal ein Steuersignal sein, dass einem Befehl des Befehlssatzes entspricht.
  • Vorteilhafterweise entspricht die zusätzliche Funktion einer Funktion, die die Recheneinheit ohnehin bereitstellt, um die Befehle des Befehlssatzes ausführen zu können. Jedoch ist die zusätzliche Funktion nicht über einen Befehl des Befehlssatzes ausführbar. Beispielsweise entspricht die zusätzliche Funktion einer Kombination aus Funktionen, die durch Befehle 112 des Befehlssatzes hervorgerufen werden. Gemäß der vorliegenden Erfindung wird die zusätzliche Funktion durch das Ersatzsteuersignal 120 ausgelöst. Die zusätzliche Funktion ist dadurch durchführbar, obwohl kein dazu entsprechender Befehl 112 im Befehlssatz des Controllers bereitsteht und die Decodiereinrichtung 104 auch nicht ausgebildet ist, um einen solchen Befehl in ein entsprechendes Steuersignal umzuwandeln.
  • Der Platzhalterbefehl, der die Einrichtung 106 zum Bereitstellen veranlaßt, das Ersatzsteuersignal 120 auszugeben, kann ein zusätzlicher Befehl 112 des Befehlssatzes sein oder ein bisher als reserviert bezeichneter Befehl 112 des Befehlssatzes sein. Im Fall des reservierten Befehls ist keine Änderung an einem Befehlssatz gemäß dem Stand der Technik erforderlich.
  • Vorteilhafterweise ist das Ersatzsteuersignal 120, das von der Einrichtung 106 zum Bereitstellen ausgegeben wird, austauschbar. Dies ermöglicht es, unter Verwendung eines einzigen Platzhalterbefehls unterschiedliche Ersatzsteuersignale 120 auszugeben und damit unterschiedliche zusätzliche Funktionen von dem Controller ausführen zu lassen.
  • Anhand der bereits beschriebenen XTIME-Operation wird nachfolgend das erfindungsgemäße Verfahren erläutert. Wie bereits erwähnt, weist die Sequenz zweimal eine Schiebeoperation „sh" auf, die auf eine UND-Operation „and" folgt. In der bereits erwähnten 88er CPU ließe sich ein Befehl konstruieren, welcher diese beiden Operationen in einem einzigen Instruktionszyklus ausführen könnte. Das bedeutet, daß die Recheneinheit der CPU von ihrer Architektur her dafür ausgelegt ist. Solch eine UND-Schiebeoperation „andsh" wird es jedoch nicht geben, da dieser Befehl sehr spezifisch für diesen Algorithmus ist. Nun kommt das XTIME-Makro aber so häufig in der AES-Implementierung vor, daß sich durch einen entsprechenden optimierten Befehl „andsh" die Performance des Algorithmus um ca. 10 % erhöhen ließe. Durch ein der „andsh"-Operation entsprechendes Ersatzsteuersignal 120, das von der Einrichtung 106 zum Bereitstellen ansprechend auf einen Platzhalterbefehl ausgegeben wird, ließen sich im XTIME-Makro 16 Byte Opcode durch 2 Byte ersetzen. Insgesamt ergäbe sich eine Ersparnis von ca. 220 Byte Opcode für den AES mit solch einer Lösung. Da der Algorithmus des AES ca. 2 KByte Codesize hat, ergibt sich daraus eine Codesize-Reduktion von ca. 10 %.
  • Die vorliegende Erfindung ermöglicht es somit, zusätzliche Funktionen auszuführen, die durch keinen Befehl 112 des Befehlssatzes hervorrufbar sind.
  • Das Steuersignal 116 und das Ersatzsteuersignal 120 stellen Steuersignalwerte an die Recheneinheit des Controllers zur Verfügung. Typischerweise werden die Steuersignalwerte nicht seriell, sondern parallel über mehrere Leitungen (nicht gezeigt) an die Recheneinheit übergeben. Die Befehle 112 sind üblicherweise 16-Bit- oder 32-Bit-Befehle, können aber auch jede andere Bitbreite aufweisen. Vorteilhafterweise weist der Platzhalterbefehl eine geringe Bitbreite auf, um möglichst wenig Speicherplatz zu belegen. Ein Befehl ist typischerweise ein maschinenlesbarer Befehl, der einen Opcode und einen Operanden aufweist. Der Opcode definiert eine von dem Befehl auszuführende Operation. Opcodes sind üblicherweise knapp und durch den Befehlssatz begrenzt. Ein Operand definiert durch den Opcode zu verarbeitende Werte, die direkt übergeben werden oder in Registern oder Speichern vorhanden sind. Operanden sind lediglich durch eine Systemarchitektur begrenzt.
  • Die Empfangseinrichtung 102 ist üblicherweise als Eingangsbuffer des Controllers realisiert. In diesem Fall werden die Befehle 112 durch die Empfangseinrichtung 102 eingetaktet und als empfangene Befehle 114 ausgegeben. Alternativ kann die Empfangseinrichtung 102 aber auch als einfache Durchgangsleitung oder als Verstärkereinrichtung realisiert sein. Die Decodiereinrichtung 104 ist um die Funktionalität erweitert, daß Umschaltsignal 118 ansprechend auf den Platzhalterbefehl auszugeben. Die Decodiereinrichtung 104 weist dazu eine Vergleichseinrichtung (nicht gezeigt in den Figuren) auf, die ausgebildet ist, um den Platzhalterbefehl zu erkennen.
  • 2 zeigt eine detaillierte schematische Darstellung eines Controllers gemäß der vorliegenden Erfindung. Der in 2 gezeigte Controller weist eine Empfangseinrichtung 202, die in diesem Ausführungsbeispiel als Durchgangsleitung realisiert ist, und eine Decodiereinrichtung 204 auf. Eine Einrichtung 206 zum Bereitstellen ist durch eine Speichereinrichtung 206a, die mit einer Umschalteinrichtung 206b verbunden ist realisiert. Da die Empfangseinrichtung 202 eine Durchgangsleitung ist, entspricht ein empfangener Befehl 214 einem Befehl oder Opcode, wie er in 1 von der Empfang seinrichtung empfangen wird. Die Decodiereinrichtung 204 führt eine Decoding-Funktion aus und gibt, wie bereits in 1 beschrieben, ein Steuersignal 216 und ein Umschaltsignal 218 aus. Ein gespeichertes Ersatzsteuersignal 220 wird von der Speichereinrichtung 206a bereitgestellt. Die Speichereinrichtung 206a ist in diesem Ausführungsbeispiel ein Register und im speziellen ein CSFR-Register (CSFR; CSFR = Core Special Function Register). Unter den Sammelbegriff CSFR fallen alle general purpose Register. CSFR-Register werden benötigt, um den Zustand eines Prozessors genau zu beschreiben und zu steuern. Die Speichereinrichtung 206a stellt das Ersatzsteuersignal 220 an die Umschalteinrichtung 206b bereit. Die Umschalteinrichtung 206b ist ein Multiplexer.
  • Der Multiplexer 206b empfängt das Steuersignal 216 sowie das Ersatzsteuersignal 220. Der Multiplexer 206b ist ebenfalls mit dem Umschaltsignal 218 verbunden. Das Umschaltsignal 218 zeigt wiederum an, ob der empfangene Befehl 214 ein ausführbarer Befehl ist, der von der Decodiereinrichtung 204 in da Steuersignal 216 umgewandelt wird, oder ein Platzhalterbefehl ist. Zeigt das Umschaltsignal 218 einen ausführbaren Befehl an, so schaltet der Multiplexer 206b das Steuersignal 216 auf den Multiplexerausgang durch. Der Multiplexer 206b gibt ein effektives Steuersignal 222 aus. In dem Fall, daß das Umschaltsignal 218 einen ausführbaren Befehl anzeigt, entspricht das effektive Steuersignal 222 dem Steuersignal 216. In dem Fall, daß das Umschaltsignal 218 einen Platzhalterbefehl anzeigt, schaltet der Multiplexer 206b das Ersatzsteuersignal 220 durch und das effektive Steuersignal 222 entspricht somit dem Ersatzsteuersignal 220. Der Multiplexer 206b gibt somit in Abhängigkeit davon, ob der empfangene Befehl 214 ein ausführbarer Befehl oder ein Platzhalterbefehl ist, entweder das Steuersignal 216 oder das Ersatzsteuersignal 220 aus.
  • Die in 2 gezeigten Elemente des Controllers entsprechen den Elementen eines Decoders eines Controllers. Der Decoder wird durch Multiplexen eines Opcode-Stream, der einer Sequenz empfangener Befehle 214 entspricht, sowie einem Inhalt des CSFR-Registers 206a, das dem Ersatzsteuersignal 220 entspricht, in die Lage versetzt, Befehle zu wechseln. Dadurch kann ein rekonfigurierbarer Befehl programmiert werden. Durch eine Programmierung des CSFR-Registers 206a sowie durch eine Benutzung eines zusätzlichen Opcodes in Form des Platzhalterbefehls kann ein neuer Befehl in den Controller oder eine CPU gemultiplext werden. Durch Beschreiben des zusätzlichen CSFR kann mittels einer MTCR-Operation (MTCR; MTCR = Move To Core Register) im 88er-Prozessor ein neuer Befehl definiert werden. Die MTCR-Operation verschiebt explizit Daten von der CPU in ein CSFR-Register. In diesem Fall wird ein zusätzlicher 16-Bit-Opcode, der dem Platzhalterbefehl entspricht, vom Decoder so interpretiert, daß nun der zusätzliche Multiplexer 206b umgeschaltet wird und statt eines decodierten Befehls in Form des Steuersignals 216 ein neu definierter Befehl in Form des Ersatzsteuersignals 220 ausgeführt wird. Der neue Befehl wird durch das so entstandene effektive Steuersignal 222, das dem Ersatzsteuersignal 220 entspricht, ausgeführt. Das CSFR-Register 206a wird somit zur Steuerung der CPU (nicht gezeigt) unter Verwendung eines einzigen vordefinierten Opcodes verwendet.
  • 3 zeigt eine schematische Darstellung eines weiteren Ausführungsbeispiels der vorliegenden Erfindung. Neben den bereits in den vorangegangenen Figuren erläuterten Elementen in Form einer Empfangseinrichtung 102 und einer Decodiereinrichtung 104 weist das in 3 gezeigte Ausführungsbeispiel eine Speichereinrichtung 306a sowie eine Umschalteinrichtung 306b auf. Die Umschalteinrichtung 306b entspricht dabei der in 2 gezeigten Umschaltsignal und ist ausgebildet, um ein effektives Steuersignal 322 auszugeben, das abhängig von dem Umschalteinrichtung 118 entweder dem Steuersignal 116 oder einem gespeicherten Ersatzsteuersignal 320 entspricht. Das effektive Steuersignal 322 wird von einer Recheneinrichtung 332 empfangen. Die Recheneinrichtung ist mit einem Speicher 334 sowie einer Schreibeinrichtung 336 verbunden. Die Recheneinrichtung 332 ist über ein Schreibsignal 342 mit dem Speicher 343 und über ein Austauschsignal 344 mit der Schreibeinrichtung 336.
  • Die Recheneinrichtung 332 ist ausgebildet, um gesteuert durch das effektive Steuersignal 322 eine Funktion auszuführen. Die auszuführende Funktion entspricht dabei einer durch einen ausführbaren Befehl definierten Funktion, wenn das effektive Steuersignal 322 dem Steuersignal 116 entspricht. In dem Fall, daß das effektive Steuersignal 322 dem Ersatzsteuersignal 320 entspricht, entspricht die von der Recheneinrichtung 332 ausgeführte Funktion einer zusätzlichen Funktion. Es können implementierte Befehle auf den Platzhalterbefehl abgebildet werden. Ein Angreifer weiß welche logische Operation ein Opcode ausführt, der Platzhaltebefehl ist für den Angreifer nicht definiert.
  • Vorteilhafterweise wird das Ersatzsteuersignal 320 programmgesteuert definiert. Dazu weist der Befehlssatz üblicherweise einen Schreibbefehl auf, der die Recheneinrichtung 332 veranlaßt, über die Schreibeinrichtung 336 ein Schreibsignal 346 an die Speichereinrichtung 306a bereitzustellen. Über das Schreibsignal 346 wird ein Wert des Ersatzsteuersignals 320 festgelegt. Dieser Wert des Ersatzsteuersignals 320 wird in der Speichereinrichtung 306a solange gespeichert, bis er durch einen neuen Wert des Schreibsignals 346 überschrieben wird. Der Wert des Ersatzsteuersignals 320, der über das Schreibsignal 346 in die Speichereinrichtung 306a geschrieben wird, ist entweder in dem Schreibbefehl enthalten oder er wird aus dem Speicher 334 ausgelesen und über die Schreibeinrichtung 336 an die Speichereinrichtung 306a bereitgestellt. Die Werte des Ersatzsteuersignals 320 oder einer Mehrzahl unterschiedlicher Ersatzsteuersignale können dabei fest in dem Speicher 334 gespeichert sein oder durch weitere programmgesteuerte Schreibbefehle in Speicherzellen des Speicher 334 hineingeschrieben werden.
  • Dieses Ausführungsbeispiel ermöglicht es, Instruktionen in Form von Ersatzsteuersignalwerten in einen Speicher, beispielsweise in Form eines NVM-Memorys (NVM; NVM = Non Volatile Memory) als Sammelbegriff für alle nicht flüchtigen Speicher, wie beispielsweise ein EEPROM, abzulegen, diese in ein Registerfile (nicht gezeigt in 3) zu laden und mittels einer MTCR-Operation in die Speichereinrichtung 306a in Form eines CSFR-Registers zu schreiben und dann mit einem Opcode in Form des Platzhalterbefehls, welcher keinerlei Information über die im CSFR gespeichert Operation und die dabei verwendeten Register enthält, auszuführen. Dadurch nutzt einem Angreifer selbst der geknackte Opcode nichts, um festzustellen, was das Programm ausführt. Dies ist ein wesentlicher Sicherheitsaspekt bei sicherheitsrelevanten Anwendungen.
  • Dadurch, daß das Ersatzsteuersignal 320 frei programmierbar ist, ist eine Summe von verwendbaren Instruktionen lediglich durch die Architektur der Recheneinrichtung begrenzt. Die Architektur der Recheneinrichtung 332 bzw. die Ersatzsteuersignalwerte, die die Recheneinrichtung 332 veranlassen, zusätzliche Funktionen auszuführen, müssen einem Programmierer bzw. einer Compilersoftware, die einen Programmcode in maschinenlesbare Befehle 112 umwandelt, bekannt sein.
  • Der erfindungsgemäße Ansatz ist nicht auf die beschriebenen Ausführungsbeispiele begrenzt, sondern kann insbesondere bei allen Vorrichtungen, die programmgesteuerte Befehle ausführen, eingesetzt werden. Insbesondere können die Befehle auch eine einfachere Struktur aufweisen als die in dem Ausführungsbeispiel gezeigten Befehle einer Programmiersprache. Die Speichereinrichtung zum Speichern und Bereitstellen des Ersatzsteuersignals kann ein beliebiger Speicher und insbesondere auch ein bereits in einer Controllerstruktur vorhandenes Register sein.
  • Gemäß einem bevorzugten Ausführungsbeispiel weist ein Controller eine Mehrzahl von Speichereinrichtungen zum Speichern von Ersatzsteuersignalwerten auf. Dies ermöglicht es durch einen einzigen Platzhalterbefehl eine Mehrzahl von Ersatzsteuersignalen bereitzustellen und somit eine komplexe zusätzliche Funktion von dem Controller ausführen zu lassen. Wird die Speichereinrichtung in Form eines CSFR-Registers implementiert, so können beispielsweise mehrere CSFR-Register implementiert werden und durch einen reservierten Opcode angesprochen werden.
  • Gemäß einem weiteren Ausführungsbeispiel können einzelne der mehreren Speichereinrichtungen, die unterschiedliche Ersatzsteuersignale 320 speichern, durch unterschiedliche Platzhalterbefehle angesprochen werden. In diesem Fall stellt die Decodiereinrichtung ein komplexes Steuersignal bereit, das eine Ansteuerung der einzelnen Speichereinrichtungen ansprechend auf den jeweiligen Platzhalterbefehl ermöglicht.
  • Abhängig von den Gegebenheiten kann das erfindungsgemäße Verfahren zum Decodieren in Hardware oder in Software implementiert werden. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, daß das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computerprogramm auf einem Computer abläuft.
  • 102
    Empfangseinrichtung
    104
    Decodiereinrichtung
    106
    Einrichtung zum Bereitstellen
    112
    Befehl
    114
    empfangener Befehl
    116
    Steuersignal
    118
    Umschaltsignal
    120
    Ersatzsteuersignal
    202
    Empfangseinrichtung
    204
    Decodiereinrichtung
    206
    Einrichtung zum Bereitstellen
    206a
    Speichereinrichtung
    206b
    Umschalteinrichtung
    214
    empfangener Befehl
    216
    Steuersignal
    218
    Umschaltsignal
    220
    gespeichertes Ersatzsteuersignal
    222
    effektives Steuersignal
    306
    Einrichtung zum Bereitstellen
    306a
    Speichereinrichtung
    306b
    Umschalteinrichtung
    320
    gespeichertes Ersatzsteuersignal
    322
    effektives Steuersignal
    332
    Recheneinrichtung
    334
    Speicher
    336
    Schreibeinrichtung
    342
    Speichersignal
    344
    Austauschsignal
    346
    Schreibsignal

Claims (9)

  1. Controller mit folgenden Merkmalen: einer Empfangseinrichtung (102; 202) zum Empfangen eines Befehls (112), wobei der Befehl ein ausführbarer Befehl oder ein Platzhalterbefehl ist; einer Decodiereinrichtung (104; 204), die ausgebildet ist, um ansprechend darauf, dass der empfangene Befehl ein ausführbarer Befehl ist, ein dem ausführbaren Befehl entsprechendes Steuersignal (116; 216) auszugeben und, um ansprechend darauf, dass der empfangene Befehl ein Platzhalterbefehl ist, ein Umschaltsignal (118, 218) auszugeben; und eine Einrichtung (106) zum Bereitstellen eines vorbestimmten Ersatzsteuersignals (120; 222; 322), die ausgebildet ist, um abhängig von dem Umschaltsignal das vorbestimmte Ersatzsteuersignal auszugeben.
  2. Controller gemäß Anspruch 1, wobei die Einrichtung (206; 306) zum Bereitstellen eine Speichereinrichtung (206a; 306a) zum Bereitstellen eines gespeicherten vorbestimmten Ersatz-Steuersignals (220; 320) und eine Umschalteinrichtung (206b; 306b) aufweist, wobei die Umschalteinrichtung ausgebildet ist, um abhängig von dem Umschaltsignal (118; 218), das Steuersignal (116; 216) oder das gespeicherte vorbestimmte Ersatzsteuersignal auszugeben.
  3. Controller gemäß einem der Ansprüche 1 oder 2, wobei die Einrichtung (306) zum Bereitstellen ausgebildet ist, um das vorbestimmte Steuersignal zu empfangen und zu speichern.
  4. Controller gemäß Anspruch 2, der ferner eine Schreibeinrichtung (336) aufweist, die ausgebildet ist, um ansprechend auf einen Schreibbefehl einen Wert des Ersatzsteuersignals (320) in die Speichereinrichtung (206a; 306a) zu schreiben.
  5. Controller gemäß Anspruch 4, wobei der Controller ferner einen Speicher (334) aufweist, und wobei die Schreibeinrichtung (336) ausgebildet ist, um den Wert des Ersatzsteuersignals aus dem Speicher in die Speichereinrichtung (206a; 306a) zu schreiben.
  6. Controller gemäß einem der Ansprüche 1 bis 5, wobei der Controller einen Befehlssatz aufweist, der eine Mehrzahl ausführbarer Befehle aufweist, wobei jedem ausführbaren Befehl ein Steuersignal (116; 216) entspricht, und wobei das vorbestimmte Ersatzsteuersignal (120; 220; 320) einem Zusatzbefehl entspricht, der den Befehlssatz erweitert.
  7. Controller gemäß einem der Ansprüche 1 bis 6, wobei der Controller ferner eine Recheneinrichtung (332) aufweist, und wobei die Recheneinrichtung ausgebildet ist, um ansprechend auf das Steuersignal (116) oder das Ersatzsteuersignal (320) eine durch das Steuersignal oder das Ersatzsteuersignal bestimmte Operation auszuführen.
  8. Verfahren zum Decodieren, das folgende Schritte aufweist: (a) Empfangen eines Befehls, wobei der Befehl ein ausführbarer Befehl oder ein Platzhalterbefehl ist; (b) Ausgeben eines dem ausführbaren Befehl entsprechenden Steuersignals ansprechend darauf, dass der empfangene Befehl ein ausführbarer Befehl ist, und Ausgeben eines Umschaltsignals ansprechend darauf, dass der empfangene Befehl ein Platzhalterbefehl ist; und (c) Ausgeben eines vorbestimmten Ersatzsteuersignals abhängig von dem Umschaltsignal.
  9. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens gemäß Anspruch 8, wenn das Computerprogramm auf einem Computer abläuft.
DE102004025418A 2004-05-24 2004-05-24 Controller mit einer Decodiereinrichtung Ceased DE102004025418A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102004025418A DE102004025418A1 (de) 2004-05-24 2004-05-24 Controller mit einer Decodiereinrichtung
JP2005145127A JP2005339540A (ja) 2004-05-24 2005-05-18 復号手段を有するコントローラ
US11/132,145 US20050278506A1 (en) 2004-05-24 2005-05-20 Controller having decoding means
FR0505181A FR2871253A1 (fr) 2004-05-24 2005-05-24 Dispositif de commande ayant des moyens de decodage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004025418A DE102004025418A1 (de) 2004-05-24 2004-05-24 Controller mit einer Decodiereinrichtung

Publications (1)

Publication Number Publication Date
DE102004025418A1 true DE102004025418A1 (de) 2005-12-22

Family

ID=35415014

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004025418A Ceased DE102004025418A1 (de) 2004-05-24 2004-05-24 Controller mit einer Decodiereinrichtung

Country Status (4)

Country Link
US (1) US20050278506A1 (de)
JP (1) JP2005339540A (de)
DE (1) DE102004025418A1 (de)
FR (1) FR2871253A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004025419A1 (de) * 2004-05-24 2005-12-22 Infineon Technologies Ag Controller und Verfahren zum Verarbeiten von Befehlen
FR2946970B1 (fr) 2009-06-23 2011-07-15 Commissariat Energie Atomique Dispositif micromecanique d'amplification d'un mouvement vibratoire
US8843731B2 (en) * 2010-12-30 2014-09-23 Micron Technology, Inc. Memory device using extended interface commands

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636352A (en) * 1994-12-16 1997-06-03 International Business Machines Corporation Method and apparatus for utilizing condensed instructions

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
US5542059A (en) * 1994-01-11 1996-07-30 Exponential Technology, Inc. Dual instruction set processor having a pipeline with a pipestage functional unit that is relocatable in time and sequence order
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US5926642A (en) * 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
US6532531B1 (en) * 1996-01-24 2003-03-11 Sun Microsystems, Inc. Method frame storage using multiple memory circuits
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US6453407B1 (en) * 1999-02-10 2002-09-17 Infineon Technologies Ag Configurable long instruction word architecture and instruction set
US6449712B1 (en) * 1999-10-01 2002-09-10 Hitachi, Ltd. Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions
JP2003529151A (ja) * 2000-03-27 2003-09-30 インフィネオン テクノロギーズ アーゲー 構成可能な長命令語(cliw)を使用するプロセッサにユーザ定義の実行ユニットを追加するための方法と装置
GB2367653B (en) * 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
GB2376097B (en) * 2001-05-31 2005-04-06 Advanced Risc Mach Ltd Configuration control within data processing systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636352A (en) * 1994-12-16 1997-06-03 International Business Machines Corporation Method and apparatus for utilizing condensed instructions

Also Published As

Publication number Publication date
JP2005339540A (ja) 2005-12-08
US20050278506A1 (en) 2005-12-15
FR2871253A1 (fr) 2005-12-09

Similar Documents

Publication Publication Date Title
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2542740C2 (de) Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung
DE2714805C2 (de)
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE4342250A1 (de) Rechnerarchitektur und Verfahren zum Betreiben eines Parallelrechners
DE19506990A1 (de) Einrichtung zur Datenumleitung in einem Prozessor mit mehreren Ausführungseinheiten
DE19524402C2 (de) Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge
EP0825540B1 (de) Prozessor mit Pipelining-Aufbau
DE3043653A1 (de) Datenverarbeitungsanlage
DE2556617A1 (de) Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes
EP1117037B1 (de) Datenverarbeitungsvorrichtung zum parallelen Verarbeiten von unabhängigen Prozessen (Threads)
DE2245284A1 (de) Datenverarbeitungsanlage
DE102004025418A1 (de) Controller mit einer Decodiereinrichtung
DE2349253C3 (de) Rechnersystem
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
EP1483682A2 (de) Reconfigurierbarer prozessor
DE2537360A1 (de) Elektronische datenverarbeitungsanlage
DE102013114508B4 (de) Blockbasierte Signalverarbeitung
DE10051611A1 (de) Verteiltes Multiplexerschema für eine Bi-Endian-Rotatorschaltung
DE10303053A1 (de) Registerumbenennung zum Reduzieren einer Umgehung und Erhöhen einer scheinbaren physischen Registergröße
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen
DE10361059A1 (de) Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
DE3603240C2 (de)

Legal Events

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