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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding 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 - 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 Rechenwerkes0 wird ersichtlich, dass dieses aus den Bereichen für die Befehlsverarbeitungsart SIMD und SISD besteht, die jeweils von der ersten und zweiten Programmsteuerung2 ;4 angesteuert werden, wobei der SIMD-Bereich46 den ersten und den zweiten Slice6 ;10 sowie den ersten und zweiten Registerinput1 ;3 enthält und der SISD-Bereich47 den Datenstrom-Registerinput5 und den Extra-Slice11 , welcher wiederum aus dem Datenstrom-Bit-Slice22 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-Bus38 ;48 gelangt dieses an die jeweils ersten Eingänge des ersten und des zweiten Slice6 ;10 . Die beiden baugleichen Slices repräsentieren die Datenpfade des Rechenwerkes0 und werden so angesteuert, dass für die Umsetzung von Scrambler-Algorithmen die in1 ersichtlichen Bestandteile eines Slices aus Bitverarbeitungsteil52 und Zwischenspeicherstreifen15 wirksam werden. Der Bitverarbeitungsteil52 wiederum besteht aus einem ersten und mindestens zweiten Bit-Slice14 ;45 , wobei deren Bestandteile zu den Baugruppen AND-Gatterblock20 , XOR-Summierer21 , Shifter-/Multiplexerblock12 und Accumulatorblock13 zusammengefasst sind. - Über den ersten und zweiten Registerinput-Bus
38 ;48 gelangen die Daten des ersten und zweiten Registerinputs1 ;3 von jeweils dem ersten Eingang des ersten und des zweiten Slice6 ;10 an den jeweils ersten Eingang der Bitverarbeitungseinheit52 und weiterhin an den ersten Eingang des AND-Gatterblockes20 . - 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 Slice6 ;10 ein Slice-Ausgangswert bereitgestellt, sondern er schaltet bei Auftreten der Signalbelegung HIGH auf der jeweiligen Bitleitung des ersten und zweiten Ausgangs-Verknüpfungs-Busses7 ;49 das jeweilige AND-Gatter des AND-Gatterblocks20 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-Eingangsbus39 an den XOR-Summierer21 . - Im ersten Slice
6 wird die XOR-Summierung derart ausgeführt, dass zusammen mit dem am dritten Eingang des Bit-Verarbeitungs-Teil52 anliegenden und über die erste Zwischenverbindung8 bereitgestellten und wahlweise im Zwischenspeicherstreifen15 gespeicherten Ausgangwert des XOR-Summierers21 des zweiten Slice10 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 Slice6 am dritten Eingang seines Bit-Verarbeitungs-Teils52 über die Abschlussverbindung44 der Ausgangswert seines Shifter-/Multiplexerblockes12 bereitgestellt. Ansonsten wird der XOR-Summier-Vorgang in gleicher Weise wie im ersten Slice6 ausgeführt. - Nach Beendigung des gesamten XOR-Summiervorganges wird am Ausgang des XOR-Summierers
21 des ersten Slice6 und damit auch am zweiten Ausgang seines Bit-Verarbeitungs-Teiles52 und damit auch am zweiten Ausgang des ersten Slice6 selbst über die erste Extra-Zwischenverbindung18 das Gesamtergebnis an dem zweiten Eingang des Extra-Slice11 und damit auch an den zweiten Eingang des Datenstrom-Bit-Slice22 bereitgestellt. Gleichzeitig wird der Wert über den zweiten Ausgang des Datenstrom-Bit-Slices22 und damit auch über den zweiten Ausgang des Extra-Slice11 und über die zweite Extra-Zwischenverbindung19 an den zweiten Eingang des ersten Slice6 und damit auch am zweiten Eingang seines Bit-Verarbeitungs-Teiles52 und des Eingang des Shifter-/Multiplexerblockes12 angelegt. - Mit Beginn des nächsten Verarbeitungstaktes wird dieser Wert über den Accumulator-Eingangs-Bus
51 in den Accumulatorblock13 und damit in den Accumulator des ersten Bit-Slices14 des ersten Slice6 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 Accumulatorblockes13 im jeweiligen Shifter-/Multiplexerblock12 um 1 Bit nach links verschoben. - SIMD-Slice-übergreifend geschieht das, indem der am Ausgang des Shifter-/Multiplexerblocks
12 des ersten Slice6 und damit am dritten Ausgang der Bit-Verarbeitungseinheit52 und ebenfalls damit auch am dritten Ausgang des ersten Slice6 anliegende Verschiebewert über die zweite Zwischenverbindung9 an den zweiten Eingang des zweiten Slice10 und damit am zweiten Eingang der zugehörigen Bit-Verarbeitungseinheit und somit am Eingang des Shifter-/Multiplexerblockes des zweiten Slice10 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-Slice11 und damit auch am ersten Eingang des Datenstrom-Bit-Slices22 bereitgestellt. Somit liegt er am ersten Eingang des XOR-Verknüpfers16 an. Weiterhin wird mit dem am zweiten Eingang des Extra-Slices11 und damit am zweiten Eingang des Datenstrom-Bit-Slices22 bereitgestellten Gesamtergebnis des XOR-Summierers21 dieses auch am zweiten Eingang des XOR-Verknüpfers16 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 Multiplexers17 durchgeschaltet und damit wird es beim nächsten Speicherbefehl des ersten Accumulators23 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-Slice11 zur Weiterverarbeitung an. - Bei dem in
2 dargestellten Funktionsblöcken des Rechenwerkes0 wird ersichtlich, dass dieses aus einem Bereich nur für die Befehlsverarbeitungsart SIMD besteht. Dieser Bereich wird von der ersten Programmsteuerung2 angesteuert, wobei dieser SIMD-Bereich46 den ersten und den zweiten Slice6 ;10 sowie den ersten und zweiten Registerinput1 ;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 Registerinputs1 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 Slice6 ;10 , wobei der erste Registerinput-Bus38 um eine Bitleitung reduziert ist und diese Bitleitung die Datenverbindung50 realisiert und an den zweiten Eingang des ersten Slice6 sowie weiterhin an den ersten Eingang des Datenstrom-Bit-Slices22 führt. - Die beiden Slices sind nicht baugleich, da die Bit-Verarbeitungseinheit
52 des ersten Slice6 um einen Bit-Slice reduziert ist und dafür der erste Slice6 den Datenstrom-Bit-Slice22 enthält. - Der erste Ausgangs-Verknüpfungs-Bus
7 ist um eine Bitleitung reduziert. Diese Bitleitung realisiert dafür die Accumulator-Multiplexer-Verbindung24 und stellt gleichzeitig am ersten Ausgang des Datenstrom-Bit-Slices22 und damit auch am zweiten Ausgang des ersten Slice6 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 Multiplexers17 durchgeschalten wird und bei einem auftretenden Schreibbefehl der Ausgangswert des ersten Accumulators23 nochmals eingeschrieben wird. - In der in
3 ersichtlichen Anordnung des Datenstrom-Bit-Slices22 wird an seinem ersten Eingang die über die Datenverbindung50 bereitgestellten Signalwerte des Datenstroms angelegt. - Diese werden zusammen mit dem am Ergebnis-Eingang
42 auftretenden Signalwerten im XOR-Verknüpfer16 verknüpft und an dessen Ausgang für den ersten Eingang des ersten Multiplexers17 bereitgestellt. - In einer Grundstellung des ersten Multiplexers
17 ist dieser Eingang durchgeschalten, so dass der an seinem Ausgang anliegende Wert in den ersten Accumulator23 bei Vorliegen eines Schreibbefehls eingeschrieben wird. - Am Ausgang des ersten Accumulators
23 wird einerseits der gültige Ausgangswert des Datenstrom-Bit-Slices22 bereitgestellt und anderseits dieser Wert über die Accumulator-Multiplexer-Verbindung24 an den zweiten Eingang des ersten Multiplexers17 herangeführt. - Außerdem werden die am Ergebnis-Eingang
42 angelegten Signalwerte am Ergebnis-Ausgang43 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 Accumulators23 nochmals eingeschrieben werden. Danach nimmt der ersten Multiplexers17 seine Grundstellung wieder ein. - Wie in
4 ersichtlich, wird am ersten Eingang des Bit-Slices14 der jeweilige Bit-Signalwert des Scrambler-Polynoms angelegt und gelangt an einen ersten Eingang des AND-Gatters25 . - An dem zweiten Eingang des Bit-Slices
14 , der mit dem zweiten Eingang des AND-Gatters25 und dem 1-Bit-Verschiebe-Ausgang31 verbunden ist, wird eine Bitleitung des ersten oder zweiten Ausgangs-Verknüpfungs-Bus7 ;49 herangeführt, der den Ausgang des Bit-Slice-Accumulators33 mit diesem verbindet. - Vom Summier-Eingang
30 gelangt der Summerwert von dem höherwertigen Bit-Slice an den ersten Eingang des XOR-Summiergliedes26 und an dessen zweiten Eingang wird das Ausgangssignal des AND-Gatters25 zur Summierung angelegt. Das Ergebnis gelangt vom Ausgang des XOR-Summierglied26 an Summier-Ausgang28 . - Vom 1-Bit-Verschiebe-Eingang
29 wird das Signal an den ersten Eingang des Bit-Slice-Multiplexers32 geführt und wird in seinem durchgeschalten Zustand an den Eingang des Bit-Slice-Accumulators33 angelegt. Bei einem Schreibbefehl eines nachfolgenden Verarbeitungstaktes wird sein Signalwert in den Bit-Slice-Accumulators33 eingeschrieben und liegt einerseits am ersten Ausgang des Bit-Slices14 an und gelangt durch den Schaltungsweg an den 1-Bit-Verschiebe-Ausgang31 . 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-Multiplexer32 der zweite Eingang durchgeschaltet und dadurch das Wiedereinschreiben des vorliegenden Ausgangswertes des Bit-Sclice-Accumulators33 gewährleistet wird. - In der
5 ist ersichtlich, dass vom Zwischenspeicher-Eingang40 das Signal an den Eingang des Zwischenspeichers35 geführt wird. Sein Ausgangswert wird an den Zwischenspeicher-Ausgang41 angelegt. Durch die schaltbare Zwischenspeicherbrücke36 bleibt der Ausgangswert des Zwischenspeichers35 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)
- 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. - 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.
- 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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.
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)
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 |
-
2001
- 2001-08-02 DE DE2001137458 patent/DE10137458B4/de not_active Expired - Fee Related
Patent Citations (2)
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 |