DE10137458B4 - Verfahren und Anordnung zur Umsetzung von Scrambler-Algorithmen in prozessorimplementierten Datenpfaden - Google Patents

Verfahren und Anordnung zur Umsetzung von Scrambler-Algorithmen in prozessorimplementierten Datenpfaden Download PDF

Info

Publication number
DE10137458B4
DE10137458B4 DE2001137458 DE10137458A DE10137458B4 DE 10137458 B4 DE10137458 B4 DE 10137458B4 DE 2001137458 DE2001137458 DE 2001137458 DE 10137458 A DE10137458 A DE 10137458A DE 10137458 B4 DE10137458 B4 DE 10137458B4
Authority
DE
Germany
Prior art keywords
slice
input
output
bit
xor
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
DE2001137458
Other languages
English (en)
Other versions
DE10137458A1 (de
Inventor
Wolfram Dipl.-Ing. Drescher
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.)
NXP BV
Original Assignee
Systemonic 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 Systemonic AG filed Critical Systemonic AG
Priority to DE2001137458 priority Critical patent/DE10137458B4/de
Publication of DE10137458A1 publication Critical patent/DE10137458A1/de
Application granted granted Critical
Publication of DE10137458B4 publication Critical patent/DE10137458B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Logic Circuits (AREA)

Abstract

Verfahren zur Umsetzung von Scrambler-Algorithmen, wobei diese Algorithmen in einem Rechenwerk eines Prozessors, welches in Slices fraktioniert ist, in den darin implementierten Datenpfaden ausgeführt werden, dadurch gekennzeichnet, dass einerseits die Datenpfade je Slice mit dem in ihm enthaltenen Bit-Slice so durch die vorhandenen Multiplexer angesteuert werden, dass die Datenpfade durch vier Baugruppen repräsentiert werden, und dass andererseits je Rechenwerk ein Bit-Slice eines ersten Slice so durch die vorhandenen Multiplexer angesteuert wird, dass ein Datenstrom-Bit-Slice konfiguriert wird, in dem ein das Rechenwerk durchlaufender Datenstrom mit einem Scrambler-Signal verknüpft wird, wobei zur Umsetzung der Scrambler-Algorithmen mit einem SIMD-Slice-übergreifend operierenden großen Datenrahmen eine erste Zwischenverbindung (8) zwischen einem erstem Summier-Ausgang eines höherwertigen an einen ersten Summier-Eingang eines niederwertigen Slice und eine zweite Zwischenverbindung (9) von einem ersten Verschiebe-Ausgang des niederwertigen Slice an einem ersten Verschiebe-Eingang des höherwertigen Slice angefügt wird.

Description

  • Die Erfindung betrifft ein Verfahren zur Umsetzung von Scrambler-Algorithmen in prozessorimplementierten Datenpfaden nach dem Oberbegriff des Anspruchs 1.
  • Die Erfindung betrifft weiterhin eine Anordnung zur Realisierung des Verfahrens.
  • Beim Stand der Technik sind Scrambler mit ihren Verfahren und zugehörigen Algorithmen bekannt. Ihnen ist gemein, dass sie den Signalverlauf eines zu verschlüsselnden Datenstroms mit einem Scrambler-Signal beaufschlagen.
  • In der WO 99/08 411 A2 ist ein Verfahren beschrieben, in dem in durch mehrere Baugruppen realisierten Datenpfaden ein erster Datenstrom mit einem zweiten Datenstrom zur Verschlüsselung verknüpft wird.
  • Das Scrambler-Signal weist einen bestimmten Datenrahmen auf, der durch seine Länge und seine Komplexität gekennzeichnet ist und wird durch ein Scrambler-Polynom beschrieben. Vorzugsweise werden diese Kennzeichen durch die Zahl der inneren Zustande und die Anzahl der Verknüpfungen der inneren Zustande der Scrambler-Signalquelle dargestellt.
  • Die Scrambler unterscheiden sich von den Codierern. Letztere verändern den Datenstrom primär, indem sie eine Polynom-Berechnung mit den einzelnen zeitlichen Werten des Datenstromes ausführen. Dabei wird eine Faltung des Datenstromes mit einem Schlüssel-Signal vorgenommen.
  • Herkömmliche Scrambler sind beim Stand der Technik als eigenständige Gerätelösungen bekannt. Bei ihnen sind die Scrambler-Algorithmen in die Hardware implementiert. Hierbei ist eine Anpassung an unterschiedliche Einsatzbereiche schwierig zu realisieren. Durch die fehlende Anpassbarkeit der Geräte an die Anwendungsfälle, ist dadurch, insbesondere bei großen Datenrahmen der implementierten Scrambler-Algorithmen, die Bandbreite der zu verschlüsselnden Datenströme begrenzt.
  • Die US 5 165 039 A zeigt einen grundsätzlichen Aufbau eines Bit-Slice-Prozessors. Mit dieser Anordnung ist es allerdings nicht möglich, Scrambler-Algorithmen mit einem großen Datenrahmen variabel programmierbar einzusetzen.
  • Der Erfindung liegt die Aufgabe zugrunde, in den Datenpfaden eines Rechenwerks Scrambler-Algorithmen mit großem Datenrahmen variabel programmierbar umzusetzen. Die Verwendung der vorhandenen Rechenwerk-Hardware der Prozessoren soll erfolgen.
  • Ein spezielle Zusammenfassung bzw. Teilnutzung von vorhandener Rechenwerk-Hardware, die durch eine bestimmte Verbindungseinstellung der in den Datenpfaden verfügbaren Multiplexern realisiert wird, eröffnet Bereiche der Optimierung bezüglich solcher Scrambler-Algorithmen.
  • Auch werden die Scrambler-Algorithmen bei Vorliegen von unterschiedlichen Befehlsverarbeitungsarten SISD (Single Instruction single Data) und SIMD (Single Instruction Multiple Data) oder alleinig SIMD im Prozessor realisiert.
  • Die verfahrensseitige Lösung dieser Aufgabenstellung sieht vor, dass einerseits die Datenpfade je Slice mit dem in ihm enthaltenen Bit-Slices so durch die vorhandenen Multiplexer angesteuert werden, dass die Datenpfade durch vier Baugruppen repräsentiert werden, und dass andererseits je Rechenwerk ein Bit-Slice eines ersten Slice derart durch die vorhandenen Multiplexer angesteuert wird, dass ein Datenstrom-Bit-Slice konfiguriert wird, in dem ein das Rechenwerk durchlaufender Datenstrom mit einem Scrambler-Signal verknüpft wird. Dabei wird zur Umsetzung der Scrambler-Algorithmen mit einem großen Datenrahmen, die somit SIMD-Slice-übergreifend operieren, eine erste Zwischenverbindung zwischen einem ersten Summier-Ausgang eines höherwertigen an einen ersten Summier-Eingang eines niederwertigen Slice und eine zweite Zwischenverbindung von einem ersten Verschiebe-Ausgang des niederwertigen Slice an einen ersten Verschiebe-Eingang des höherwertigen Slice angefügt.
  • Diese Lösung zielt darauf ab, dass die SIMD-Slice-übergreifende Verarbeitung der Scrambler-Algorithmen direkt vorzunehmen ist und dadurch eine Geschwindigkeitserhöhung gegenüber einer nur innerhalb des Slice-Formates fraktionierten Ausführung von Scrambler-Algorithmen erreicht wird.
  • Eine Ausgestaltung des Verfahrens ist dadurch gekennzeichnet, dass eine Ausführung von Scrambler-Algorithmen variabel und programmierbar dadurch realisiert wird, dass am Beginn des Scrambler-Algorithmus an dem in der Bitbreite des Slices vorliegenden AND-Gatterblock mit seinen je Bit-Sclice zugehörigen AND Gattern ein eingangsseitig anliegendes Scrambler-Polynom bitweise parallel durchgeschaltet wird.
  • Es wird nachfolgend eine Summation durch eine XOR-Verknüpfung der Gatterblock-Ausgangswerte eines jeweiligen Bit-Slices mit einem XOR-Verknüpfungs-Ergebnis eines benachbarten höherwertigen Bit-Slices in dem XOR-Summierer ausgeführt, wobei ein Gesamtergebnis des XOR-Summierers an dem niederwertigsten Bit-Slice einerseits an einen Datenstrom-Bit-Slice ausgegeben wird. Andererseits wird dieses Gesamtergebnis für einen nächsten Takt am ersten Multiplexer-Eingang des niederwertigsten Bit-Slices des Shifter-/Multiplexerblockes, welcher hierbei in seiner ersten Schaltstellung durchgeschalten ist, bereitgestellt.
  • Mit Beginn des nächsten Taktes werden gleichzeitig alle an den jeweiligen Accumulatoreingängen anliegenden Signalwerte in den jeweiligen Accumulator des vorliegenden Accumulatorblocks eingelesen.
  • Weiterhin wird am Beginn des nächsten Taktes ein am jeweiligen Ausgang des Accumulators anliegender Ausgangswert an dem ersten Multiplexer-Eingang eines jeweilig benachbarten höherwertigen Bit-Slices bereitgestellt und es wird damit eine 1-Bit-links-Verschiebung ausgeführt.
  • Außerdem schaltet gleichzeitig der am jeweiligen Accumulatorausgang anliegende Signalwert im Fall des Signalzustandes HIGH das zum jeweilige Bit-Slices zugehörige Eingangs-AND-Gatter frei. Damit werden die vom Registerinput anliegenden Bits des Scrambler-Polynoms beim nächsten Lesebefehl eingelesen.
  • Zusätzlich wird gewährleistet, dass ein je Slice zugehöriger Accumulatorausgang des höchstwertigsten Bit-Slices, welcher gleichzeitig den Ausgang des Shifter-/Multiplexer-Blockes darstellt, den anliegende Verschiebewert an einen Eingang des zu diesem Bit-Slice zugehörigen XOR-Gliedes bereitstellt. Damit wird für einen nachfolgenden Takt des Einlesens in den Accumulator die nächste Summation durch die XOR-Verknüpfung mit den Ausgangswerten des AND-Gatterblocks ausgelöst.
  • Da die je Bit-Slice über die zugehörigen Bitleitungen des ersten und zweiten Ausgangs-Verknüpfungs-Busses geschaltete Verbindung zwischen dem Ausgang des zugehörigen Bit-Slice-Accumulators und dem zweiten Eingang des AND-Gatters und intern im Bit-Slice auch zum Verschiebe-Ausgang weitergeführt ist, wird damit sichergestellt, dass der je Slice zugehörige höchstwertige Ausgang des Bit-Slice-Accumulator gleichzeitig den Ausgang des Shifter-/Multiplexer-Blockes darstellt.
  • Eine weitere vorteilhafte Variante der verfahrenseitigen Lösung der Aufgabenstellung sieht vor, dass die Verarbeitungsbreite je Slice und der Registerinput je SIMD-Slice um das Bit des höchstwertigen Bit-Slices reduziert wird und dass statt dessen ein Zwischenspeicher-Streifen realisiert wird.
  • Der Accumulator dieses ersetzten Bit-Slices wird als Zwischenspeicher verwendet und speichert den Ausgangswert eines XOR-Summierers eines höherwertigen Slices oder im Fall, dass kein höherwertiger Slice vorliegt, mittels Abschluss-Verbindung, den Verschiebe-Ausgangswert des Shifter-/Multiplexerblockes zwischen und gewährleistet damit einen stabilen Anfangswert für den Zeitraum der nachfolgenden Summierung am XOR-Summierer.
  • Eine günstige Variante der verfahrenseitigen Lösung der Aufgabenstellung sieht vor, dass die Zwischenspeicherung des Verschiebe-Ausgangswertes des Shifter-/Multiplexerblockes, mit der Summierung im höchstwertigen Slice beginnend, während eines ersten Speicher-Taktes einer Folge von Speicher-Takten vorgenommen wird.
  • Danach wird in allen Speicher-Takten vor Beginn der je Slice im jeweiligen XOR-Summierer durchlaufenden Signallaufzeit der Ausgangswert des XOR-Summierers des höherwertigen Slice in den jeweiligen Zwischenspeicher übernommen.
  • Hierbei werden gleichzeitig die einzelnen Ausgangswerte der Bit-Slice des jeweiligen Accmulatorblockes in jedem Takt des Zwischenspeicherns wieder erneut eingeschrieben. Dies geschieht durch Umsteuerung des jeweiligen Shifter-/Multiplexerblockes in einen zweiten Schaltzustand seiner einzelnen Multiplexer.
  • Weiterhin schließt sich nach dem Ablauf der je Slice durchlaufenen Signallaufzeit, und damit bei Gültigkeit des sich einstellenden Ergebnisses des XOR-Summierers, für den nächsten Slice ein weiterer Zwischenspeichertakt an. Hierbei wird nunmehr das gültige XOR-Summierergebnis in den Zwischenspeicher des benachbarten niederwertigen Slices eingespeichert.
  • Nach Berücksichtigung der Signallaufzeiten aller beteiligten Slices, wird das gültige Gesamtergebnis am niederwertigsten Bit-Slice des niederwertigsten Slice in einen Datenstrom-Bit-Slice ausgegeben.
  • Es werden dabei die Multiplexer des jeweiligen Shifter-/Multiplexerblockes wieder in den ersten Schaltzustand gebracht. Gleichzeitig wird bei einer Ausgabe an den Datenstrom-Bit-Slice das Gesamtergebnis in den Bit-Slice-Accumulator des ersten Bit-Slice des ersten Slice eingeschrieben.
  • Eine besonders günstige Variante der verfahrensseitigen Lösung der Aufgabenstellung sieht vor, dass das Verfahren zur Umsetzung von Scrambler-Algorithmen an unterschiedliche Zeitbedingungen der jeweiligen Anwendung programmierbar angepasst wird, in dem je Slice in dem jeweiligen Zwischenspeicher-Streifen eine schaltbare Verbindung einer Zwischenspeicherbrücke realisiert wird, mittels derer die Zwischenspeicherung für diesen Slice umgangen wird.
  • Bei dieser Lösung wird auf eine schnelle Anpassbarkeit an die Anwendungsfälle der Scrambler-Algorithmen abgesetzt.
  • Eine weitere Variante der verfahrensseitigen Lösung der Aufgabenstellung sieht vor, dass die Scrambler-Algorithmen in Prozessoren vorgenommen werden, bei denen in den jeweiligen Datenpfaden die Befehlsverarbeitungsarten SIMD (Single Instruction Multiple Data) und SISD (Single Instruction Single Data) parallel ausführbar sind.
  • Hierbei wird einerseits mit einer zweiten Programmsteuerung innerhalb der SISD Befehlsverarbeitungsart in einem Extra-Slice mit einem Datenstrom-Bit-Slice eigenständig das Einlesen des Datenstrom-Registerinputs, das Steuern des ersten Multiplexers zur Übernahme des Gesamtergebnisses des XOR-Summierers oder der Übernahme des Ausgangssignales des ersten Accumulators zum Wiedereinschreiben in diesen, sowie das Auslesen des ersten Accumulators realisiert.
  • Anderseits werden alle weiteren arithmetischen und logischen Operationen der Scrambler-Algorithmen mittels einer ersten Programmsteuerung in mindestens einem Slice, welcher mit mindestens einem ersten und einem zweiten Bit-Slice und wahlweise einem Zwischenspeicher-Streife operiert, zur Signalverarbeitung ausgeführt.
  • Eine alternative Variante der verfahrensseitigen Lösung der Aufgabenstellung sieht vor, dass die Scrambler-Algorithmen in den jeweiligen Datenpfaden eines Prozessors ausgeführt werden, in denen allein die Befehlsverarbeitungsart SIMD (Single Instruction Multiple Data) mittels einer ersten Programmsteuerung realisiert wird.
  • Einerseits wird die Verarbeitungsbreite im ersten Slice um ein Bit verringert und der niederwertigste Bit-Slice dieses Slices wird als Datenstrom-Bit-Slice realisiert.
  • In diesem wird das Einlesen des Datenstrom-Registerinputs, das Ansteuern des ersten Multiplexers zur Übernahme des Gesamtergebnisses des XOR-Summierers oder der Übernahme des Ausgangssignales des ersten Accumulators zum Wiedereinschreiben in diesen sowie des Auslesens des ersten Accumulators ausgeführt.
  • Bedingt durch die Befehlsverarbeitungsart SIMD werden immer die Einspeicher-, Multiplexeransteuer- und Ausgabeoperationen jeweils gleichzeitig in den anderen Bit-Slice der Slices mit den jeweiligen Registern und Multiplexern parallel mit ausgeführt.
  • Anderseits werden alle weiteren arithmetischen und logischen Operationen der Scrambler-Algorithmen in mindestens einem Slice, welcher mit mindestens einem ersten und einem zweiten Bit-Slice und wahlweise einem Zwischenspeicher-Streifen operiert, zur Signalverarbeitung durchgeführt.
  • Die Erfindung soll nachfolgend anhand eines Ausführungsbeispieles näher erläutert werden. In den zugehörigen Zeichnungen zeigt
  • 1 Funktionsblöcke eines prozessorimplementierten Rechenwerkes zur Umsetzung von Scrambler-Algorithmen, welches in seinen enthaltenen Slices die Befehlsverarbeitungsarten SIMD und SISD realisiert,
  • 2 Funktionsblöcke eines prozessorimplementierten Rechenwerkes zur Umsetzung von Scrambler-Algorithmen, welches in seinen enthaltenen Slices allein die Befehlsverarbeitungsart SIMD realisiert
  • 3 Anordnung eines Datenstrom-Bit-Slice
  • 4 Anordnung eines Bit-Slice
  • 5 Anordnung eines Zwischenspeicher-Streifens
  • Bei dem in 1 dargestellten Funktionsblöcken des Rechenwerkes 0 wird ersichtlich, dass dieses aus den Bereichen für die Befehlsverarbeitungsart SIMD und SISD besteht, die jeweils von der ersten und zweiten Programmsteuerung 2; 4 angesteuert werden, wobei der SIMD-Bereich 46 den ersten und den zweiten Slice 6; 10 sowie den ersten und zweiten Registerinput 1; 3 enthält und der SISD-Bereich 47 den Datenstrom-Registerinput 5 und den Extra-Slice 11, welcher wiederum aus dem Datenstrom-Bit-Slice 22 besteht, beinhaltet.
  • Ein den Scrambler-Algorithmus bestimmendes Scrambler-Polynom wird in seinen beiden Teilen im ersten und zweiten Registerinput 1; 3 bereitgestellt. Jeweils über den ersten und zweiten Registerinput-Bus 38; 48 gelangt dieses an die jeweils ersten Eingänge des ersten und des zweiten Slice 6; 10. Die beiden baugleichen Slices repräsentieren die Datenpfade des Rechenwerkes 0 und werden so angesteuert, dass für die Umsetzung von Scrambler-Algorithmen die in 1 ersichtlichen Bestandteile eines Slices aus Bitverarbeitungsteil 52 und Zwischenspeicherstreifen 15 wirksam werden. Der Bitverarbeitungsteil 52 wiederum besteht aus einem ersten und mindestens zweiten Bit-Slice 14; 45, wobei deren Bestandteile zu den Baugruppen AND-Gatterblock 20, XOR-Summierer 21, Shifter-/Multiplexerblock 12 und Accumulatorblock 13 zusammengefasst sind.
  • Über den ersten und zweiten Registerinput-Bus 38; 48 gelangen die Daten des ersten und zweiten Registerinputs 1; 3 von jeweils dem ersten Eingang des ersten und des zweiten Slice 6; 10 an den jeweils ersten Eingang der Bitverarbeitungseinheit 52 und weiterhin an den ersten Eingang des AND-Gatterblockes 20.
  • Ebenfalls eingangseitig werden an den AND-Gatterblock 20 der Ausgangs-Verknüpfungs-Bus angelegt. Dadurch wird nicht nur am jeweiligen Ausgang des ersten und zweiten Slice 6; 10 ein Slice-Ausgangswert bereitgestellt, sondern er schaltet bei Auftreten der Signalbelegung HIGH auf der jeweiligen Bitleitung des ersten und zweiten Ausgangs-Verknüpfungs-Busses 7; 49 das jeweilige AND-Gatter des AND-Gatterblocks 20 und damit den jeweilig anliegenden Bit-Signalwert des Scrambler-Polynoms durch.
  • Bei Initialisierung des Scrambler Scrambler-Algorithmus sind alle AND-Gatter des AND-Gatterblocks 20 durchgeschaltet und somit kann das gültige Scrambler-Polynom eingelesen werden und gelangt über den XOR-Summierer-Eingangsbus 39 an den XOR-Summierer 21.
  • Im ersten Slice 6 wird die XOR-Summierung derart ausgeführt, dass zusammen mit dem am dritten Eingang des Bit-Verarbeitungs-Teil 52 anliegenden und über die erste Zwischenverbindung 8 bereitgestellten und wahlweise im Zwischenspeicherstreifen 15 gespeicherten Ausgangwert des XOR-Summierers 21 des zweiten Slice 10 mit dem höchstwertigen Bit beginnend summiert wird.
  • Da der zweite Slice 10 den höchstwertigen Slice des Rechenwerkes darstellt, wird im Unterschied zum ersten Slice 6 am dritten Eingang seines Bit-Verarbeitungs-Teils 52 über die Abschlussverbindung 44 der Ausgangswert seines Shifter-/Multiplexerblockes 12 bereitgestellt. Ansonsten wird der XOR-Summier-Vorgang in gleicher Weise wie im ersten Slice 6 ausgeführt.
  • Nach Beendigung des gesamten XOR-Summiervorganges wird am Ausgang des XOR-Summierers 21 des ersten Slice 6 und damit auch am zweiten Ausgang seines Bit-Verarbeitungs-Teiles 52 und damit auch am zweiten Ausgang des ersten Slice 6 selbst über die erste Extra-Zwischenverbindung 18 das Gesamtergebnis an dem zweiten Eingang des Extra-Slice 11 und damit auch an den zweiten Eingang des Datenstrom-Bit-Slice 22 bereitgestellt. Gleichzeitig wird der Wert über den zweiten Ausgang des Datenstrom-Bit-Slices 22 und damit auch über den zweiten Ausgang des Extra-Slice 11 und über die zweite Extra-Zwischenverbindung 19 an den zweiten Eingang des ersten Slice 6 und damit auch am zweiten Eingang seines Bit-Verarbeitungs-Teiles 52 und des Eingang des Shifter-/Multiplexerblockes 12 angelegt.
  • Mit Beginn des nächsten Verarbeitungstaktes wird dieser Wert über den Accumulator-Eingangs-Bus 51 in den Accumulatorblock 13 und damit in den Accumulator des ersten Bit-Slices 14 des ersten Slice 6 eingespeichert. Je nach Signalbelegung wird damit das AND-Gatter dieses Bit-Slices für das Einlesen des anliegenden Bits des Scrambler-Polynoms durchgeschaltet und steht somit für die weitere Verarbeitung in dem Scrambler- Algorithmus bereit.
  • Außerdem werden alle über die Bitleitungen des ersten und zweiten Ausgangs-Verknüpfungs-Bus 7; 49 anliegende Ausgangswerte des jeweiligen Accumulatorblockes 13 im jeweiligen Shifter-/Multiplexerblock 12 um 1 Bit nach links verschoben.
  • SIMD-Slice-übergreifend geschieht das, indem der am Ausgang des Shifter-/Multiplexerblocks 12 des ersten Slice 6 und damit am dritten Ausgang der Bit-Verarbeitungseinheit 52 und ebenfalls damit auch am dritten Ausgang des ersten Slice 6 anliegende Verschiebewert über die zweite Zwischenverbindung 9 an den zweiten Eingang des zweiten Slice 10 und damit am zweiten Eingang der zugehörigen Bit-Verarbeitungseinheit und somit am Eingang des Shifter-/Multiplexerblockes des zweiten Slice 10 bereitgestellt wird.
  • Da die Bereiche der Befehlverarbeitungsarten SIMD und SISD jeweils mit erster und zweiter Programmsteuerung 2; 4 versehen sind, wird die Befehlsverarbeitung unabhängig voneinander vorgenommen. Lese- und Speichervorgänge in einem dieser Bereichen lösen daher nicht diese im jeweils anderen aus.
  • So wird der Datenstrom-Registerinput 5 über die Datenverbindung 50 am ersten Eingang des Extra-Slice 11 und damit auch am ersten Eingang des Datenstrom-Bit-Slices 22 bereitgestellt. Somit liegt er am ersten Eingang des XOR-Verknüpfers 16 an. Weiterhin wird mit dem am zweiten Eingang des Extra-Slices 11 und damit am zweiten Eingang des Datenstrom-Bit-Slices 22 bereitgestellten Gesamtergebnis des XOR-Summierers 21 dieses auch am zweiten Eingang des XOR-Verknüpfers 16 zur Verfügung gestellt.
  • Nach der XOR-Verknüpfung beider Signale wird das am Ausgang des XOR-Verknüpfers 16 anliegende Signal am ersten Eingang des ersten Multiplexers 17 durchgeschaltet und damit wird es beim nächsten Speicherbefehl des ersten Accumulators 23 eingespeichert.
  • Nach diesem Vorgang liegt der gültige Ausgangswert des ersten Ausgangs des Datenstrom-Bit-Slices 22 und damit auch am ersten Ausgang des Extra-Slice 11 zur Weiterverarbeitung an.
  • Bei dem in 2 dargestellten Funktionsblöcken des Rechenwerkes 0 wird ersichtlich, dass dieses aus einem Bereich nur für die Befehlsverarbeitungsart SIMD besteht. Dieser Bereich wird von der ersten Programmsteuerung 2 angesteuert, wobei dieser SIMD-Bereich 46 den ersten und den zweiten Slice 6; 10 sowie den ersten und zweiten Registerinput 1; 3 beinhaltet.
  • Die grundsätzlichen Funktionen und Abläufe dieser Betriebsart gleichen denen des mit 1 beschriebenen Ausführungsbeispieles. Unterschiede ergeben sich im Wegfall der zweiten Programmsteuerung, und des Extra-Slices.
  • Der Datenstrom-Registerinput 5 wird im niederwertigsten Bit des ersten Registerinputs 1 realisiert.
  • Jeweils über den ersten und zweiten Registerinput-Bus 38; 48 gelangt das Scrambler-Polynom an die jeweils ersten Eingänge des ersten und des zweiten Slice 6; 10, wobei der erste Registerinput-Bus 38 um eine Bitleitung reduziert ist und diese Bitleitung die Datenverbindung 50 realisiert und an den zweiten Eingang des ersten Slice 6 sowie weiterhin an den ersten Eingang des Datenstrom-Bit-Slices 22 führt.
  • Die beiden Slices sind nicht baugleich, da die Bit-Verarbeitungseinheit 52 des ersten Slice 6 um einen Bit-Slice reduziert ist und dafür der erste Slice 6 den Datenstrom-Bit-Slice 22 enthält.
  • Der erste Ausgangs-Verknüpfungs-Bus 7 ist um eine Bitleitung reduziert. Diese Bitleitung realisiert dafür die Accumulator-Multiplexer-Verbindung 24 und stellt gleichzeitig am ersten Ausgang des Datenstrom-Bit-Slices 22 und damit auch am zweiten Ausgang des ersten Slice 6 einen Datenstrom-Ausgabewert bereit.
  • Da, bedingt durch die Befehlsabarbeitungsart SISD, alle Lese- und Schreibbefehle gleichzeitig ausgeführt werden, muss dort, wo der gespeicherte Wert gehalten werden soll, dieser Wert noch einmal eingespeichert werden.
  • Die geschieht in dem Datenstrom-Bit-Slice 22, in dem hierbei das zweite Tor des ersten Multiplexers 17 durchgeschalten wird und bei einem auftretenden Schreibbefehl der Ausgangswert des ersten Accumulators 23 nochmals eingeschrieben wird.
  • In der in 3 ersichtlichen Anordnung des Datenstrom-Bit-Slices 22 wird an seinem ersten Eingang die über die Datenverbindung 50 bereitgestellten Signalwerte des Datenstroms angelegt.
  • Diese werden zusammen mit dem am Ergebnis-Eingang 42 auftretenden Signalwerten im XOR-Verknüpfer 16 verknüpft und an dessen Ausgang für den ersten Eingang des ersten Multiplexers 17 bereitgestellt.
  • In einer Grundstellung des ersten Multiplexers 17 ist dieser Eingang durchgeschalten, so dass der an seinem Ausgang anliegende Wert in den ersten Accumulator 23 bei Vorliegen eines Schreibbefehls eingeschrieben wird.
  • Am Ausgang des ersten Accumulators 23 wird einerseits der gültige Ausgangswert des Datenstrom-Bit-Slices 22 bereitgestellt und anderseits dieser Wert über die Accumulator-Multiplexer-Verbindung 24 an den zweiten Eingang des ersten Multiplexers 17 herangeführt.
  • Außerdem werden die am Ergebnis-Eingang 42 angelegten Signalwerte am Ergebnis-Ausgang 43 wieder ausgegeben.
  • Im Falle alleinig vorliegender Befehlsabarbeitungsart SIMD wird vor einem Schreibbefehl die Grundstellung des ersten Multiplexers 17 verlassen und sein zweiter Eingang wird durchgeschalten. Dadurch kann bei einem auftretenden Schreibbefehl der Ausgangswert des ersten Accumulators 23 nochmals eingeschrieben werden. Danach nimmt der ersten Multiplexers 17 seine Grundstellung wieder ein.
  • Wie in 4 ersichtlich, wird am ersten Eingang des Bit-Slices 14 der jeweilige Bit-Signalwert des Scrambler-Polynoms angelegt und gelangt an einen ersten Eingang des AND-Gatters 25.
  • An dem zweiten Eingang des Bit-Slices 14, der mit dem zweiten Eingang des AND-Gatters 25 und dem 1-Bit-Verschiebe-Ausgang 31 verbunden ist, wird eine Bitleitung des ersten oder zweiten Ausgangs-Verknüpfungs-Bus 7; 49 herangeführt, der den Ausgang des Bit-Slice-Accumulators 33 mit diesem verbindet.
  • Vom Summier-Eingang 30 gelangt der Summerwert von dem höherwertigen Bit-Slice an den ersten Eingang des XOR-Summiergliedes 26 und an dessen zweiten Eingang wird das Ausgangssignal des AND-Gatters 25 zur Summierung angelegt. Das Ergebnis gelangt vom Ausgang des XOR-Summierglied 26 an Summier-Ausgang 28.
  • Vom 1-Bit-Verschiebe-Eingang 29 wird das Signal an den ersten Eingang des Bit-Slice-Multiplexers 32 geführt und wird in seinem durchgeschalten Zustand an den Eingang des Bit-Slice-Accumulators 33 angelegt. Bei einem Schreibbefehl eines nachfolgenden Verarbeitungstaktes wird sein Signalwert in den Bit-Slice-Accumulators 33 eingeschrieben und liegt einerseits am ersten Ausgang des Bit-Slices 14 an und gelangt durch den Schaltungsweg an den 1-Bit-Verschiebe-Ausgang 31. Hierbei wird die 1-Bit-Verschiebung ausgeführt.
  • Im Falle, dass in einem höherwertigen Slice eine Zwischenspeicherung des Ergebnisses des XOR-Summierers erfolgt, wird eine Änderung des Speicherwertes des Bit-Slice-Accumulators 33 dadurch vermieden, dass am Bit-Slice-Multiplexer 32 der zweite Eingang durchgeschaltet und dadurch das Wiedereinschreiben des vorliegenden Ausgangswertes des Bit-Sclice-Accumulators 33 gewährleistet wird.
  • In der 5 ist ersichtlich, dass vom Zwischenspeicher-Eingang 40 das Signal an den Eingang des Zwischenspeichers 35 geführt wird. Sein Ausgangswert wird an den Zwischenspeicher-Ausgang 41 angelegt. Durch die schaltbare Zwischenspeicherbrücke 36 bleibt der Ausgangswert des Zwischenspeichers 35 unberücksichtigt.
  • 0
    Rechenwerk
    1
    erster Registerinput
    2
    erste Programmsteuerung
    3
    zweiter Registerinput
    4
    zweite Programmsteuerung
    5
    Datenstrom-Registerinput
    6
    erster Slice
    7
    erster Ausgangs-Verknüpfungs-Bus
    8
    erste Zwischenverbindung
    9
    zweite Zwischenverbindung
    10
    zweiter Slice
    11
    Extra-Slice
    12
    Shifter-/Multiplexerblock
    13
    Accumulatorblock
    14
    erster Bit-Slice
    15
    Zwischenspeicherstreifen
    16
    XOR-Verknüpfer
    17
    erster Multiplexer
    18
    erste Extra-Zwischenverbindung
    19
    zweite Extra-Zwischenverbindung
    20
    AND-Gatterblock
    21
    XOR-Summierer
    22
    Datenstrom-Bit-Slice
    23
    erster Accumulator
    24
    Accumulator-Multiplexer-Verbindung
    25
    AND-Gatter
    26
    XOR-Summierglied
    28
    Summier-Ausgang
    29
    1-Bit-Verschiebe-Eingang
    30
    Summier-Eingang
    31
    1-Bit-Verschiebe-Ausgang
    32
    Bit-Slice-Multiplexer
    33
    Bit-Slice-Accumulator
    34
    Verschiebeanschluss
    35
    Zwischenspeicher
    36
    Zwischenspeicherbrücke
    38
    erster Registerinput-Bus
    39
    XOR-Summierer-Eingangsbus
    40
    Zwischenspeicher-Eingang
    41
    Zwischenspeicher-Ausgang
    42
    Ergebnis-Eingang
    43
    Ergebnis-Ausgang
    44
    Abschluss-Verbindung
    45
    Zweiter Bit-Slice
    46
    SIMD-Bereich
    47
    SISD-Bereich
    48
    zweiter Registerinput-Bus
    49
    zweiter Ausgangs-Verknüpfungs-Bus
    50
    Datenverbindung
    51
    Accumulator-Eingangs-Bus
    52
    Bit-Verarbeitungs-Teil

Claims (18)

  1. Verfahren zur Umsetzung von Scrambler-Algorithmen, wobei diese Algorithmen in einem Rechenwerk eines Prozessors, welches in Slices fraktioniert ist, in den darin implementierten Datenpfaden ausgeführt werden, dadurch gekennzeichnet, dass einerseits die Datenpfade je Slice mit dem in ihm enthaltenen Bit-Slice so durch die vorhandenen Multiplexer angesteuert werden, dass die Datenpfade durch vier Baugruppen repräsentiert werden, und dass andererseits je Rechenwerk ein Bit-Slice eines ersten Slice so durch die vorhandenen Multiplexer angesteuert wird, dass ein Datenstrom-Bit-Slice konfiguriert wird, in dem ein das Rechenwerk durchlaufender Datenstrom mit einem Scrambler-Signal verknüpft wird, wobei zur Umsetzung der Scrambler-Algorithmen mit einem SIMD-Slice-übergreifend operierenden großen Datenrahmen eine erste Zwischenverbindung (8) zwischen einem erstem Summier-Ausgang eines höherwertigen an einen ersten Summier-Eingang eines niederwertigen Slice und eine zweite Zwischenverbindung (9) von einem ersten Verschiebe-Ausgang des niederwertigen Slice an einem ersten Verschiebe-Eingang des höherwertigen Slice angefügt wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die vier Baugruppen dadurch repräsentiert werden, dass eine erste Baugruppe, die als Teil einer ALU mit eingangsseitigen AND Gattern ausgestattet ist, durch einen Gatterblock zusammengefasst wird, weiterhin eine zweite Baugruppe eines Gray-Decoderteils, welcher aus jeweiligen Bit-Slice übergreifenden XOR-Gliedern besteht, die sich in Kettenschaltung befinden und somit einen XOR-Summierer bilden, der seinen Summenwert am Ausgang des zu dem je Slice niederwertigsten Bit-Slice gehörigen XOR-Gliedes bereitstellt, außerdem eine dritte Baugruppe mit einem 1-Bit-linksverschiebenden Shifter-Teil und mit einem zweitorigem Bitmultiplexerteil, wobei die beiden Teile zu einem Shifter-/Multiplexerblock gehören und letztlich eine vierte Baugruppe eines Accumulators, der zu einem in Slice-Breite konfigurierten Accumulatorblock gehört.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass eine Ausführung von Scrambler-Algorithmen variabel und programmierbar dadurch realisiert wird, indem der in der Bitbreite der Slices vorliegende AND-Gatterblock (20) mit dem jeweiligen AND Gatter des zugehörigen Bit-Slices (14) ein eingangsseitig anliegendes Scrambler-Polynom bitweise parallel durchschaltet, dass nachfolgend eine Summation durch eine XOR-Verknüpfung des Ausgangswertes eines jeweiligen zum Gatterblock (20) gehörigen Bit-Slices mit einem XOR-Verknüpfungs-Ergebnisses eines benachbarten höherwertigen Bit-Slices in dem XOR-Summierer (21) erfolgt, wobei ein Gesamtergebnis an dem niederwertigsten Bit-Slice einerseits an einen Datenstrom-Bit-Slice (22) ausgegeben wird, und anderseits wird dieses für einen nächsten Takt am Shifter-/Multiplexerblock (12) am ersten Multiplexer-Eingang des niederwertigsten Bit-Slices (14), welcher hierbei in seiner ersten Schaltstellung durchgeschalten ist, bereitgestellt und mit Beginn des nächsten Taktes gleichzeitig mit allen an den jeweiligen Accumulatoreingängen anliegenden Signalwerten in den jeweiligen Accumulator des vorliegenden Accumulatorblocks (13) eingelesen wird, dass am Beginn des nächsten Taktes ein am jeweiligen Aus gang des jeweiligen Accumulators anliegender Ausgangswert an dem ersten Multiplexer-Eingang eines jeweilig benachbarten höherwertigen Bit-Slices bereitgestellt wird und damit eine 1-Bit links-Verschiebung ausgeführt wird, dass gleichzeitig der am jeweiligen Accumulatorausgang anliegende Wert im Fall des Signalzustandes HIGH das zum jeweiligen Bit-Slices zugehörige Eingangs-AND Gatter freischaltet und damit die vom Registerinput anliegenden Bits des Scrambler-Polynoms beim nächsten Lesebefehl eingelesen werden, dass ein je Slice zugehöriger Accumulatorausgang des höchstwertigsten Bit-Slices, welcher gleichzeitig auch den Ausgang des Shifter-/Multiplexer-Blockes (12) dadurch darstellt indem zwischen beiden Ausgängen je Bit-Slice über die zugehörigen Bitleitungen des ersten und zweiten Ausgangs-Verknüpfungs-Busses (7); (49) Verbindungen geschaltet sind, und damit den anliegende Verschiebewert am Ausgang des Shifter-/Multiplexer-Blockes (12) an einen Eingang des zu diesem Bit-Slice (14) zugehörigen XOR-Summiergliedes (26) bereitstellt und dadurch für einen nachfolgenden Takt des Einlesens in den Accumulator die nächste Summation durch die XOR-verknüpfung mit den Ausgangswerten des AND-Gatterblocks (20) ausgelöst wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Verarbeitungsbreite je Slice und der Registerinput je Slice um einen höchstwertigen Bit-Slice reduziert wird und statt dessen ein Zwischenspeicher-Streifen (15) eingeführt wird, wobei der Accumulator dieses ersetzten Bit-Slices als Zwischenspeicher (35) den Ausgangwert eines XOR-Summierers (21) eines höherwertigen Slices oder im Fall, dass kein höherwertiger Slice vorliegt, mittels Abschluss-Verbindung (44), den Verschiebe-Ausgangswert des Shifter-/Multiplexerblockes (12) zwischenspeichert und damit einen stabilen Anfangswert für den Zeitraum der nachfolgenden Summierung am XOR-Summierer (21) gewährleistet.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die Zwischenspeicherung des Verschiebe-Ausgangswertes des Shifter-/Multiplexerblockes (12), mit der Summierung im höchstwertigen Slice beginnend, während eines ersten Speicher-Taktes einer Folge von Speicher-Takten vorgenommen wird, dass in allen Speicher-Takten danach, vor Beginn der je Slice im jeweiligen XOR-Summierer (21) durchlaufenen Signallaufzeit, der Ausgangswert des XOR-Summierers (21) des höherwertigen Slice in den jeweiligen Zwischenspeicher (35) übernommen wird, wobei gleichzeitig mittels Umsteuerung des jeweiligen Shifter-/Multiplexerblockes (12) die einzelnen Multiplexer des Shifter-/Multiplexerblockes in einen zweiten Schaltzustand versetzt werden und die einzelnen Ausgangswerte der Bit-Slice des jeweiligen Accumulatorblocks (13) in jedem Takt des Zwischenspeicherns wieder erneut eingeschrieben werden, dass nach Berücksichtigung der Signallaufzeiten aller beteiligten Slices das gültige Gesamtergebnis am niederwertigsten Bit-Slice des niederwertigsten Slice in einen Datenstrom-Bit-Slice (22) ausgegeben wird und dabei die Multiplexer des jeweiligen Shifter-/Multiplexerblockes (12) wieder in den ersten Schaltzustand gebracht werden, dass gleichzeitig bei einer Ausgabe an den Datenstrom-Bit-Slice (22) dieses Gesamtergebnisses in den Bit-Slice-Accumulator (33) des ersten Bit-Slices (14) des ersten Slice (6) eingeschrieben wird.
  6. Verfahren nach Anspruch 1 bis 4, dadurch gekennzeichnet, dass das Verfahren zur Umsetzung von Scrambler-Algorithmen an unterschiedliche Zeitbedingungen der jeweiligen Anwendung programmierbar angepasst wird, in dem je Slice in den jeweiligen Zwischenspeicherstreifen (15) eine schaltbare Zwischenspeicherbrücke (36) vom Eingang zum Ausgang des Zwischenspeichers (35) realisiert wird, mittels derer die Zwischenspeicherung für diesen Slice umgangen wird.
  7. Verfahren nach den Ansprüchen 1 bis 6, dadurch gekennzeichnet, dass die Scrambler-Algorithmen in Prozessoren vorgenommen werden, bei denen in den jeweiligen Datenpfaden die Befehlsverarbeitungsarten SIMD (Single Instruction Multiple Data) und SISD (Single Instruction Single Data) parallel ausführbar sind, wobei einerseits in einem Extra-Slice (11) der Datenstrom-Bit-Slice (22) mit der SISD Befehlsverarbeitungsart eigenständig mit einer zweiten Programmsteuerung (4) das Einlesen des Datenstrom-Registerinputs (5), das Steuern des ersten Multiplexers (17) zur Übernahme des Gesamtergebnisses des XOR-Summierers (21) oder der Übernahme des Ausgangssignales des ersten Accumulators (23) zum Wiedereinschreiben in diesen sowie das Auslesen des ersten Accumulators (23) realisiert wird und anderseits alle weiteren arithmetischen und logischen Operationen der Scrambler-Algorithmen mittels einer ersten Programmsteuerung (2) in mindestens einem Slice, welcher mit mindestens einem ersten und einem zweiten Bit-Slice (14); (45) und wahlweise einem Zwischenspeicher-Streifen (15) operiert, zur Signalverarbeitung ausgeführt werden.
  8. Verfahren nach Ansprüchen 1 bis 6, dadurch gekennzeichnet, dass die Scrambler-Algorithmen in den jeweiligen Datenpfaden eines Prozessors ausgeführt werden, in denen allein die Befehlsverarbeitungsart SIMD (Single Instruction Multiple Data) mittels einer ersten Programmsteuerung (2) realisiert wird, dass einerseits die Verarbeitungsbreite im ersten Slice (6) um ein Bit verringert wird und der niederwertigste Bit-Slice dieses Slices als Datenstrom-Bit-Slice (22) realisiert wird, der das Einlesen des Datenstrom-Registerinputs (5), das Ansteuern des ersten Multiplexers (17) zur Übernahme des Gesamtergebnisses des XOR-Summierers (16) oder der Übernahme des Ausgangssignales des ersten Accumulators (23) zum Wiedereinschreiben in diesen, sowie des Auslesens des ersten Accumulators (23) ausführt, wobei, bedingt durch die Befehlsverarbeitungsart SIMD, die Einspeicher-, Multiplexeransteuer- und Ausgabeoperationen jeweils gleichzeitig in den anderen Bit-Slice der Slices mit den jeweiligen Registern und Multiplexern immer mit ausgeführt werden, dass anderseits alle weiteren arithmetischen und logischen Operationen der Scrambler-Algorithmen in mindestens einem Slice, welcher mit mindestens einem ersten und einem zweiten Bit-Slice (14); (45) und wahlweise einem Zwischenspeicher-Streifen (15) operiert, zur Signalverarbeitung ausgeführt werden.
  9. Anordnung zur Umsetzung von Scrambler-Algorithmen in einem Prozessor mit einem Rechenwerk, welches implementierte Datenpfade enthält und einerseits aus einem SIMD-Bereich gebildet wird, welcher mit einer ersten Programmsteuerung verbunden ist und aus einem ersten Registerinput sowie einem ersten Slice und mindestens aus einem baugleichem zweiten Slice besteht und anderseits aus einem SISD-Bereich gebildet wird, welcher mit einer zweiten Programmsteuerung verbunden ist und aus einem Datenstrom-Registerinput und einem Extra-Slice besteht, wobei letzterer einen Datenstrom-Bit-Slice beinhaltet, dadurch gekennzeichnet, dass ein Ausgang eines ersten Registerinputs (1) mittels eines Registerinput-Busses (38) an einen ersten Eingang des ersten Slice (6) geschalten ist, dass ein Ausgang eines zweiten Registerinputs (3) mittels eines zweiten Registerinput-Busses (48) an einen ersten Eingang des zweiten Slice (10) geschalten ist, dass jeweils an einem ersten Ausgang des ersten und zweiten Slice (6); (10) mittels jeweils einem ersten und zweiten Ausgangs-Verknüpfungs-Bus (7); (49) jeweils ein Slice-Ausgangswert bereitgestellt wird, dass ein Ausgang des Datenstrom-Registerinputs (5) mittels einer Datenverbindung (50) an einen ersten Eingang des Extra-Slices (11) geschalten ist, dass dieser Eingang mit einem ersten Eingang des Datenstrom-Bit-Slices (22) geschalten ist, dass an einem ersten Ausgang des Extra-Slices (11) ein Datenausgangswert bereitgestellt wird, dass dieser Ausgang mit einem ersten Ausgang des Datenstrom-Bit-Slices (22) verbunden ist, dass ein zweiter Eingang des Extra-Slices (11) mittels einer ersten extra Zwischenverbindung (18) an einen zweiten Ausgang des ersten Slice (6), und dass ein zweiter Ausgang des Extra-Slices (11) mittels einer zweiten extra Zwischenverbindung (19) an einen zweiten Eingang des ersten Slice (6) geschalten ist, dass der zweite Eingang des Extra-Slices (11) mit dem zweiten Eingang des Datenstrom-Bit-Slices (22) und dass der zweiter Ausgang des Extra-Slice (11) mit einem zweiten Ausgang des Datenstrom-Bit-Slices (22) verbunden ist, dass ein dritter Eingang des ersten Slices (6) mittels einer ersten Zwischenverbindung (8) mit einem zweiten Ausgang des zweiten Slice (10) und ein dritter Ausgang des ersten Slices (6) mittels einer zweiten Zwischenverbindung (9) mit einem zweiten Eingang des zweiten Slice (10) verbunden ist.
  10. Anordnung zur Umsetzung von Scrambler-Algorithmen in einem Prozessor mit einem Rechenwerk welches implementierte Datenpfade enthält und aus einem SIMD-Bereich gebildet wird, welcher mit einer ersten Programmsteuerung verbunden ist und einerseits aus einem Registerinput, welches mit seinem niederwertigsten Bit den Datenstrom-Registerinput beinhaltet, sowie anderseits aus einem ersten Slice und mindestens aus einem zweiten Slice besteht wobei in einem niederwertigsten Bit-Slice des ersten Slice ein Datenstrom-Bit-Slice realisiert wird, dadurch gekennzeichnet, dass ein Ausgang eines ersten Registerinputs (1) mittels eines ersten Registerinput-Busses (38) ohne niederwertigste Bitleitung an einen ersten Eingang des ersten Slice (6) geschalten ist, dass ein Ausgang eines zweiten Registerinputs (3) mittels eines zweiten Registerinput-Busses (48) an einen ersten Eingang des zweiten Slice (10) geschalten ist, dass die niederwertigste Bitleitung des Registerinput Busses (38) mit einem zweiten Eingang des ersten Slice (6) geschalten ist, dass an einem ersten Ausgang des ersten Slice (6) mittels einem ersten Ausgangs-Verknüpfungs-Bus (7) ohne dessen niederwertigste Bitleitung ein erster Ausgangswert des ersten Slice (6) bereitgestellt wird, dass an einem erster Ausgang des zweiten Slice (10) mittels eines zweiten Ausgangs-Verknüpfungs-Bus (49) ein Ausgangswert des zweiten Slices bereitgestellt wird, dass an einem zweiten Ausgang des ersten Slice (6) mittels einer niederwertigsten Bitleitung des ersten Ausgang-Verknüpfungs-Busses (7) ein zweiter Ausgangswert des ersten Slice (6) bereitgestellt wird. dass ein dritter Eingang des ersten Slices (6) mittels einer ersten Zwischenverbindung (8) mit einem zweiten Ausgang des zweiten Slice (10) und ein dritter Ausgang des ersten Slices (6) mittels einer zweiten Zwischenverbindung (9) mit einem zweiten Eingang des zweiten Slice (10) verbunden ist.
  11. Anordnung nach den Ansprüchen 9 und 10, dadurch gekennzeichnet, dass für den Fall, dass der zweite Slice (10) den höchstwertigen Slice repräsentiert, ein dritter Eingang des zweiten Slice (10) mittels einer Abschlussverbindung (44) mit einem dritten Ausgang des zweiten Slice (10) verbunden ist.
  12. Anordnung nach den Ansprüchen 9 und 11, dadurch gekennzeichnet, dass der erste Slice (6) und damit jeder weitere baugleich Slice aus einem Bit-Verarbeitungsteil (52) und einem Zwischenspeicherstreifen (15) besteht, wobei der jeweils erste Eingang des ersten Slice (6) mittels des ersten Registerinput-Busses (38) an einen ersten Eingang des Bit-Verarbeitungsteils (52) geschalten ist, dass sein erster Ausgang des Bit-Verarbeitungsteils (52) mittels des Ausgangs-Verknüpfungs-Busses (7) mit dem ersten Ausgang des ersten Slice (6) verbunden ist, dass der zweite Eingang des ersten Slice (6) mit einem zweiten Eingang des Bit-Verarbeitungsteils (52) und der zweite Ausgang des ersten Slice (6) mit einem zweiten Ausgang des Bit-Verarbeitungsteils (52) geschalten ist, dass der jeweilig dritte Eingang des ersten Slice (6) mit einem ersten Eingang des Zwischenspeichersteifens (15) und der dritte Ausgang des ersten Slice (6) mit einem ersten Ausgang des Zwischenspeichersteifens (15) verbunden ist, dass ein zweiter Ausgang des Zwischenspeichersteifens (15) mit einem dritten Eingang des Bit-Verarbeitungsteils (52) und außerdem dessen dritter Ausgang mit einem zweiten Eingang des Zwischenspeichersteifens (15) geschalten ist.
  13. Anordnung nach den Ansprüchen 10 und 11, dadurch gekennzeichnet, dass einerseits der erste Slice (6) aus einem Bit-Verarbeitungsteil (52), einem Datenstrom-Bit-Slice (22) und einem Zwischenspeicherstreifen (15) besteht, wobei der jeweils erste Eingang des ersten Slice (6) mittels des Registerinput-Busses (38), ohne dessen niederwertigste Bitleitung, an einen ersten Eingang des Bit-Verarbeitungsteils (52) geschalten ist, dass die niederwertigste Bitleitung des ersten Registerinput-Busses (38) mit einem ersten Eingang des Datenstrom-Bit-Slices (22) verbunden ist, dass ein erster Ausgang des Bit-Verarbeitungsteils (52) mittels Ausgangs-Verknüpfungs-Bus (7) ohne dessen niederwertigste Bitleitung mit dem ersten Ausgang des ersten Slice (6) verbunden ist, dass ein erster Ausgang des Datenstrom-Bit-Slices (22) mittels der niederwertigsten Bitleitung des Ausgangs-Verknüpfungs-Busses (7) mit dem zweiten Ausgang des ersten Slice (6) verbunden ist, dass ein zweiter Eingang des Datenstrom-Bit-Slices (22) mittels ersten Extra-Zwischenverbindung (18) mit einem zweiten Ausgang des Bit-Verarbeitungsteils (52) und der zweite Ausgang des Datenstrom-Bit-Slices (22) mittels einer zweiten Extra-Zwischenverbindung (19) an einen zweiten Eingang des Bit-Verarbeitungsteils (52) geschalten ist, dass der jeweilig dritte Ausgang der Bit-Verarbeitungsteils (52) mit einem ersten Eingang des Zwischenspeichersteifens (15) und der dritte Eingang des Bit-Verarbeitungsteils (52) mit einem ersten Ausgang des Zwischenspeichersteifens (15) verbunden ist, dass ein zweiter Ausgang des Zwischenspeichersteifens (15) mit einem dritten Eingang des ersten Slice (6) und außerdem dessen dritter Ausgang mit einem zweiten Eingang des Zwischenspeichersteifens (15) geschalten ist, dass anderseits der zweite Slice (10) und damit jeder weitere baugleiche Slice aus einem Bit-Verarbeitungsteil (52) und einem Zwischenspeicherstreifen (15) besteht, wobei der jeweils erste Eingang des zweiten Slice (10) mittels des zweiten Registerinput-Busses (48) an einen ersten Eingang des Bit-Verarbeitungsteils (52) geschalten ist, dass sein erster Ausgang des Bit-Verarbeitungsteils (52) mittels Ausgangs-Verknüpfungs-Bus (49) mit dem ersten Ausgang des zweiten Slice (10) verbunden ist, dass der zweite Eingang des zweiten Slice (10) mit einem zweiten Eingang des Bit-Verarbeitungsteils (52) und der zweite Ausgang des zweiten Slice (10) mit einem zweiten Ausgang des Bit-Verarbeitungsteils (52) geschalten ist, dass der jeweilig dritte Eingang des zweiten Slice (10) mit einem ersten Eingang des Zwischenspeichersteifens (15) und der dritte Ausgang des zweiten Slice (10) mit einem ersten Ausgang des Zwischenspeichersteifens (15) verbunden ist, dass ein zweiter Ausgang des Zwischenspeichersteifens (15) mit einem dritten Eingang des Bit-Verarbeitungsteils (52) und außerdem dessen dritter Ausgang mit einem zweiten Eingang des Zwischenspeichersteifens (15) geschalten ist.
  14. Anordnung nach den Ansprüchen 9 bis 13, dadurch gekennzeichnet, dass der Bit-Verarbeitungsteil (52) aus einem ersten und mindestens aus einem baugleichen zweiten Bit-Slice (14); (45) besteht, wobei ein erster Eingang des ersten Bit-Slices (14) mittels einer ersten Bitleitung des ersten Registerinput-Busses (38) mit dem ersten Eingang der Bit-Verarbeitungseinheit (52) verbunden ist und ein zweiter Eingang des ersten Bit-Slices (14) mittels einer ersten Bitleitung des ersten Ausgangs-Verknüpfungsbusses (7) mit dem ersten Ausgang der Bit-Verarbeitungseinheit (52) und gleichzeitig mit einem ersten Ausgang des ersten Bit-Slices (14) geschalten ist, dass ein zweiter Ausgang des ersten Bit-Slices (14) mit dem zweiten Ausgang der Bit-Verarbeitungseinheit (52) geschalten ist, dass ein dritter Eingang des ersten Bit-Slices (14) mit dem zweiten Eingang der Bit-Verarbeitungseinheit (52) verbunden ist, dass ein dritter Ausgang des ersten Bit-Slices (14) mit einem dritten Eingang eines zweiten Bit-Slices (45) geschalten ist, dass ein vierter Eingang des ersten Bit-Slices (14) mit einem zweiten Ausgang des zweiten Bit-Slices (45) verbunden ist, dass, für den Fall dass der zweite Bit-Slice (45) den höchstwertigen Bit-Slice der Bit-Verarbeitungseinheit (52) repräsentiert, ein dritter Ausgang des zweiten Bit-Slices (45) mit dem dritten Ausgang der Bit-Verarbeitungseinheit (52) und dessen dritter Eingang mit einem vierten Eingang des zweiten Bit-Slices (45) geschalten ist.
  15. Anordnung nach den Ansprüchen 9 bis 14, dadurch gekennzeichnet, dass ein erster Eingang des Zwischenspeicherstreifens (15) mit dem dritten Ausgang der Bit-Verarbeitungseinheit (52) verbunden ist, dass ein erster Ausgang des Zwischenspeicherstreifens (15) mit dem dritten Ausgang des ersten Slice (6) geschalten ist, dass ein zweiter Eingang des Zwischenspeicherstreifens (15) mit dem dritten Eingang des ersten Slice (6) verbunden ist, mit dem dritten Eingang der Bit-Verarbeitungseinheit (52) geschalten ist.
  16. Anordnung nach den Ansprüchen 9 bis 15, dadurch gekennzeichnet, dass der Datenstrom-Bit-Slice (22) aus einem XOR-Verknüpfer (16) einem ersten Multiplexer (17) und einem Accumulator (23) besteht, wobei ein erster Eingang des XOR-Verknüpfers (16) mit einem Ergebnis-Eingang (42) und gleichzeitig mit einem Ergebnis-Ausgang (43) verbunden ist, dass ein zweiter Eingang des XOR-Verknüpfers (16) mit einem ersten Eingang des Datenstrom-Bit-Slices (22) geschalten ist, dass ein Ausgang des XOR-Verknüpfers (16) mit einem ersten Eingang des ersten Multiplexers (17) verbunden ist und dessen zweiter Eingang ist mit einem Ausgang des Accumulators (23) und gleichzeitig mit dem ersten Ausgang des Datenstrom-Bit-Slices (22) geschalten und dass ein Ausgang des Multiplexers (17) mit einem Eingang des Accumulators verbunden ist.
  17. Anordnung nach den Ansprüchen 9 bis 16, dadurch gekennzeichnet, dass der Bit-Slice (14) aus einem AND-Gatter (25), einem XOR-Summierglied (26), einem Bit-Slice-Multiplexer (32) und einem Bit-Slice-Accumulator (33) besteht, dass ein erster Eingang des Bit-Slices (14) mit einem ersten Eingang eines AND-Gatters (25) und dessen zweiter Eingang mit einem zweiten Eingang des Bit-Slices (14) und gleichzeitig mit einem ersten Eingang eines Bit-Slice-Multiplexers (32) und außerdem mit einem 1-Bit-Verschiebe-Ausgang (31) geschalten ist, dass ein Summier-Eingang (30) mit einem ersten Eingang eines XOR-Summiergliedes (26) verbunden, dass dessen zweiter Eingang mit einem Ausgang eines AND-Gatters (25) geschalten, dass ein Ausgang des XOR-Summiergliedes (26) mit einem Summier-Ausgang (28) verbunden ist, dass ein 1-Bit-Verschiebe-Eingang (29) mit einem zweiten Eingang des Bit-Slice-Multiplexers (32) und dessen Ausgang mit einem Eingang eines Bit-Slice-Accumulators (33) und wiederum dessen Ausgang mit einem ersten Ausgang des Bit-Slices (14) und gleichzeitig über eine Bitleitung des ersten bzw. zweiten Ausgangs-Verknüpfungs-Bus (7); (49) mit dem zweiten Eingang des AND Gatters (25) geschalten ist.
  18. Anordnung nach den Ansprüchen 9 bis 17, dadurch gekennzeichnet, dass der Zwischenspeicherstreifen (15) aus einem Zwischenspeicher (35) und einem Verschiebeanschluss (34) besteht, dass ein erster Verschiebeanschluss (34) einen ersten Eingang und einen ersten Ausgang des Zwischenspeicherstreifens (15) repräsentiert, dass ein Zwischenspeicher-Eingang (40) mit einem Eingang eines Zwischenspeichers (35) und gleichzeitig mit einer schaltbaren Zwischenspeicherbrücke (36) verbunden ist, dass ein Ausgang eines Zwischenspeichers (35) mit einem Zwischenspeicherausgang (41) und gleichzeitig mit der schaltbaren Zwischenspeicherbrücke (36) verbunden ist.
DE2001137458 2001-08-02 2001-08-02 Verfahren und Anordnung zur Umsetzung von Scrambler-Algorithmen in prozessorimplementierten Datenpfaden Expired - Fee Related DE10137458B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2001137458 DE10137458B4 (de) 2001-08-02 2001-08-02 Verfahren und Anordnung zur Umsetzung von Scrambler-Algorithmen in prozessorimplementierten Datenpfaden

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2001137458 DE10137458B4 (de) 2001-08-02 2001-08-02 Verfahren und Anordnung zur Umsetzung von Scrambler-Algorithmen in prozessorimplementierten Datenpfaden

Publications (2)

Publication Number Publication Date
DE10137458A1 DE10137458A1 (de) 2003-02-20
DE10137458B4 true DE10137458B4 (de) 2008-08-14

Family

ID=7693840

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001137458 Expired - Fee Related DE10137458B4 (de) 2001-08-02 2001-08-02 Verfahren und Anordnung zur Umsetzung von Scrambler-Algorithmen in prozessorimplementierten Datenpfaden

Country Status (1)

Country Link
DE (1) DE10137458B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5165039A (en) * 1986-03-28 1992-11-17 Texas Instruments Incorporated Register file for bit slice processor with simultaneous accessing of plural memory array cells
WO1999008411A2 (en) * 1997-08-08 1999-02-18 Jonathan Stiebel New operation for key insertion with folding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5165039A (en) * 1986-03-28 1992-11-17 Texas Instruments Incorporated Register file for bit slice processor with simultaneous accessing of plural memory array cells
WO1999008411A2 (en) * 1997-08-08 1999-02-18 Jonathan Stiebel New operation for key insertion with folding

Also Published As

Publication number Publication date
DE10137458A1 (de) 2003-02-20

Similar Documents

Publication Publication Date Title
DE60210494T2 (de) Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung
DE69522380T2 (de) Parallel-Verarbeitungsarchitektur für Bildverarbeitung
DE19724072C2 (de) Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
DE69430838T2 (de) Schaltung und Verfahren zur parallelen Verschiebung und Addition
EP1116128B1 (de) Verfahren zum konfigurieren eines konfigurierbaren hardware-blocks
DE69731700T2 (de) Arithmetischer Schaltkreis und arithmetisches Verfahren
DE4302898A1 (en) Arithmetic logic unit with accumulator function - has two memories and counter with selection to reduce delay in processing
DE4417575A1 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE112005001906B4 (de) Mehrbit-Addierer und Verfahren zum Propagieren, Generieren oder Killen von Carry-In-Bits entlang einer Carry-Kette
DE2626432A1 (de) Arithmetische einheit fuer automatische rechengeraete
DE2758130A1 (de) Binaerer und dezimaler hochgeschwindigkeitsaddierer
DE10137458B4 (de) Verfahren und Anordnung zur Umsetzung von Scrambler-Algorithmen in prozessorimplementierten Datenpfaden
DE69026414T2 (de) Binäres Addiergerät
EP1540460A2 (de) Vorrichtung und verfahren zum umsetzen und addiererschaltung
EP0257362A1 (de) Addierer
EP1789889B1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
DE10305849B3 (de) Carry-Ripple Addierer
DE102007034684A1 (de) Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System
DE69206604T2 (de) Schnelle Addierkette.
DE1499227C3 (de) Schaltungsanordnung für arithmetische und logische Grundoperationen
DE69814590T2 (de) Leistungsfreier hochgeschwindigkeitskonfigurationsspeicher
DE10206830B4 (de) Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden
DE19632246C1 (de) Verfahren für eine Multiplikationsschaltung zur Multiplikation eines Multiplikanden und eines Multiplikators nach dem Booth-Verfahren in iterativen Schritten
DE10329608A1 (de) Verringerung von Rundungsfehlern bei der Bearbeitung digitaler Bilddaten
DE102004013484B3 (de) Rechenwerk

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8327 Change in the person/name/address of the patent owner

Owner name: NXP SEMICONDUCTORS GERMANY GMBH, 22529 HAMBURG, DE

8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110301