-
Die
Anmeldung betrifft eine integrierte Schaltung, insbesondere einen
logarithmischen Shifter, und ein Verfahren zum Betreiben der integrierten
Schaltung.
-
Im
Kern der Verarbeitungseinheit moderner Mikroprozessoren und -controller,
der sogenannten „Central
Processing Unit" (CPU),
befindet sich der Datenpfad, welcher die Zusammenschaltung sämtlicher
Funktionseinheiten zur Verarbeitung von Daten darstellt. Die Zusammenschaltung
erfolgt über
Leitungsbündel,
sogenannte Datenbusse, und umfasst unter anderem die Funktionseinheiten
Multiplexor, arithmetisch-logische Einheit (ALU), Shifter und Register
File. Der Aufbau und das Zusammenwirken der Funktionseinheiten von
Datenpfaden ist dem Fachmann hinlänglich bekannt, so dass auf
eine genauere Beschreibung verzichtet wird.
-
Der
Shifter dient der Bitmanipulation, d.h. dem Verschieben eines binären Datenwortes
um eine im allgemeinen über
Steuersignale programmierbare Anzahl n von Bitpositionen nach rechts
oder links. Beispielsweise weist ein Shifter einen programmierbarem
Wertevorrat n ∊ [–7,
7] auf, d.h. das (als hinreichend breit vorausgesetze) Datenwort
am Eingang des Shifters kann um bis zu sieben Bitpositionen nach
rechts oder links verschoben werden.
-
Es
gibt unterschiedliche Realisierungsformen von Shiftern, nämlich die
sog. Barrelshifter und die logarithmischen Shifter. Bei einer einstufigen
Realisierung des oben genannten Beispiels mit einem Barrelshifter, der
M = 15 verschiedene Schiebeoperationen (M wird auch als Mächtigkeit
bezeichnet) verarbeiten können muss,
erfordert dies für
jedes Datenbit einen 1-aus-15 Multiplexor, welcher entsprechend
viele Daten- und Steuereingänge aufweisen
muss. Im Falle der mehrstufigen, logarithmischen Realisierung mit
dem Logarithmischen Shifter wird in der ersten Stufe z.B. um +4,
0 oder –4
Bit geschoben, in der nachgeschalteten zweiten Stufe z.B. um +1,
0 oder –1
Bit und in der darauf folgenden dritten z.B. um +2, 0 oder –2 Bit.
Mit drei kaskadierten 1-aus-3 Multiplexor-Schaltungen sowie maximal
neun Steuereingängen
bedeutet dies eine wesentlich günstigere
Lösung
hinsichtlich der Anzahl der benötigten
Schaltelemente und vor allem des Verdrahtungs- und Flächenaufwandes.
-
Im
allgemeinen gilt, dass der Barrelshifter nur für kleine Werte von M in Frage
kommt. Für
größere Werte
von M ist der Logarithmische Shifter wesentlich effektiver und effizienter,
sowohl was den Aufwand als auch was die Schaltzeit anlangt. Hintergrundinformatonen
dazu können
dem Buch "DIGITAL
INTEGRATED CIRCUITS – A
Design Perspective",
Jan M. Rabaey, Prentice Hall (1996), Chapter 7 entnommen werden.
-
Üblicherweise
sind Datenpfade moderner Mikroprozessoren und – controller in sogenannter „Single-Rail" Schaltungstechnik
ausgeführt.
Bei diesen wird jedes Bit der zu verarbeitenden Information physikalisch durch
genau einen elektrischen Knoten dargestellt. Dem logischen Wert
eines Zustands-Bits entspricht somit genau ein elektrischer Knoten.
-
Nachteil
dieser Single-Rail-Technologie ist die Tatsache, dass der Schaltungsaufbau
bzw. die in der Schaltung verarbeiteten Signale auf einfache Weise
ausspioniert werden können.
Eine der wichtigsten Methoden zum Angriff auf Schaltungen und zur
Beurteilung deren Empfindlichkeit bei Sicherheitsanwendungen ist die
differentielle Stromprofil-Analyse (Differential Power Analysis,
DPA). Diese Methodik wird für
gezielte Angriffe verwendet, um vertrauliche Informationen, wie
zum Beispiel Passwörter
oder kryptographische Schlüssel,
auszuspionieren.
-
Dabei
werden für
ein gegebenes Programm bzw. für
einen gegebenen Algorithmus mit statistischen Methoden gemessene
Stromprofile ausgewertet. Insbesondere werden über einen oder mehrere Taktzyklen berechnete
Ladungsintegrale ausgewertet, wobei – für eine Vielzahl von Programmausführungen – aus der Korrelation
von systematischer Datenvariation und jeweiligem Ladungsintegral
Rückschlüsse auf
die zu schützende
Information gezogen werden können.
-
Hieraus
folgt, dass die zu schützenden
integrierten Schaltungen, wie z.B. Chipkarten, derart beschaffen
sein sollten, dass sie unabhängig
von den zu verarbeitenden Daten das gleiche Stromprofil liefern,
um eine differentielle Stromprofil-Analyse ins Leere laufen zu lassen.
-
Für Single-Rail-Datenpfade
ist dies nicht der Fall. Das dem zeitlichen Verlauf der Zustände einer Schaltung
zugeordnete Ladungsintegral ist eine Funktion derjenigen Knoten
bzw. elektrischen Kapazitäten,
die elektrisch umgeladen werden, Der zeitliche Verlauf weist also
eine starke Abhängigkeit
von den zeitlichen Änderungen
der zu verarbeitenden Daten auf.
-
Nachteil
bekannter Shifter ist, dass diese in Single-Rail-Technologie ausgeführt sind und deshalb die durch
sie transportierten Daten ausspioniert werden können.
-
Um
eine Analyse der Daten zwischen einem Sender und einem Empfänger zu
erschweren werden in der
DE
100 44 837 C1 Daten in Dual-Rail-Technologie mit Vorladung
ausgetauscht, Jedes Bit wird dabei mittels zweier komplementärer Leitungen
codiert. In einer ersten Taktphase werden beide Leitungen auf den
selben logischen Wert vorgeladen, in einer zweiten Taktphase wird
eine der beiden Leitungen entladen und anschließend ausgewertet.
-
Aus
der
US 5,399,921 ist
ein 1 aus 2 Multiplexor bekannt, bei dem in Abhängigkeit eines Dual-Rail-Steuersignals
eines von zwei Dual-Rail-Signale an den Dual-Rail-Ausgang weitergeleitet
werden kann. Die Multiplexoren können
parallel- und in Serie geschaltet werden. Jeder Multiplexor weist
dabei eine eigene Vorladeeinheit auf, wobei die Vorladeeinheiten
mit einem gemeinsamen Taktsignal angesteuert werden.
-
Die
Aufgabe der vorliegenden Erfindung besteht deshalb darin, eine integrierte
Schaltung, insbesondere einen Shifter, anzugeben, bei der das Ausspionieren
von Daten erschwert ist und die Anzahl der erforderlichen Vorladeeinheiten
reduziert wird. Weiterhin soll ein Verfahren zum Betreiben dieser
integrierten Schaltung angegeben werden, welche ein konstantes Ladungsintegral
aufweist, um eine differentielle Stromprofilanalyse ins Leere laufen
zu lassen.
-
Diese
Aufgabe wird mit einer integrierten Schaltung mit den Merkmalen
des Patentanspruches 1 und-mit einem Verfahren mit den Merkmalen
des Patentanspruches 14 gelöst.
Vorteilhafte Ausgestaltungen ergeben sich aus den jeweils abhängigen Ansprüchen.
-
Die
erfindungsgemäße Schaltung
weist folgende Merkmale auf:
- – zumindest
zwei kaskadisch verschaltene Multiplexoren, welche jeweils eine
Mehrzahl an Dateneingängen,
einen Datenausgang und einen Steuereingang aufweisen, wobei durch
das an dem Steuereingang anliegende Signal festgelegt wird, welcher
der Dateneingänge
mit dem Datenausgang verbunden wird,
- – der
Datenausgang eines Multiplexors ist mit einem der Dateneingänge des
nachgeschalteten Multiplexors verbunden, wodurch ein durch die Kaskade
führender
Datenpfad gebildet ist,
- – jeder
Dateneingang und jeder Datenausgang weist zwei Anschlüsse zum
Anlegen eines Dual-Rail-Signals auf, und
- – es
ist zumindest eine mit einem Steuersignal ansteuerbare Vorladeeinheit
vorgesehen, die mit dem Datenausgang oder dem Dateneingang eines
der Multiplexoren verbunden ist,
- – eine
mit den Multiplexoren (Mux1, Mux2, Mux4) und der Vorladeeinheit
(VE) verbundene Ansteuerschaltung (AS) vorgesehen ist, die die zeitliche
Synchronisation der Steuersignale (shj<2:0>)
der Multiplexoren (Mux1, Mux2, Mux4) und des Steuersignals (PrShQ)
der Vorladeeinheit (VE) übernimmt,
so dass einzelne Abschnitte des Datenpfads, die zwischen zwei nacheinander
geschalteten Multiplexoren (Mux1, Mux2, Mux4) liegen, vor dem Ausführen einer
Rechenoperation getrennt voneinander in einen Vorlade-Zustand gebracht
werden können.
-
Der
Erfindung liegt der Gedanke zugrunde, dass sich ändernde Ladungsintegrale durch
den Einsatz der sogenannten Dual-Rail-Technologie verhindert werden können. Im
Gegensatz zur herkömmlichen
Single-Rail-Technologie, bei der jedes Bit innerhalb eines Daten-
oder Signalpfades physikalisch durch genau einen elektrischen Knoten
k eines Schaltnetzes oder Schaltwerkes dargestellt wird, wird bei
der Realisierung mit Dual- Rail-Technologie
jedes Bit durch zwei Knoten k und kq dargestellt, wobei dieses Bit
einen gültigen
logischen Wert aufweist, wenn k dem wahren logischen Wert b dieses
Bits und kq dem komplementären
Wert bn = not (b) entspricht.
-
Die
gewünschte
Invarianz der Ladungsintegrale wird nun dadurch erreicht, dass zwischen
zwei Zustände
mit gültigen
logischen Werten (b, bn) = (1,0) oder (0,1) ein sogenannter Vorlade-Zustand
(precharge) eingefügt
ist. In diesem Vorlade-Zustand
werden sowohl der Knoten k als auch der Knoten kq auf das selbe elektrische
Potential geladen, nehmen also logisch ungültige Werte (1,1) oder (0,0)
an. Für
den Vorlade-Zustand (1,1) könnte
eine Zustandsfolge wie folgt aussehen: (1,1), (0,1), (1,1), (1,0),
(1,1), (1,0), (1,1), (0,1) ...
-
Für jede beliebige
solcher Zustandsfolgen gilt, dass bei jedem Übergang (1,1) nach (b, bn)
genau ein Knoten von 1 nach 0 umgeladen wird und für alle Zustände (b,
bn) nach (1,1) genau ein Knoten von 0 nach 1 umgeladen wird. Dies
gilt unabhängig
vom logisch gültigen
Wert b eines jeweiligen Zustands-Bits. Natürlich gilt analoges auch für Zustandsfolgen
mit dem Vorlade-Zustand (0,0).
-
Hieraus
folgt, dass die diesen Zustandsfolgen entsprechenden Ladungsintegrale
unabhängig
von der Abfolge (b, bn) der logisch gültigen Werte sind. Es muss
lediglich Sorge dafür
getragen werden, dass die Knoten k und kq gleiche elektrische Kapazitäten aufweisen.
Das Stromprofil eines derart implementierten Datenpfades hängt somit
nicht mehr ab von zeitlichen Variationen der zu verarbeitenden Daten.
Eine in Dual-Rail-Technologie
aufgebaute Schaltung ist somit resistent gegen eine differentielle
Stromprofil-Analyse.
-
Der
Erfindung liegt damit die Idee zugrunde, beim Betreiben der integrierten
Schaltung die Dateneingänge
und Datenausgänge
im Datenpfad der Multiplexor-Kaskade vor dem Durchführen eines
Rechenschrittes, insbesondere einer Schiebeoperation, mit einem
Vorlade-Signal zu beaufschlagen.
-
In
einer bevorzugten Ausgestaltung ist die Vorladeeinheit zwischen
einem Versorgungspotential- oder einem Bezugspotentialanschluss
und dem Datenpfad der integrierten Schaltung verschalten. Ob eine
Verbindung mit dem Versorgungspotential- oder dem Bezugspotentialanschluss erfolgt,
ist abhängig
vom Typ der eingesetzten Transistoren. Beispielsweise wird bei der
Verwendung von p-Kanal Transistoren die Vorladeinheit mit dem Versorgungspotentialanschluss
verbunden.
-
In
einer weiteren Ausgestaltung ist die Vorladeeinheit mit dem Datenausgang
des letzten Multiplexors der Kaskade verbunden, welcher gleichzeitig
den Datenausgang der integrierten Schaltung darstellt. Bei dieser
Variante ist es möglich,
die inneren Knoten der Multiplexor-Kaskade, welche durch die Verbindung
des Datenausganges eines Multiplexors mit dem Dateneingang des nachgeschalteten
Multiplexors gebildet sind, vom Datenausgang der integrierten Schaltung
angeordneten Vorladeeinheiten vorzuladen. Dies geschieht dadurch,
dass mit Ausnahme des ersten Multiplexors der Kaskade alle weiteren
Multiplexoren mit Steuersignalen beauftragt werden, so dass bei
diesen eine leitende Verbindung des Dateneingangs mit dem Datenausgang hergestellt
ist. Vorzugsweise wird bei dieser Variante der Dateneingang des
ersten Multiplexors der Kaskade von einer mit diesem verbundenen
Vorladeeinheit mit einem Vorlade-Signal beaufschlagt.
-
In
einer weiteren bevorzugten Ausgestaltung ist die Vorladeeinheit
mit dem Dateneingang des ersten Multiplexors der Kaskade verbunden,
welcher den Dateneingang der integrierten Schaltung darstellt. Bei
dieser Variante ist es möglich,
die inneren Knoten der Multiplexor-Kaskade vom Dateneingang der
Schaltung her mit einem Vorlade-Signal zu beaufschlagen. Dies geschieht
dadurch, dass mit Ausnahme des letzten Multiplexors der Kaskade
alle anderen Multiplexoren mit Steuersignalen beaufschlagt werden,
so dass bei diesen eine leitende Verbindung des Dateneingangs mit
dem Datenausgang hergestellt ist. Bevorzugt wird hierbei der Datenausgang
des letzten Multiplexors der Kaskade von einer mit diesem verbundenen
Vorladeeinheit mit einem Vorlade-Signal beaufschlagt.
-
In
einer weiteren Ausgestaltung ist die Vorladeeinheit zwischen dem
Datenausgang eines der Multiplexoren und dem Daten eingang eines
nachgeschalteten Multiplexors verschalten. Dies bedeutet nichts
anderes, als dass die Vorladeeinheit mit einem inneren Knoten der
Multiplexor-Kaskade verschalten ist. Analog zu dem oben beschriebenen
Vorgehen werden auch hier die Multiplexoren mit Steuersignalen beaufschlagt,
so dass der Datenpfad der Multiplexor-Kaskade mit einem Vorlade-Signal beaufschlagt
werden kann. Denkbar ist, am Dateneingang und Datenausgang der integrierten
Schaltung jeweils eine weitere Vorladeinheit vorzusehen, die die
jeweiligen Knoten des Datenpfades mit dem Vorlade-Signal versieht.
-
In
einer weiteren bevorzugten Ausgestaltung ist eine mit dem Datenpfad
gekoppelte Halteschaltung vorgesehen, die im Falle eines am Datenausgang
eines Multiplexors anliegenden Dual-Rail-Signals des jeweiligen Signalwert
mit dem Versorgungspotential- bzw. dem Bezugspotentialanschluss
verbindet. Die Halteschaltung sorgt dafür, dass, sobald eines der Signale
des Dual-Rail-Signals auf niedriges Potential gebracht wurde, der
jeweils komplementäre
Knoten auf hohem Potential gehalten wird. Die Halteschaltung ist
dabei selbstregulierend.
-
Vorzugsweise
ist die Halteschaltung mit der Vorladeeinheit verbunden. Weiter
bevorzugt ist es, wenn die Halteschaltung am Datenausgang der integrierten
Schaltung angeordnet ist, Sie weist in einer Ausgestaltung zwei
kreuzgekoppelte Transistoren auf und ist zwischen dem Datenausgang
der Schaltung und dem Versorgungspotential- bzw. Bezugspotentialanschluss
verbunden.
-
Gemäß dem Gedanken
der Erfindung sollen die Dateneingänge und Datenausgänge im Datenpfad der
Multiplexor-Kaskade vor dem Durchführen eines Rechenschrittes,
insbesondere einer Schiebeoperation, mit einem Vorlade-Signal beaufschlagt
werden.
-
Zum
Beaufschlagen mit einem Vorlade-Signal ist vorgesehen, in einer
ersten Phase alle Multiplexoren der Kaskade mit Steuersignalen zu
beaufschlagen, so dass zwischen Dateneingang und Datenausgang eines jeweiligen
Multiplexors keine leitende Verbindung besteht und die Vorladeeinheit
mit einem Steuersignal zu beaufschlagen, so dass der mit ihr verbundene
Abschnitt des Datenpfades in einen Vorlade-Zustand gebracht wird.
Dieses Vorgehen stellt zunächst
nichts anderes als die Aktivierung der Vorladeeinheit dar.
-
In
einer zweiten Phase werden zumindest einige der Multiplexoren mit
Steuersignalen beaufschlagt, so dass bei diesen eine leitende Verbindung
des Dateneingangs mit dem Datenausgang hergestellt ist, wodurch
weitere Abschnitte des Datenpfades in einen Vorlade-Zustand verbracht
werden. Es ist dabei möglich, alle
Multiplexoren der Kaskade mit einem solchen Steuersignal zu beaufschlagen,
dass der jeweilige Dateneingang mit dem Datenausgang verbunden ist.
Denkbar ist jedoch auch, nur manche, vorzugsweise benachbart angeordnete
Multiplexoren, im oben beschriebenen Sinne anzusteuern.
-
In
einer dritten Phase werden alle Multiplexoren der Kaskade mit Steuersignalen
beaufschlagt, so dass zwischen Dateneingang und Datenausgang eines
jeweiligen Multiplexors keine leitende Verbindung mehr besteht und
die Vorladeeinheit mit einem diese inaktiv schaltenden Steuersignal
beaufschlagt wird. Die an jeweiligen Datenleitungen anliegenden
Vorlade-Zustände werden
somit nur noch kapazitiv gehalten.
-
Nach
Beendigung der Vorlade-Phase wird zum Durchführen des Rechenschrittes in
der dritten Phase der erste Multiplexor der Kaskade mit einem für die Rechenoperation
notwendigen Steuersignal beaufschlagt.
-
Weiterhin
ist zum Durchführen
des Rechenschrittes in einer vierten Phase vorgesehen, die weiteren Multiplexoren
der Kaskade mit einem für
die Rechenoperation notwendigen Steuersignal zu beaufschlagen.
-
Nach
Abschluss der Rechenoperation wird der Datenpfad nach der oben beschriebenen
Vorgehensweise wiederum mit einem Vorlade-Signal beaufschlagt, bevor
die nächste
Rechenoperation ausgeführt
wird.
-
Das
erfindungsgemäße Verfahren
zum Betreiben der integrierten Schaltung ermöglicht somit einen ladungsneutralen
Betrieb, wodurch ein Ausspionieren von Daten oder Rechenoperationen
mittels der differentiellen Stromprofil-Analyse nicht mehr möglich ist.
Mit dieser Phasenabfolge wird nicht nur für Ladungsneutralität im Datenpfad
gesorgt, sondern auch das zur Steuersignalabfolge korrespondierende
Ladungsintegral ist invariant, wie im folgenden erläutert wird.
-
Zur
Ansteuerung eines Multiplexors ist ein Signalbündel mit drei Signalen vorgesehen.
Je nachdem, welches der Signale eines Signalbündels aktiv ist, wird festgelegt,
ob eine Schiebeoperation nach links, rechts oder um Null durchgeführt werden
wird. Von den jeweils drei Signalen innerhalb der Signalbündel wird
im Falle des mit den Dateneingängen
des ersten Multiplexors der Kaskade genau eines von Versorgungspotential
auf Bezugspotential entladen, genau eines von Bezugspotential auf
Versorgungspotential aufgeladen, während von allen übrigen Ansteuersignalen
der übrigen
Multiplexoren mit Beginn der ersten Phase genau eines entladen wird,
mit Beginn der zweiten bzw. dritten Phase genau eines auf- und wieder
entladen wird und schließlich in
der vierten Phase genau eines aufgeladen wird. Hieraus erfolgt die
Invarianz des Ladungsintegrals auch der Steuersignale, sofern Sorge
dafür getragen wird,
dass die jeweils drei den Signalbündeln entsprechenden Knoten
gleiche elektrische Kapazitäten
aufweisen.
-
Weitere
Einzelheit, Vorzüge
und Zweckmäßigkeiten
ergeben sich aus den nachfolgend beschriebenen Figuren. Es zeigen:
-
1 ein
Prinzipschaltbild eines erfindungsgemäßen logarithmischen Shifters
mit einer Kaskade aus drei Multiplexoren,
-
2 den
schaltungstechnischen Aufbau der in 1 dargestellten
Multiplexoren,
-
3 das
zeitliche Verhalten von Datensignalen und Ansteuersignalen der Schaltung
aus 1,
-
4 ein
Beispiel einer schaltungstechnischen Realisierung zur Erzeugung
der Ansteuersignale der Multiplexor-Kaskade und einer Vorladeeinheit,
-
5 das
zeitliche Verhalten relevanter Signale aus 4,
-
6 einen
weiteren Teilbereich der Ansteuerschaltung zur Erzeugung der Steuersignale
des erfindungsgemäßen logarithmischen
Shifters aus 1,
-
7 und 8 das
zeitliche Verhalten relevanter Signale der Schaltungsanordnung aus 6,
-
9 eine
mögliche
schaltungstechnische Realisierung des Pulsgenerators aus 6,
-
10 eine
mögliche
schaltungstechnische Realisierung des Master-Latches aus 6,
und
-
11 eine
mögliche
schaltungstechnische Realisierung der Transformationsschaltung aus 6.
-
Sofern
nicht ausdrücklich
anders erwähnt,
wurden gleiche Merkmale mit gleichen Bezugszeichen in allen Figuren
versehen.
-
Die
Erfindung wird nachfolgend anhand eines logarithmischen Shifters
mit ganzzahligem Wertevorrat für
die programmierbare Verschiebung binärer Datenwörter beschrieben. Dabei wird
auf das weiter oben bereits angeführte Beispiel mit einem programmierbaren
Wertevorrat n ∊ [–7,7]
zurückgegriffen.
Dies bedeutet, das als hinreichend breit vorausgesetzte Datenwort
am Eingang des Logarithmischen Shifters soll um bis zu sieben Bitpositionen
nach links oder rechts verschoben werden können.
-
In 1 ist
eine dreistufige Multiplexor-Kaskade für ein Bit des Datenpfades (auch
als „Bitslice" bezeichnet) dargestellt.
Jeder Multiplexor weist drei Dateneingänge, einen Datenausgang und
drei Steuereingänge
auf. Jeder Dateneingang und jeder Datenausgang weist zwei Anschlüsse zum
Anlegen eines Dual-Rail-Signals auf. Die Dateneingänge sind übereinstimmend
mit (ar,arq), (a0, a0q) und (al,alq) bezeichnet. Die Datenausgänge sind
mit (z, zq) bezeichnet, während
die Steuereingänge
mit den Bezeichnungen (sr, s0, sl) versehen sind.
-
Jeder
der Dateneingänge
der Multiplexoren Mux4, Mux1, Mux2 kann mit einem Signal (a, aq),
(al, alq), (ar, arq) sowie (ajr, ajrq), (ajl, ajlq) mit j = 1,2
beaufschlagt werden.
-
Die
erste Stufe der Kaskade wird durch den Multiplexor Mux4 gebildet,
dessen Datenausgang (z, zq) mit dem Dateneingang (a0, a0q) des nachgeschalteten
Multiplexors Mux1 verbunden ist. Diesem ist wiederum ein Multiplexor
Mux2 nachgeschaltet.
-
Der
Dateneingang (a0, a0q) des Multiplexors Mux2 ist entspre chend mit
dem Datenausgang (z, zq) des Multiplexors Mux1 verbunden. Die Dateneingänge des
Multiplexors Mux4 bilden den Dateneingang der integrierten Schaltung.
Der Datenausgang (z, zq) des Multiplexors Mux2 bildet den Datenausgang
der integrierten Schaltung.
-
An
jeden Steuereingang der Multiplexoren Mux1, Mux2, Mux4 können drei
Steuersignale shj<2:0> mit j = 1, 2, 4 angelegt
werden, mit dem festgelegt wird, welcher Dateneingang mit dem Datenausgang
verbunden wird. Der Platzhalter j steht dabei stellvertretend für den jeweiligen
Multiplexor Mux1, Mux2 oder Mux4. wird der Steuereingang sr mit
einem aktiven Steuersignal shj<0> beaufschlagt, so wird
der Dateneingang (ar, arq) mit dem Datenausgang (z, zq) verbunden.
In entsprechender Weise wird der Dateneingang (a0, a0q) bzw. (al, alq)
mit dem Datenausgang (z, zq) verbunden, wenn an den Steuereingang
s0 bzw. sl ein aktives Steuersignal shj<1> angelegt
wird.
-
In
der ersten Stufe der Kaskade, dem Multiplexor Mux4, wird das an
den Dateneingängen
anliegende Bit um +4, 0 oder –4
Positionen geschoben, in der nachgeschalteten, zweiten Stufe (Multiplexor
Mux1) wird das an den Dateneingängen
anliegende Bit um +1, 0 oder –1
Positionen geschoben und in der darauffolgenden, dritten Stufen
(Multiplexor Mux2) wird das an den Dateneingänge anliegende Bit um +2, 0
oder –2
Positionen geschoben. Das Schieben ist abhängig davon, welches der jeweils
drei Steuersignale shj<2:0>, j = 4, 1, 2, aktiv
geschalten wurde.
-
Mit
dem Datenausgang der integrierten Schaltung in 1 ist
weiterhin eine Vorladeeinheit VE und eine Halteschaltung HS verbunden.
-
Die
Vorladeeinheit VE besteht aus zwei p-Kanal Transistoren, deren Steueranschlüsse miteinander verbunden
sind und mit einem Signal PrShQ beaufschlagbar sind. Die Hauptanschlüsse des Transistors
Tr1 sind zwischen einem Versorgungspotentialanschluss VP und dem
Datenausgang z der integrierten Schaltung verschalten. Die Hauptanschlüsse des
anderen Transistors Tr2 sind zwischen einem Versorgungspotentialanschluss
VP und dem Datenausgang zq der integrierten Schaltung verschalten.
Durch die Vorladeeinheit VE kann der Datenausgang der integrierten
Schaltung mit einem Vorladesignal (1,1) versehen werden.
-
Die
Halteschaltung HS, die zwei Transistoren Tr3, Tr4, ebenfalls vom
p-leitenden Typ, aufweist, dient dazu, im Falle eines gültigen Dual-Rail-Signals
(0,1) oder (1,0) die jeweiligen Datenausgänge (z, zq) mit dem entsprechenden
Potential VP zu verbinden und zu halten.
-
Die
Vorladeeinheit VE und die Halteschaltung HS könnten auch mit dem Bezugspotentialanschluß BP verbunden
sein, wenn die Transistoren der Vorladeeinheit VE und der Halteschaltung
HS mit n-leitenden Transistoren gebildet würden. Die entsprechend notwendigen
Schaltungsänderungen
sind dem Fachmann geläufig und
werden nicht näher
beschrieben.
-
Es
sei nochmals erwähnt,
dass der in 1 dargestellte Logarithmische
Shifter lediglich beispielhaft ist. Die Kaskade könnte mehr
oder weniger Multiplexoren aufweisen. Ebenso könnte in der ersten Stufe der Kaskade
das Bit lediglich um eine Position verschoben werden, in der zweiten
Stufe beispielsweise um zwei und in der dritten Stufe um vier Positionen.
Die Anordnung liegt im Belieben des Fachmannes.
-
2 zeigt
eine mögliche
Realisierung der Multiplexoren Mux1, Mux2, Mux4. Jeder Multiplexor
ist aus sechs Transistoren N0, N1, N2, N4, N5, N6 gebildet. Die
Laststrecken dieser Transistoren sind jeweils zwischen einem Dateneingang
(ar, arq), (a0, a0q), (al, alq) und dem Datenausgang (z, zq) verschalten.
Die Steueranschlüsse
jeweils zweier mit einem der oben genannten Eingänge verbundenen Transistoren
sind mit dem Steuereingang (sl, s0, sr) verbunden. Die gezeigte
Ver schaltung ist auch unter dem Namen Pass-Transistor-Schaltungstechnik
bekannt.
-
Aus
der in 2 gezeigten Schaltungsanordnung ergibt sich unmittelbar,
dass immer nur höchstens einer
der Steuereingänge
(sl, s0, sr) zu einem bestimmten Zeitpunkt aktiv sein darf, während die
beiden anderen inaktiv geschalten sein müssen, so dass die ihnen zugeordneten
entsprechenden Transistoren gesperrt sind. Andernfalls wäre die korrekte
Funktion der Schaltung gefährdet.
-
In 1 ist
die erste Stufe, der Multiplexor Mux4, mit Dateneingängen (ar,
arq), (a, aq) und (al, alq) verbunden, wobei (a, aq) das der gerade
betrachteten Slice entsprechende Bit im Datenpfad unmittelbar vor dem
Shifter bedeutet. Analog bedeuten (ar, arq) und (al, alq) diejenigen
Bits im Datenpfad unmittelbar vor dem Multiplexor, die gegenüber der
gerade betrachteten Bitslice um vier Bitpositionen höher bzw.
niedriger liegen. Daraus folgt:
Steuersignal s4<2:0> = 010: Schieben um
0 Bitpositionen. (a, aq) wird über
die Transistoren N1, N5 (2) mit dem Datenausgang (z,
zq) des Multiplexors Mux4 leitend verbunden,
Steuersignal s4<2:0> = 001: Schieben um –4 Bitpositionen.
(ar, arq) wird über
die Transistoren N0, N4 (2) mit dem Datenausgang (z,
zq) des Multiplexors Mux4 leitend verbunden,
Steuersignal s4<2:0> = 100: Schieben um
+4 Bitpositionen. (al, alq) wird über die Transistoren N2, N6
(2) mit dem Datenausgang (z, zq) des Multiplexors
Mux4 leitend verbunden.
-
Analoges
gilt für
die Multiplexoren Mux1 und Mux2, wobei mit (ajr, ajrq) und (ajl,
ajlq) mit j = 1,2 diejenigen Bits im Datenpfad unmittelbar vor dem
Multiplexor bezeichnet sind, die gegenüber der gerade betrachteten
Bitslice um j Bitpositionen höher
bzw. niedriger liegen.
-
In 3 ist
der erfindungsgemäße zeitliche
Ablauf der Dateneingänge
und Steuersignale des Logarithmischen Shifters aus 1 angegeben.
In den 4 bis 11 werden die Prinzipien erläutert, denen Schaltungen
zur Erzeugung der Steuersignale shj<2:0> und
PrShQ mit dem erforderlichen und vorteilhaften Zeitverhalten genügen müssen.
-
Wie
aus 3 ersichtlich, besteht jeder Operationszyklus
des Logarithmischen Shifters aus vier aufeinander folgenden Phasen
T1, T2, T3 sowie T4 und wird in 3 mit <T1, T2, T3, T4> bezeichnet.
-
Mit
Beginn der ersten Phase T1 werden alle an den Multiplexoren Mux1,
Mux2, Mux4 anliegenden Steuersignale shj<2:0>,
j = 1,2,4 inaktiv, dies bedeutet: shj<2:0> =
000. Damit sind alle Transistoren N0...N6 (2) jedes
der Multiplexoren Mux1, Mux2, Mux4 der Kaskade gesperrt. Während der
Phase T1 wird zudem das Steuersignal PrShQ für die Vorladeeinheit VE am
Datenausgang der integrierten Schaltung aktiv: PrShQ = 0. Damit
wird der Datenausgang (z, zq) der integrierten Schaltung auf das
Bezugspotential VDD vorgeladen, mit anderen Worten mit einem Precharge-Signal
(1,1) beaufschlagt.
-
Mit
Beginn der zweiten Phase T2 werden die Steuersignale der Multiplexoren
Mux1, Mux2 auf shj<2:0> = 010, j = 1,2 programmiert.
Der mit den Dateneingängen
(ar, arq), (a, aq) und (al, alq) verbundene Multiplexor, der die
erste Stufe der Kaskade bildet, bleibt damit gesperrt, während alle übrigen auf "Schieben um Null" programmiert werden.
Damit können
alle innerhalb der Multiplexor-Kaskade liegenden Knoten (welche
durch die Verbindung des Datenausgangs eines Multiplexors mit dem
Dateneingang des nachgeschalteten Multiplexors gebildet sind (hier
sind dies (z4, z4q) und (zl, zlq)) vom Datenausgang der integrierten
Schaltung aus vorgeladen werden. Die Vorladeeinheit VE am Ausgang
der Kaskade bleibt mit PrShQ = 0 aktiv. Das erreichte Potential
beträgt
VDD-Vth, wobei Vth die Einsatzspannung der n-Kanal Transistoren
in den Multiplexoren Mux1, Mux2 ist.
-
Mit
Beginn der dritten Phase T3 werden bzw. bleiben zunächst alle
Steuersignale shj<2:0>, j = 4, 2, 1 der Multiplexoren
Mux1, Mux2, Mux4 inaktiv: shj<2:0> = 000. Damit sind
alle Transistoren N0...N6 jedes der Multiplexoren Mux1, Mux2, Mux4
gesperrt. Während
T3 wird zudem das Steuersignal PrShQ für die Vorladeeinheit VE am
Ausgang des Logarithmischen Shifters inaktiv: PrShQ = 1. Damit wird
der Datenausgang (z, zq) vom Bezugspotential VDD abgetrennt.
-
Hierauf
folgend wird die eigentliche Schiebeoperation eingeleitet. Dazu
werden zunächst
die Steuersignale s4<2:0> des mit den Dateneingängen (ar,
arq), (a, aq) und (al, alq) verbundenen Multiplexors Mux4 auf den
gewünschten
Wert geschaltet. Beispielsweise ist für den ersten in 3 dargestellten
Operationszyklus s4<2:0> = 010, d.h der Multiplexor
Mux4 „schiebt
um Null", während im
zweiten Operationszyklus mit s4<2:0> = 001 um vier Positionen
nach rechts und im dritten mit s4<2:0> = 100 um vier Positionen
nach links geschoben wird.
-
Mit
Beginn der Phase T4 werden schließlich auch alle übrigen Multiplexoren
Mux1, Mux2 der Kaskade mittels geeigneter Steuersignale sk<2:0>, k = 1,2 auf die gewünschten
Werte geschaltet.
-
So
wird im ersten in 3 dargestellten Operationszyklus
um null, im zweiten Operationszyklus um insgesamt sieben Bitpositionen
nach rechts und im dritten Operationszyklus um sieben Bitpositionen
nach links geschoben.
-
Mit
dieser oben beschriebenen Phasenabfolge in <T1, T2, T3, T4> wird nun nicht nur für Ladungsneutralität im Dual-Rail-Datenpfad des Logarithmischen
Shifters gesorgt, sondern auch das der Steuersignalabfolge korrespondierende
Ladungsintegral ist invariant. Denn von den jeweils drei Signalen
innerhalb der Signalbündel
shj<2:0> wird im Falle des
für den
mit den Dateneingängen
(ar, arq), (a, aq) und (al, alq) verbundenen Multiplexors Mux4 genau
eines des Steuersignals s4<2:0> von Versorgungspotential
VDD auf Bezugspotential VSS entladen und genau eines (dasselbe oder
ein anderes) von Bezugspotential VSS auf Versorgungspotential VDD
aufgeladen. Von allen übrigen
Steuersignalen shj<2:0> mit j = 1,2 wird mit
Beginn der Phase T1 genau eines entladen, nämlich dasjenige, welches im
Zyklus zuvor in der Phase T4 aufgeladen worden war. Mit Beginn der
Phase T2 bzw. T3 wird immer shj<1> auf- und wieder entladen,
und schließlich
wird in Phase T4 genau eines der Steuersignale aufgeladen. Daraus
folgt unmittelbar die Invarianz des Ladungsintegrals der Steuersignale.
Es muss jedoch dafür
Sorge getragen werden, dass die jeweils drei den Signalen shj<2:0> entsprechenden Knoten
gleiche elektrische Kapazitäten
aufweisen.
-
Im
beschriebenen Ausführungsbeispiel
sind die Transistoren N0...N6 des die erste Stufe der Kaskade bildenden
Multiplexers Mux4 während
der Phasen T1 bis innerhalb von T3 gesperrt, d.h. dessen Dateneingänge sind
vom Rest des Datenpfades elektrisch isoliert. Die Vorladung mit
einem Vorlade-Signal
dieser Dateneingänge
kann mit (in 1 nicht dargestellten) Vorladeeinheiten
außerhalb
des Logarithmischen Shifters erfolgen. Diese erfolgt damit unabhängig vom
Vorladen aller übrigen
Knoten durch die in 1 dargestellte Vorladeeinheit
VE. Weiterhin erlaubt diese Konstellation, dass die Dateneingänge des
Multiplexors Mux4 bereits ein neues, gültiges Dual-Rail-Signal annehmen
kann, ohne mit dem Vorladevorgang der übrigen Multiplexoren Mux1,
Mux2 in Konfikt zu geraten, sofern der Vorladevorgang zeitlich vor
dem des Datenausgangs der integrierten Schaltung (z.B. in der Phase
T2) abgeschlossen wurde. Dies ermöglicht eine Unabhängigkeit
von der Steuerlogik der Ansteuerschaltung AS, die die Elemente der
integrierten Schaltung in geeigneter Weise ansteuert.
-
Gegenüber dieser
möglichen
zeitlichen Abfolge von Steuersignalen für den Logarithmischen Shifter sind
auch folgende weitere Alternativen denkbar:
Auch die Dateneingänge der
ersten Stufe der Multiplexor-Kaskade
werden von einer Vorladeeinheit am Datenausgang vorgeladen, d.h.
die Steuersignale für
den die erste Stufe darstellenden Multiplexor weisen das gleiche
Zeitverhalten auf wie alle übrigen.
Dies bedeutet, alle shj<2:0> haben gleiches Zeitverhalten.
Das Beaufschlagen des Dateneingangs des ersten Multiplexors (in 1 Mux4)
dürfen
erst dann eingeschaltet werden, wenn der Vorlade-Vorgang des Datenpfades
abgeschlossen ist, um Kurzschlussströme zu vermeiden.
-
Dies
gilt auch in der weiteren Variante, bei der die inneren Knoten der
Multiplexor-Kaskade vom Datenausgang und vom Dateneingang der integrierten
Schaltung aus vorgeladen werden.
-
Denkbar
ist auch, die inneren Knoten der Kaskade sowie den Datenausgang
der integrierten Schaltung vom Dateneingang der integrierten Schaltung
her vorzuladen.
-
Das
Vorladen der inneren und äußeren Knoten
der Multiplexor-Kaskade
kann auch von einer Vorladeeinheit an mindestens einem der inneren
Knoten, also einer zwischen zwei Multiplexoren angeordneten Vorladeeinheit,
unterstützt
werden.
-
In
den 4 bis T1 werden Schaltungsbeispiele und Signalverläufe zur
Erzeugung der Steuersignale shj<2:0> und des Ansteuersignals
PrShQ für
die Vorladeeinheit VE angegeben. Die 4 und 6 zeigen Schaltungen
zur Umformung bzw. eingangsseitigen Eintaktung der Steuerinformation,
während
in den 5, 7 und 8 das zeitliche
Verhalten der jeweils relevanten Signale gezeigt wird. Die 9 bis 11 illustrieren
schließlich
Teile der in 6 angegebenen Schaltungsblöcke.
-
In
der folgenden Tabelle ist für
das oben betrachtete Beispiel der logische Zusammenhang zwischen eingangsseitiger
Steuerinformation sh_pos<2:0>, sh_dir und den daraus
zu erzeugenden sh4<2:0>, sh2<2:0>, sh1<2:0> definiert.
-
-
-
Das
Signal sh_pos<2:0> gibt den binär codierten
Absolutwert für
die Zahl der Bitpositionen an, um die geschoben werden soll. Das
Signal sh dir gibt die Richtung an, in welche das Schieben erfolgen
soll. Beispielsweise ergeben sich für sh_pos<2:0> =
101 und sh_dir = 1 die Kombinationen s4<2:0> =
001, s2<2:0> = 010, sl <2:0> = 001. Dies bedeutet,
dass um fünf
Bitpositionen nach rechts geschoben wird.
-
Dieser
logische Zusammenhang wird mit den gestrichelt umrandeten Dekodierschaltungen
DS1 (decode-sh4) und DS2 (decodesh21) realisiert.
-
Das
erfindungsgemäße besondere
zeitliche Verhalten der Steuersignale shj<2:0> wird
erreicht durch:
- – Maskierungssignale, die mit
den RS-Flip-Flops RSF1 (RS-Sh4EnN),
RSF2 (RS-PrSh21Q) und RSF3 (RS-PrShQ) erzeugt werden,
- – Rückkoppelungen
des Signals PrShQ auf die RS-Flip-Flops RSF1 und RSF2, einer Rückkoppelung
des Signals s4<2:0> auf die Dekodierschaltung
DS2 und einer Rückkopplung
der Signale sh2<1>, shl<1> auf das RS-Flip-Flop
RSF3 (diese Zusammenhänge
sind mit den "Kausalitätspfeilen" in 5 dargestellt),
und
- – das
in 5 angegebene zeitliche Verhalten der Dual-Rail
Dekodereingänge
(sh_dir,sh_dir_q), (sh_dir_n,sh_dir_gn) und (sh_pos<2:0>, sh_pos<2:0>) sowie des Signales
ShftEn (Shift Enable), dessen steigende Flanke den Übergang
von Phase T2 nach Phase T3 bedeutet, da sie die Vorladung des Datenpfades
beendet und damit die eigentliche Schiebeoperation in den Phasen
T3 und T4 auslöst.
Zunächst werden
allerdings die Signale sh2<1> und shl<1> abgeschaltet, woraus
die steigende Flanke des Signales PrShQ abgeleitet wird.
-
6 zeigt
neben der Eintaktung der primären
Steuerinformation sh_pos_i<2:0> und sh_dir_i in Master-
ML und Slave-Latches
SL (10) auch die Transformation von primären Single-Rail
zu Dual-Rail-Signalen (11), sowie die Erzeugung des
schon erwähnten
Signales ShftEn. Dessen Bedeutung und seine Wirkung auf das zeitliche
Verhalten der Steuersignale shj<2:0> wurde bereits bei
der Erläuterung
von 4 angegeben.
-
Nachfolgend
folgt nun die Beschreibung der Erzeugung des Signals ShftEn anhand
der 6 bis 8.
-
ShftEn
liegt am Datenausgang des RS-Flip-Flops RSF4 (RS-ShftEn) aus 6, das durch
niedrigen Pegel (Bezugspotential VSS) an seinem Setzeingang ShEnSq
gesetzt wird. ShftEn liegt dann auf Versorgungspotential VDD, die
steigende Flanke von ShftEn wird also aus der fallenden Flanke von
ShEnSq abgeleitet. Das Rücksetzen
von ShftEn auf niedrigen Pegel folgt aus niedrigem Pegel am Rücksetzeingang
ShEnRq, sofern ShEnSq inaktiv ist. Dies ist, wie weiter unten ersichtlich
werden wird, immer gewährleistet.
Mit niedrigem Pegel an ShftEn wird die Vorladung für die Dual-Rail-Dekodereingänge (sh_dir,
sh_dir_q), (sh_dir_gn, sh_dir_n) und (sh_pos<2:0>,
sh_pos<2:0>) bewirkt, was seinerseits
den Beginn der Phase T1 zur Folge hat: alle Steuersignale shj<2:0>, j = 4, 2, 1 des Logarithmischen
Shifters werden inaktiv: shj<2:0> = 000. Damit sind alle
Transistoren N0...N6 der Multiplexor-Kaskade mit den Multiplexoren
Mux1, Mux2, Mux4 gesperrt.
-
Wie
aus 8 ersichtlich, ist ShEnRq ein kurzzeitiger Puls,
der mit der in 6 gestrichelt umrandeten Schaltung
PlsGen aus der steigenden Flanke des von außen zugeführten Systemtaktes clk abgeleitet
wird. Bei niedrigem Pegel des Systemresets rst wird ShftEn unabhängig von
clk auf niedrigen Pegel gezogen. Generell gilt, dass der Logarithmische
Shifter sich bei aktivem Systemreset im Vorladezustand befindet
bzw. in diesen versetzt wird (siehe dazu auch das Systemreset-Verhalten der Schaltungen
in 4).
-
Die
fallende Flanke von ShEnSq (und die daraus folgende steigende von
ShftEn) kann auf zweierlei Weise gewonnen werden.
-
Zum
einen könnte
ShEnSq gleichgesetzt werden mit dem Taktsignal clk. Dies bedeutet,
dass die Phasen T1 und T2 zusammenfallen mit einer Zeitspanne, während der
clk auf hohem Pegel liegt. Analog fallen die Phasen T3 und T4 zusammen
mit einer Zeitspanne, während
das Taktsignal clk auf niedrigem Pegel liegt. Der Vorteil dieser
Vorgehensweise liegt in seiner Einfachheit. Der Nachteil liegt darin,
dass für
die eigentliche Schiebeoperation während der Phase T4 weniger
als die Zeitspanne TCL zur Verfügung
steht, und dass die Dauer der Phase T4 vom außen zugeführten Systemtakt abhängt und
deshalb nicht optimal an die Bedingungen innerhalb des Logarithmischen
Shifters angepasst werden kann.
-
Letzteres
ist aber möglich,
wenn ShEnSq aus der Bedingung abgeleitet wird, dass die Vorladephase des
Datenpfades abgeschlossen ist. Dies bedeutet, dass in den Phasen
T1 und T2 sowohl die Dateneingänge (a,
aq) des Logarithmischen Shifters als auch dessen Datenausgänge (z,
zq) auf hohen Potentialpegel vorgeladen wurden bzw. sind. ShEnSq
könnte
zum Beispiel ge bildet werden mit einem 3-fach NAND Gatter, dessen erster
Eingang anzeigt, dass der Vorladevorgang des langsamsten der Dateneingänge (a,
aq) in T1 oder T2 abgeschlossen ist, und dessen weitere Eingänge die
langsamsten der Datenausgänge
(z, zq) im Datenpfad sind. Mit einer in Serie dazu geschalteten
Inverterkette oder einem anderen Mittel zur Verzögerung von ShEnSq kann zudem
sichergestellt werden, dass die gegenüber (z, zq) später einsetzende
Vorladung der zwischen den Multiplexor-Schaltungen der Kaskade liegenden
Knoten angemessen berücksichtigt
wird.
-
- Mux1,
Mux2, Mux4
- Multiplexor
- (a,
aq)
- Dateneingang
bzw. -signal
- (ar,
arq)
- Dateneingang
bzw. -signal
- (al,
alq)
- Dateneingang
bzw. -signal
- (aj,
ajq), j = 1, 2, 4
- Dateneingang
bzw. -signal
- (ajr,
ajrq) , j = 1, 2, 4
- Dateneingang
bzw. -signal
- (ajl,
ajlq), j = 1, 2, 4
- Dateneingang
bzw. -signal
- (z,
zq)
- Dateneingang
bzw. -signal
- sl,
s0, sr
- Steuereingang
- shj<2:0> mit j = 1,2,4
- Steuersignal
- VE
- Vorladeeinheit
- PrShQ
- Steuersignal
- HS
- Halteschaltung
- Tr1,
Tr2, Tr3, Tr4
- Transistor
- N0,
N1, N2
- Transistor
- N4,
N5, N6
- Transistor
- VP
- Versorgungspotentialanschluss
- BP
- Bezugspotentialanschluss
- T1,
T2, T3, T4
- Zeitphase
- DS1
(decode-sh4)
- Dekodierschaltungen
- DS2
(decode-sh21)
- Dekodierschaltungen
- RSF1
(RS-Sh4EnN)
- RS-Flip-Flops
- RSF2
(RS-PrSh21Q)
- RS-Flip-Flops
- RSF3
(RS-PrShQ)
- RS-Flip-Flops
- RSF4
(RS-ShftEn)
- RS-Flip-Flops
- ML
- Master-Latch
- SL
- Slave-Latch
- ST
- Signaltransformation
- ShftEn
- Signal
- ShEnSq
- Setzeingang
- ShEnRq
- Rücksetzeingang
- (sh_dir,
sh_dir_q)
- Dual-Rail-Dekodereingänge
- (sh_pos<2:0>, sh_pos<2:0>)
- Dual-Rail-Dekodereingänge
- (sh_dir_qn,
sh_dir_n)
- Dual-Rail-Dekodereingänge
- PG
- Schaltung
zur Pulsgenerierung
- Clk
- Taktsignal
- Rst
- Resetsignal