-
Die
Erfindung betrifft eine Schaltung für den Zugriff auf einen RAM-Speicher,
insbesondere SRAM-Speicher.
-
In
zeitgemultiplexten Hardware-Architekturen für variable Datenraten, wie
sie beispielsweise in UMTS-(Universal Mobile Telecommunication System-)Basisbandchips
eingesetzt werden, werden die SRAM-Speicher aufgrund des Multiplexbetriebs
nicht in jedem Zyklus, sondern – abhängig z.B.
von der Datenrate – nur
in bestimmten Zyklen angesprochen. Selbst wenn der SRAM-Speicher nicht über das Chip-Select
(CS) Signal angewählt
ist, wird in der für die
Adressberechnung des SRAM-Speichers zuständigen arithmetrischen Adressberechnungseinheit
in jedem Zeitmultiplexschritt eine Zugriffsadresse berechnet. Änderungen
der Zugriffsadresse auf dem Adressbus bewirken auch bei nicht angewähltem (CS
= 0) SRAM-Speicher einen Leistungsverbrauch durch die interne Logikschaltung
(Adressdecoder) im SRAM-Speicher. Beispielsweise tritt bei dem SRAM C11n
des Herstellers Infineon Technologies AG gemäß dem Datenblatt 2002.Q3.v0
(release 02.08.2002) selbst dann, wenn der SRAM-Speicher nicht angewählt ist, ein Stromverbrauch
von 30–40% des
icc (der Schaltungsstrom icc ist in dem vorstehend genannten Datenblatt
definiert) auf, sofern sämtliche
Adressen-Pins und
50% der Eingabe-Pins des Dateneingangs umgeschaltet werden. Dieser Stromverbrauch
ist darauf zurückzuführen, dass
die Eingangs-Kippschaltungen (Input Latches) der Adress- und Dateneingänge bei
nicht angewähltem SRAM-Speicher
offen sind, wodurch die interne SRAM-Logik Schaltvorgänge in Abhängigkeit
von Potentialänderungen
an den Eingangs-Pins ausführen
kann.
-
Es
ist bereits bekannt, für
das Schreiben von Daten in den SRAM-Speicher bzw. für das Lesen
von Daten aus dem SRAM-Speicher
dem SRAM-Speicher externe vorgeschaltete Register einzusetzen. Die
Verwendung derartiger externer Eingabe- bzw. Ausgabe-Register ist
in keiner weise zwingend, sie wird jedoch für viele Anwendungen empfohlen,
da die Verwendung dieser Register gewährleistet, dass die für eine einwandfreie
Funktion des SRAM-Speichers zu gewährleistenden Zeitbedingungen
beim Schreib- bzw. Lesevorgang eingehalten werden. In der englischsprachigen
Literatur haben sich die Begriffe "registered in" bzw. "registered out" für
das Konzept eingebürgert,
Eingangsdaten über
derartig vorgeschaltete Eingabe-Register
bzw. Ausgangsdaten über
derartige vorgeschaltete Ausgabe-Register dem SRAM-Speicher einzutakten
bzw. auszutakten. Diese Eingabe-Register bzw. Ausgabe-Register werden ebenfalls
in jedem Zyklus getaktet, selbst dann, wenn keine Eingangsdaten
anstehen bzw. keine Ausgangsdaten gelesen werden sollen. Somit tritt
bei Verwendung von den SRAM-Speicher ansteuernden Hardware-Schaltungen
des Typs „registered
out" bzw. „registered
in" ein weiterer
Leistungsverlust auf, der durch die leistungsverbrauchenden Schaltvorgänge in den
genannten Registern verursacht wird.
-
Eine
dritte Ursache für
einen erhöhten
Leistungsverbrauch besteht darin, dass "unnötige" Schaltvorgänge auf
den Adress- und
Datenbussen zwischen der den SRAM-Speicher ansteuernden Hardware-Schaltung
und dem SRAM-Speicher einen Leistungsverbrauch in den Bussen verursachen.
Da die SRAM-Speicher vielfach im Bereich der Chip-Peripherie angeordnet
sind, können
die Busleitungen vergleichsweise lang sein, was einen signifikanten Leistungsverlust
in den Adress- und Datenbussen zur Folge hat.
-
Eine
naheliegende Möglichkeit
zur Überwindung
des erstgenannten Problems (Leistungsverlust im SRAM-Speicher) besteht
darin, einen SRAM-Speicher zu konzipieren, der bei Schaltvorgängen an
seinen Eingangs-Pins bei nicht angewähltem Speicher (CS = 0) keinen
durch die Schaltvorgänge
hervorgerufenen Leistungsverbrauch zeigt.
-
Der
Erfindung liegt die Aufgabe zugrunde, den durch Schaltvorgänge an den
Eingängen
eines RAM-Speichers bewirkten Leistungsverbrauch bei nicht angewähltem Speicher
zu vermindern.
-
Die
der Erfindung zugrunde liegende Aufgabenstellung wird durch die
Merkmale des Anspruchs 1 gelöst.
-
Ein
wesentlicher Gedanke der Erfindung beruht darauf, die Maßnahmen
zur Reduzierung des Leistungsverbrauchs nicht innerhalb des RAM-Speichers,
sondern im Bereich der Schaltung für den Zugriff auf den RAM-Speicher
zu realisieren. Nach Anspruch 1 umfasst die Schaltung für den Zugriff
auf den RAM-Speicher
ein Mittel zum Berechnen einer Adresse für den RAM-Speicher, sowie eine Adress-Registerbank,
welcher eingangsseitig von dem Mittel berechnete Adressen zugeleitet
werden und welche ausgangsseitig mit dem Adressbus des RAM-Speichers
in Verbindung steht. Die Adress-Registerbank weist einen Steuereingang
auf, über
welchen das Eintakten einer eingangsseitig an der Adress-Registerbank
anliegenden Adresse in die Adress-Registerbank gesteuert wird. Ferner
umfasst die Schaltung eine Takt-Ausblendezelle („clock gating cell), die eingangsseitig
mit einem Taktsignal und ausgangsseitig mit dem Steuereingang der Adress-Registerbank
verbunden ist, und welche in Abhängigkeit
von einem der Takt-Ausblendezelle zugeleiteten Enable-Signal das
eingangsseitig erhaltene Taktsignal unterdrückt oder an den Steuereingang der
Adress-Registerbank weitergibt.
-
Durch
die Ansteuerung der Adress-Registerbank über die Takt-Ausblendezelle wird
erreicht, dass Schaltvorgänge
in der Adress-Registerbank nur dann stattfinden können, wenn
auf den RAM-Speicher tatsächlich
zugegriffen werden soll. Der ausgangsseitig der Adress-Registerbank
angeordnete Adressbus wird nur dann aktualisiert, wenn die Registerbank
von der Takt-Ausblendezelle angesteuert und somit der an der Takt-Ausblendezelle anliegende Takt „durchgetaktet" wird. Dadurch kann
erreicht werden, dass auf den Adressleitungen des Adressbusses keine
unnötigen
Schaltvorgänge
auftreten. Als Folge davon werden die auf Schaltvorgänge zurückgehenden
Leistungsverluste in der Adress-Registerbank (d.h. der „registered
out"-Schaltlogik
in der erfindungsgemäßen Speicherzugriffsschaltung),
dem Adressbus und in dem (nicht angewählten) RAM-Speichervermieden.
Insbesondere beim RAM-Speicher
wird durch das Stabilhalten der Eingangspotentiale bei nicht angewähltem Speicher eine
signifikante Verlustleistungsreduzierung bewirkt, da nunmehr keine
auf Schaltvorgänge
zurückgehenden
Verlustströme
mehr auftreten, sondern lediglich wesentlich kleinere Leckströme als weiterhin
verbleibende Ursache von Leistungsverlusten zu berücksichtigen
sind.
-
Das
Ausblenden unnötiger
Schalttakte mittels der Takt-Ausblendezelle
erfolgt unter Verwendung des Enable-Signals, bei dem es sich vorzugsweise
um das Chip-Select-Signal für
den RAM-Speicher handeln kann. Dieses steht in jeder Speicherzugriffsschaltung
bereits zur Verfügung,
d.h. es ist in diesem Fall nicht erforderlich, ein zusätzliches
Steuermodul zur Erzeugung des Enable-Signals in die erfindungsgemäße Schaltung
aufzunehmen. Die Verwendung anderer geeignet erzeugter Enable-Signale ist
jedoch ebenfalls möglich.
-
Vorzugsweise
ist die Adress-Registerbank aus einer Mehrzahl von Flip-Flops aufgebaut,
wobei die Anzahl der Flip-Flops der Wortbreite der Adresse entspricht,
so dass jedes Adressen-Bit genau einem Flip-Flop zugeleitet wird.
-
Eine
weitere vorteilhafte Ausgestaltung der Erfindung kennzeichnet sich
dadurch, dass das Chip-Select-Signal einem Chip-Select-Register
zugeleitet wird, welches ausgangsseitig mit dem Chip-Select-Eingang
des RAM-Speichers in Verbindung steht. Das Chip-Select-Register
weist dabei einen Steuereingang auf, über welchen das Eintakten des
eingangsseitig an dem Chip-Select-Register anliegenden Chip-Select-Signals
in das Chip-Select-Register gesteuert wird, wobei dem Steuereingang
des Chip-Select-Registers das Taktsignal zugeleitet wird. D.h.,
dass das Chip-Select-Signal ebenfalls über ein Register (das Chip-Select-Register)
in den RAM-Speicher eingetaktet wird. Dadurch wird erreicht, dass
das Chip-Select-Signal
stets adressenbegleitend (d.h. zum selben Zeitpunkt wie die Adresse)
dem RAM-Speicher zugeleitet wird.
-
Eine
weitere vorteilhafte Ausgestaltung der Erfindung kennzeichnet sich
dadurch, dass eine Dateneingabe-Registerbank, welche eingangsseitig
mit dem Datenausgang des RAM-Speichers in Verbindung steht, eingesetzt
wird. D.h., dass das Konzept "registered
in" für den Datenausgang
des RAM-Speichers realisiert wird. Die Dateneingabe-Registerbank weist
einen Steuereingang auf, über
welchen das Eintakten eines eingangsseitig an der Dateneingabe-Registerbank
anliegenden Datums in die Dateneingabe-Registerbank gesteuert wird.
Ferner umfasst die Schaltung eine eingangsseitig mit dem Taktsignal
und ausgangsseitig mit dem Steuereingang der Dateneingabe-Registerbank
verbundene zweite Takt-Ausblendezelle, welche in Abhängigkeit
von einem der zweiten Takt-Ausblendezelle zugeleiteten zweiten Enable-Signal
das eingangsseitig erhaltene Taktsignal unterdrückt oder an den Steuereingang der
Dateneingabe-Registerbank weitergibt.
-
Durch
die Erweiterung des erfindungsgemäßen Konzepts auf den Datenausgang
des RAM-Speichers wird verhindert, dass die Dateneingabe-Registerbank
in jedem Zyklus getaktet werden muss, und es wird erreicht, dass
diese Register nur bei einem Lesezugriff auf den RAM-Speicher getaktet
und geladen werden müssen.
-
Vorzugsweise
wird das zweite Enable-Signal aus dem Read-Enable-Signal und dem Chip-Select-Signal
für den
RAM-Speicher gewonnen. Dadurch lässt
sich gewährleisten,
dass das zweite Enable-Signal stets zum richtigen Zeitpunkt auftritt.
-
Gemäß einer
weiteren vorteilhaften Ausgestaltung der Erfindung weist die erfindungsgemäße Schaltung
eine Datenausgabe- Registerbank
auf, welche ausgangsseitig mit dem Dateneingang des RAM-Speichers
in Verbindung steht. Die Datenausgabe-Registerbank weist einen Steuereingang
auf, über
welchen das Eintakten eines in den RAM-Speicher zu schreibenden
Datums in die Datenausgabe-Registerbank gesteuert wird. Ferner umfasst
die erfindungsgemäße Schaltung
eine eingangsseitig mit dem Taktsignal und ausgangsseitig mit dem
Steuereingang der Datenausgabe-Registerbank verbundene dritte Takt-Ausblendezelle,
welche in Abhängigkeit
von einem der dritten Takt-Ausblendezelle
zugeleiteten dritten Enable-Signal das eingangsseitig erhaltene
Taktsignal unterdrückt
oder an den Steuereingang der Datenausgabe-Registerbank weitergibt. Durch
die dritte Takt-Ausblendezelle wird erreicht, dass beim Schreibvorgang
Daten, die in den RAM-Speicher geschrieben werden sollen, nur dann in
die Datenausgabe-Registerbank geladen werden, wenn ein Schreibzugriff
tatsächlich
stattfindet. Dies verhindert unnötige
Schaltvorgänge
auf dem Schreibdatenbus, die andernfalls einen Verlust an Schaltleistung
in der internen Logik des RAM-Speichers sowie auf den Leitungen
des Schreibdatenbusses hervorrufen würden. Darüber hinaus entfällt das ununterbrochene
Takten der Datenausgabe-Registerbank.
-
Das
dritte Enable-Signal wird vorzugsweise aus dem Write-Enable-Signal und
dem Chip-Select-Signal für
den RAM-Speicher gewonnen, wodurch sichergestellt wird, dass genau
dann und nur dann, wenn ein Schreibzugriff erfolgen soll, das zu schreibende
Datum in die Datenausgabe-Registerbank geladen wird.
-
Mit
besonderem Vorteil wird die erfindungsgemäße Schaltung mit einem für den Multiplexbetrieb
ausgelegten Mittel zum Berechnen der Adressen für den RAM-Speicher eingesetzt.
In Zyklen, in denen aufgrund des Multiplexbetriebs der RAM-Speicher
nicht angewählt
ist, wird der Energieverbrauch der gesamten Schaltung (Registerbänke, Adress- und
Datenbusse, speicherinterne Logik) signifikant gesenkt.
-
Die
Erfindung wird nachfolgend anhand eines Ausführungs- und Implementierungsbeispiels unter
Bezugnahme auf die Zeichnung beschrieben; in dieser zeigt:
-
1 ein Blockschaltbild einer
erfindungsgemäßen Schaltung
zum Ansteuern eines SRAM-Speichers;
-
2 ein Diagramm zur Erläuterung
des zeitlichen Ablaufs eines Lesevorgangs;
-
3 eine schematische Darstellung
eines Blockschaltbildes eines Implementierungsbeispiels in einem
UMTS-Mobilfunkempfänger; und
-
4 ein Diagramm zur Erläuterung
des zeitlichen Ablaufs der Durchführung eines Kopierbefehls,
mit welchem Daten von einem ersten SRAM-Speicher in zwei SRAM-Arbeitsspeicher geschrieben
werden.
-
1 zeigt ein digitales Hardware-Modul 1, welches über einen
Adressbus 2, eine RAM-Steuerverbindung 3 und einen
Lesedatenbus 4 mit einem SRAM-Speicher 5 in Verbindung
steht. Das Hardware-Modul 1 ist als Hardware-Block in einem
Halbleiter-Chip
integriert, der ebenfalls den SRAM-Speicher 5 enthalten
kann. Typischerweise ist der SRAM-Speicher 5 in dem Chip
unter Abstand zu dem Hardware-Modul 1 angeordnet und befindet
sich beispielsweise an der Chip-Peripherie. Die Linie 1a deutet
die Modulgrenze des Hardware-Moduls 1 an.
-
Das
Hardware-Modul 1 weist eine Logikeinheit 6 auf,
welche die Adressen für
den SRAM-Speicher 5 durch kombinatorische Logik berechnet.
Die Adressen weisen eine Wortbreite von n Bits auf. Die Bits eines
Adresswortes werden mit a(n – 1),
a(n – 2), ...,
a0 bezeichnet und über
einen internen Bus 7 der Wortbreite n einer Ausgabe-Registerbank 8 für die Ausgabe
der Adresswörter
zugeleitet.
-
Die
Ausgabe-Registerbank 8 weist n D-Flip-Flops 9 auf.
Jeder Flip-Flop 9 erhält
an seinem Dateneingang D ein Bit a(n – 1), a(n – 2), ..., a0 des Adresswortes.
Der Ausgang Q jedes D-Flip-Flops 9 steht über eine
Datenleitung 10 mit dem (externen) Adressbus 2 der
Wortbreite n in Verbindung.
-
Neben
den Adressworten erzeugt die Logikeinheit 6 auch weitere
Signale für
die Ansteuerung des SRAM-Speichers 5, nämlich das Chip-Select-(CS-)Signal,
das Write-Enable-(wr_en-)Signal und das Read-Enable-(rd_en-)Signal.
Diese bekannten Steuersignale für
den SRAM-Speicher 5 werden über eine Datenverbindung 11 pro
Steuersignal CS, wr_en, rd_en jeweils einem D-Flip-Flop 9' zugeleitet, deren Datenausgänge Q an
die externe RAM-Steuerverbindung 3 angebunden sind.
-
Der
Lesedatenbus 4 weist in dem hier dargestellten Beispiel
ebenfalls die Wortbreite n auf. Er steht mit einer Eingabe-Registerbank 12 in
Verbindung, die ihrerseits aus n D-Flip-Flops 9 aufgebaut ist. Jedem
D-Flip-Flop 9 wird ein Datenbit d(n – 1), d(n – 2), ..., d0 eines aus dem
SRAM-Speicher 5 zu lesenden Datenwortes zugeleitet. Die
Weiterverarbeitung der von der Eingabe-Registerbank 12 ausgegebenen
Datenwörter
in dem Hardware-Modul 1 spielt für die Erfindung keine Rolle
und ist in der 1 nicht
näher dargestellt.
-
Die
Verwendung von Eingabe- und Ausgabe-Registerbänken 8 bzw. 12 zur
Ansteuerung eines SRAM-Speichers 5 ist an sich bekannt.
Die D-Flip-Flops 9 werden dabei als taktzustandgesteuerte
Speicherzellen (Data Registers) eingesetzt, da Q = D gilt, sobald
eine steigende Flanke C = 0 → 1
am Takteingang C auftritt.
-
Zur
Ansteuerung der Ausgabe-Registerbank 8 ist eine erste Takt-Ausblendezelle
(Clock Gating Cell) 13 vorgesehen. Die erste Takt-Ausblendezelle 13 weist
einen ersten Eingang 14 auf, über welchen die erste Takt-Ausblendezelle 13 den Systemtakt
clk erhält.
Einem zweiten Eingang 15 der ersten Takt-Ausblendezelle 13 wird
das CS-Signal zugeleitet, welches von der Logikeinheit 6 erzeugt
wird. Das Taktsignal clk wird nur dann an einen Ausgang 16 der ersten
Takt-Ausblendezelle 13 weitergeleitet, wenn das CS Signal
den Wert CS = 1 aufweist. Der Ausgang 16 der ersten Takt-Ausblendezelle 13 ist
mit dem Takteingang C der Ausgabe-Registerbank 8 verbunden.
Dadurch wird erreicht, dass ein von der Logikeinheit 6 berechnetes
Adresswort nur dann in die Ausgabe-Registerbank 8 eingetaktet
und auf den externen Adressbus 2 geschaltet wird, wenn
der SRAM-Speicher 5 angewählt ist, d.h. wenn CS = 1 gilt.
-
1 zeigt ferner, dass auch
die drei Steuersignale CS, rd_en und wr_en nach dem Konzept "registered out" von der Logikeinheit 6 an
den SRAM-Speicher 5 ausgegeben werden. Die RAM-Steuerverbindung 3 weist
in dem hier dargestellten Beispiel also die Wortbreite 3 auf.
-
Die
zweite Takt-Ausblendezelle 17 wird an einem ersten Eingang 18 mit
dem Systemtakt clk versorgt. Ein einem zweiten Eingang 19 vorgeschaltetes D-Flip-Flop 20 liefert
das Enable-Signal
für die
zweite Takt-Ausblendezelle 17. Das Enable-Signal kann durch
eine logische Verknüpfung
aus den Steuersignalen CS und rd_en gebildet werden. Dadurch wird bewirkt,
dass die D-Flip-Flops 9 der Eingabe-Registerbank 12 nur
dann getaktet und geladen werden, wenn ein Lesezugriff auf den SRAM-Speicher 5 ausgeführt wird.
Der Ausgang 21 der zweiten Takt-Ausblendezelle 17 steht
zu diesem Zweck mit den Takteingängen
C der D-Flip-Flops 9 der Eingabe-Registerbank 12 in
Verbindung.
-
2 zeigt den zeitlichen Ablauf
der Signale bei einer Adressierung des SRAM-Speichers 5.
In der obersten Zeile ist der Systemtakt clk aufgetragen. Der Systemtakt
clk ist in diesem Beispiel identisch mit dem Multiplex-Takt, d.h.
die Schaltung wird im Systemtakt gemultiplext. In jedem Multi plex-Takt
wird eine neue Adresse 1, 2, 3, 4, 5, 6, 7, 8, ... berechnet. Dies
ist durch das Signal calc_RAM_address angegeben, das über dem
internen Adressbus 7 auftritt.
-
Immer
wenn auf den SRAM-Speicher 5 zugegriffen werden soll, nimmt
das CS-Signal den Wert 1 an. 2 zeigt,
dass in dem ersten und vierten Takt CS = 1 gesetzt wird. Das CS-Signal
entspricht im vorliegenden Beispiel dem Enable-Signal (enable_out) für die erste
Takt-Ausblendezelle 13.
-
Das
Signal enclk_out tritt am Ausgang 16 der ersten Takt-Ausblendezelle 13 auf. 2 macht deutlich, dass die
Ausgabe-Registerbank 8 nur dann getaktet und geladen wird,
wenn ein Zugriff auf den SRAM-Speicher 5 vorgesehen ist.
-
Das
Signal RAM_addr_reg_out tritt am Ausgang der Ausgabe-Registerbank 8 und
auf dem externen Adressbus 2 auf. Dieses Signal ändert sich nur
dann, wenn ein Speicherzugriff erfolgt, im vorliegenden Beispiel
nur jeden dritten Multiplex-Takt
clk. Es umfasst die Adressen 1, 4.
-
Das
Signal Chip_select_reg_out tritt auf der Datenverbindung 3 auf.
Es ist das CS-Eingabesignal für
den SRAM-Speicher 5. Es ist ersichtlich Adress-begleitend.
-
Das
am Eingang 19 der zweiten Takt-Ausblendezelle zugeführte Signal
enable_in wird, wie bereits erwähnt,
aus dem Signal Chip_select_reg_out und dem Signal rd_en gebildet.
-
Das
infolge der Adressierung am Leseausgang des SRAM-Speichers 5 ausgegebene Signal rd_data_bus
tritt auf dem Lesedatenbus 4 auf. Die zu den Adressen 1,
4 ausgegebenen Datenwörter
sind mit d1 und d4 bezeichnet.
-
Das
Eintakten der Datenwörter
d1, d4 in die Eingabe-Registerbank 12 erfolgt
durch Ansteuerung der Eingabe-Registerbank 12 mittels
des Steuersignals enclk_in, welches am Ausgang 21 der zweiten Takt-Ausblendezelle 17 auftritt.
Die eingetakteten Datenwörter
d1 und d4 stehen dem Hardware-Modul 6 zur
weiteren Verarbeitung zur Verfügung
und sind in der 2 durch
das Signal data_reg_in angegeben. Es wird deutlich, dass die D-Flip-Flops 9 der
Eingabe-Registerbank 12 nur dann getaktet und geladen werden,
wenn ein Lesezugriff auf den SRAM-Speicher 5 vorgesehen
ist und Lesedaten auf dem externen Lesedatenbus 4 bereitstehen.
-
Die
in 1 dargestellte Schaltung
lässt sich in
der Weise erweitern (nicht dargestellt), dass das Hardware-Modul 6 ferner
eine Ausgabe-Registerbank für
das Schreiben von Daten in den SRAM-Speicher 5 aufweist.
Die (nicht dargestellte) Ausgabe-Registerbank entspricht konzeptionell
der Eingabe-Registerbank 12, mit dem Unterschied, dass
die Datenflussrichtung (wie bei der Ausgabe-Registerbank 8)
in entgegengesetzte Richtung zeigt. Das Steuersignal für die Ausgabe-Registerbank
zum Schreiben von Daten in den SRAM-Speicher 5 (entspricht
dem Steuersignal enclk_in) wird aus dem CS-Signal und dem Write-Enable-Signal wr_en
gebildet. Zu diesem Zweck ist eine dritte Takt-Ausblendezelle (nicht
dargestellt) vorgesehen, die dieses Steuersignal für die Ausgabe-Registerbank
erzeugt. Auf diese Weise wird auch beim Schreibvorgang gewährleistet,
dass Daten nur dann in die Ausgabe-Registerbank geladen werden,
wenn ein Schreibvorgang vorgenommen werden soll. Eine unnötige Taktung
der Ausgabe-Registerbank sowie unnötige Schaltvorgänge auf
dem (nicht dargestellten) Schreibdatenbus werden dadurch unterbunden.
-
3 zeigt ein Implementierungsbeispiel der
erfindungsgemäßen Schaltung 100 in
einem Basisband-Chip eines UMTS-Mobilfunkempfängers. Die Gesamtschaltung,
auf die hier nur kurz eingegangen wird, dient zur im Zeitmultiplex-Betrieb
durchgeführten
Erzeugung von (hier) maximal 47 Spreizcodes. Die Anzahl 47 rührt daher,
dass mit der vorliegenden Schaltung eine gewisse Anzahl von physikalischen
Kanälen,
die (hier) von maximal 6 Basisstationen empfangen werden können, mittels (zeitgemultiplexter)
Rake-Finger (nicht dargestellt) demoduliert werden sollen. Hierfür muss jedem
aktiven Rake-Finger ein Spreizcode zugeteilt werden.
-
Die
Hardware-Schaltung umfasst einen ersten Zustandsgenerator CON_FSM
(FSM: Finite State Machine) für
die Ablaufsteuerung verschiedenster Datenverarbeitungsprozesse,
einen zweiten Zustandsgenerator PROC_FSM für eine Datenverarbeitung, eine
Code-Bit-Generator-Gruppe CBG für die
Erzeugung von Bits verschiedener Spreizcodes (jeder Spreizcode ist
aus einem Channelization-Code und einem Scrambling-Code aufgebaut),
ein Ablaufsteuerungs-Register ASR und Multiplexer MUX. Wie durch
die Linie 101 angedeutet, sind diese Hardware-Einheiten
benachbart zueinander auf dem Basisband-Chip angeordnet. Über diverse
Steuerleitungen und Busse stehen drei SRAM-Speicher, nämlich C_RAM,
W_RAM1 und W_RAM2 mit der von der Linie 101 umschlossenen
Hardware-Schaltung in Verbindung. Die SRAM-Speicher C_RAM, W_RAM1 und W_RAM2 sind
Dual-Port-Speicher (Zwei-Tor-Speicher).
-
Die
Hardware-Schaltung steht über
eine Datenverbindung 110 mit einem digitalen Signalprozessor
DSP in Verbindung.
-
Im
Folgenden wird ein Prozess betrachtet, durch welchen in dem SRAM-Speicher
C_RAM abgelegte Parameter in die beiden SRAM-Arbeitsspeicher W_RAM1
und W_RAM2 kopiert werden. Es handelt sich dabei um Parameter für die Erzeugung der
maximal 47 Spreizcodes.
-
Die
generelle Funktionsweise der in 3 dargestellten
Schaltung, auf die es für
die vorliegende Erfindung im Einzelnen nicht ankommt, ist folgende:
Im dargestellten Beispiel sind die Parameter für die aktuell zu erzeugenden
Scrambling-Codes
in dem Arbeitsspeicher W_RAM1 und die Parameter für die aktuell
zu erzeugenden Channelization-Codes in dem Arbeitsspeicher W_RAM2
abgelegt. Der zweite Zustandsgenerator PROC_FSM greift über Datenverbindungen 104 und
die Multi plexer MUX auf diese beiden Arbeitsspeicher W_RAM1 und
W_RAM2 zu und berechnet auf der Basis der ausgelesenen Parameter
jeweils gültige
Steuerwerte, mit welchen die aktuell benötigte Anzahl von Code-Bit-Generatoren in
der Code-Bit-Generator-Gruppe
CBG angesteuert werden.
-
Wird
eine Umkonfigurierung von Code-Bit-Generatoren erforderlich (z.B.
weil ein Handover durchzuführen
ist), werden die Parameter für
die neuen Scrambling-Codes und neuen Channelization-Codes von dem
DSP über
die Datenverbindung 110 in den Eingabe-Speicher C_RAM geschrieben. Die
Datenverarbeitung in den zeitgemultiplexten Code-Bit-Generatoren
bleibt davon zunächst
ungestört, da
der zweite Zustandsgenerator PROC_FSM und damit auch die Code-Bit-Generatoren
in der Code-Bit-Generator-Gruppe
CBG die für
die Code-Erzeugung (Scrambling-Code
und Channelization-Code) benötigten
aktuellen Parameter weiterhin aus den Arbeitsspeichern W_RAM1 und
W_RAM2 bezieht.
-
Die
erfindungsgemäße Hardware-Schaltung 100 führt anschließend das
Kopieren der neuen Scrambling-Code-Parameter und Channelization-Code-Parameter
von dem Speicher C_RAM in die Speicher W_RAM1 und W_RAM2 durch.
-
Zunächst wird
der Multiplexbetrieb der Code-Bit-Generatoren in der Code-Bit-Generator-Gruppe
CBG anhand des oberen Teils der 4 erläutert. Für sämtliche
in 3 dargestellten Einheiten
ist gemäß üblichem
Aufbau der Systemtakt clk verfügbar. Die
Synchronisation der Multiplexbearbeitung erfolgt über ein
Signal processing_sync, welches den Beginn eines Multiplex-Zyklus
angibt und dem ersten Zustandsgenerator CON_FSM über eine Steuerleitung 111 mitgeteilt
wird. Der erste Zustandsgenerator CON_FSM erzeugt daraufhin ein
erstes Signal Gen_phase, welches die Multiplex-Zeitdauer angibt und
ein Signal Gen Nr, welches die Nummer des aktuell aktiven Code-Bit-Generators
auswählt.
Es wird deutlich, dass jeder (zeitgemultiplexte) Code-Bit-Generator
der Generator-Nummer 0, 1, 2, 3, ..., 46 gemäß dem Signal Gen_phase genau
zwei Taktzyklen clk Prozesszeit bekommt. Nach 47 Multiplex-Zeitdauern ist ein
Multiplex-Zyklus beendet, es beginnt der nächste Multiplex-Zyklus.
-
Die
beiden Signale Gen_phase und Gen Nr werden sowohl der Schaltung 100 als
auch dem zweiten Zustandsgenerator PROC_FSM zugeleitet. Der zweite
Zustandsgenerator PROC_FSM steuert also in der vorgegebenen Reihenfolge
Gen_Nr = 0, 1, ..., 46, 0 ... alle zwei Zeittakte clk einen anderen
Code-Bit-Generator
in der Code-Bit-Generator-Gruppe CBG an.
-
Ein
von dem Ablaufsteuerungs-Register ASR ausgegebenes Signal cfg_ctrl
zeigt an, dass eine neue Konfiguration (Scrambling-Codes und/oder Channelization-Codes)
in dem SRAM-Speicher C_RAM abgelegt worden ist und in die Arbeitsspeicher
W_RAM1 bzw. W_RAM2 kopiert werden soll. Das Steuersignal cfg_ctrl
bezieht sich entsprechend dem Multiplexschema (siehe Signal Gen_Nr) jeweils
auf einen bestimmten Code-Bit-Generator, d.h. es zeigt diejenigen
Code-Bit-Generatoren an, die bei der Neukonfiguration ihren Spreizcode
(d.h. Scrambling-Code und/oder Channelization-Code) aktualisieren
müssen.
-
In
einer Logikeinheit 106, die der in 1 dargestellten Logikeinheit 6 entspricht,
wird in jedem Takt clk eine Adresse A0,1, A0,2, A1,1, A1,2, ..., A3,1,
A3,2, ... berechnet. Dies ist durch das Signal C_RAM_RD_Addr dargestellt.
Die Adressenberechnung erfolgt ununterbrochen kombinatorisch auf
der Basis der beiden Signale Gen_Nr und Gen_Phase. Jede Adresse
ist eine Lese-Adresse für
den SRAM-Speicher C_RAM zum Auslesen von Daten (Code-Parameter)
für einen
bestimmten Code-Bit-Generator. In jeder Multiplex-Zeitdauer können zwei
Parameterwerte für
den betreffenden Code-Bit-Generator ausgelesen werden.
-
Ein
Auslesen der Parameterwerte für
einen bestimmten Code-Bit-Generator
der Nummer Gen_Nr = 0, ..., 46, ist jedoch nur dann erforderlich, wenn
dieser Code-Bit-Generator umkonfigu riert werden soll. Diese Information
wird durch das Signal cfg_active mitgeteilt. Im vorliegenden Beispiel
gilt cfg_active = 1 für
Gen Nr = 0, 3 und cfg_active = 0 für Gen_Nr = 1, 2. Das Signal
cfg_active wird in der Hardware-Schaltung 100 basierend
auf den cfg_ctrl Parametern erzeugt.
-
Dies
hat zur Folge, dass die berechneten Adressen A1,1, A1,2, A2,1, A2,2
nicht benötigt
werden, da die Code-Bit-Generatoren mit den Nummern Gen_Nr = 1,
2 nicht umkonfiguriert werden müssen.
-
Folglich
wird in der anhand 1 und 2 näher erläuterten Weise mittels der Ausgabe-Registerbank 8 (in 4 nicht dargestellt) ein
Adress-Signal C_RAM_RD_Addr_o erzeugt, welches über einen externen Adressbus 102 einem
Adresseingang AB des SRAM-Speichers C_RAM mitgeteilt wird. Das Signal
cfg_active wird dabei als Enable-Signal (vergleichbar dem Signal
enable_out in 2) genutzt. D.h.,
dass die in der Logikeinheit 106 berechneten Adressen A0,1,
A0,2, ... nur dann in die (in 4 nicht
dargestellte) Ausgabe-Registerbank 8 eingetaktet werden,
wenn cfg_active = 1. Sofern cfg_active = 0, werden keine Adressworte
in die Ausgabe-Registerbank 8 geladen,
und es erfolgen auch keine Schaltvorgänge auf dem externen Adressbus 102.
-
C_CSB_n
stellt das Chip-Select-Signal für den
SRAM-Speicher C_RAM für
den Port B dar (Eingang: CSB). C_CSB_n ist das um ein Takt verzögerte, invertierte
Signal cfg_active. Es wird deutlich, dass die Ausgabe-Registerbank
nur dann geladen und getaktet wird, wenn cfg_active = 1 gilt.
-
Der
Auslesevorgang erfolgt dann wie in 1 gezeigt über eine
Eingabe-Registerbank 12 (in 3 nicht
dargestellt) in der Hardware-Schaltung 100. Der Datenausgang
(Port B) des Speichers C_RAM ist in 3 mit
DOB bezeichnet, die über den
Lese-Datenbus 107 ausgegebenen Parameter lauten C_RAM_data.
-
Der
Schreibvorgang der Parameter in die Speicher W_RAM1 und W_RAM2 erfolgt
in Abhängigkeit
von dem Chip-Select-Signal W_CSA_n für den Port A der Speicher W_RAM1
und W_RAM2. Das Signal W_CSA_n ist das um einen Taktzyklus verzögerte Signal
C_CSB_n. Das Signal W_CSA_n wird den Speichern W_RAM1 und W_RAM2 über eine
RAM-Steuerleitung 103 mitgeteilt (Eingang: CSA).
-
Das über den
externen Adressbus 102' ausgegebene
Adress-Signal W_RAM_WR_addr_o
wird den Adresseingängen
AA der beiden Speicher W_RAM1 und W_RAM2 für den Port A zugeleitet. Es gibt
an, unter welchen Adressen A0,1, A0,2, A3,1, A3,2, ... die aus dem
Speicher C_RAM gelesenen Konfigurationsdaten D0,1, D0,2, D3,1, D3,2
gespeichert werden sollen. Die ausgelesenen Parameter D0,1, D0,2,
D3,1, D3,2 sind in 4 als
Signal C_RAM_data_i dargestellt.
-
Beim
Schreibvorgang wird das Signal C_CSB_n (invertiert) als Enable-Signal
genutzt, welches entscheidet, ob die Schreib-Adresse W_RAM_WR_Addr (die identisch
mit der Adresse C_RAM_RD_Addr ist) in die (in 3 nicht dargestellte) Ausgabe-Registerbank 8 für die Arbeitsspeicher
W_RAM1 und W_RAM2 geladen werden soll oder nicht. Dies gewährleistet
in der bereits beschriebenen Weise die Stabilisierung des externen
Adressbusses 102',
wie dies anhand des Signals W_RAM_WR_addr_o in 4 erkennbar ist.
-
Beim
Schreibvorgang werden die Datenworte über einen externen Datenbus 105 Dateneingängen DA
der Speicher W_RAM1, W_RAM2 zugeleitet. Der externe Datenbus 105 kann
ebenfalls in der bereits beschriebenen Weise über eine Ausgabe-Registerbank
gegen unnötige
Schaltvorgänge
geschützt
sein.