PatentDe  


Dokumentenidentifikation DE102005036267B4 21.06.2007
Titel Speicheranordnung und Verfahren zum Adressieren einer Speicheranordnung
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Hachmann, Ulrich, 85579 Neubiberg, DE
Vertreter Viering, Jentschura & Partner, 81675 München
DE-Anmeldedatum 02.08.2005
DE-Aktenzeichen 102005036267
Offenlegungstag 15.02.2007
Veröffentlichungstag der Patenterteilung 21.06.2007
Veröffentlichungstag im Patentblatt 21.06.2007
IPC-Hauptklasse G11C 8/00(2006.01)A, F, I, 20051017, B, H, DE

Beschreibung[de]

Die Erfindung betrifft eine Speicheranordnung und ein Verfahren zum Adressieren einer Speicherandordnung.

Die Reduzierung der Verlustleistung von integrierten Schaltungen (Integrated Circuits, IC) gewinnt in letzter Zeit immer mehr an Bedeutung. Dies hat zum einen den Grund, dass integrierte Schaltungen zunehmend in mobilen Geräten eingesetzt werden, die mittels einer Batterie mit Energie versorgt werden, beispielsweise in Mobilfunk-Teilnehmergeräten. Es ist deshalb erforderlich, dass die integrierten Schaltungen einen geringen Energieverbrauch haben, um beispielsweise ein häufiges Wiederaufladen von Akkumulatoren zu vermeiden.

Ein weiterer Grund für das Erfordernis, die Verlustleistung von integrierten Schaltungen zu reduzieren, ist, dass sich eine integrierte Schaltung mit hoher Verlustleistung beim Betrieb stark erwärmt und die Wärmeabfuhr bei sehr leistungsstarken integrierten Schaltungen, die sich dementsprechend sehr stark erwärmen, typischerweise sehr aufwändig ist.

Eine Vielzahl von integrierten Schaltungen weist als Bestandteil einen programmierbaren Prozessor auf. Bei Prozessoren sind Registerbänke eine der Einheiten, die am meisten zur Verlustleistung des Prozessors, beziehungsweise der integrierten Schaltung, deren Teil der Prozessor ist, beitragen. Der größte Teil der Verlustleistung von integrierten Schaltungen (bzw. digitalen Schaltungen) entsteht durch das Umladen von elektrischen Verbindungen (für das entsprechend Strom zugeführt werden muss). Eine elektrische Verbindung wird umgeladen, wenn auf der elektrischen Verbindung ein Signalwechsel stattfindet, d.h. ein Wechsel von High-Pegel zu Low-Pegel oder von Low-Pegel zu High-Pegel. Jede elektrische Verbindung weist eine elektrische Kapazität auf, die sich aus der Kapazität der Metallleitung (die die elektrische Verbindung bildet) selbst und der Kapazität der mit der Metallleitung gekoppelten Transistoranschlüsse zusammensetzt. Die Verlustleistung einer digitalen Schaltung kann durch die Formel P = &Sgr;(&agr;·f·C·V2) approximiert werden. Dabei wird über alle elektrische Verbindungen der digitalen Schaltung summiert, &agr; bezeichnet die Signalaktivität auf der jeweiligen elektrischen Verbindung, f die Taktfrequenz der Schaltungseinheit, welcher das Signal zugeordnet ist, C die Kapazität der jeweiligen elektrischen Verbindung und V die Versorgungsspannung an der jeweiligen elektrischen Verbindung.

Die Signalaktivität eines Signals (das an einer elektrischen Verbindung anliegt) ist ein Maß für die Wahrscheinlichkeit, mit der sich das Signal innerhalb eines Taktes von dem logischen Pegel 0 auf den logischen Pegel 1 und von dem logischen Pegel 1 auf den logischen Pegel q0 ändert. Dementsprechend weist ein Signal, dass innerhalb eines Taktes maximal nur einmal ändert (beispielsweise das Signal, wie es von einem Flip-Flop ausgegeben wird) eine maximale Signalaktivität von 0,5 auf.

Die Verlustleistung einer Registerbank bildet einen besonders hohen Anteil an der Verlustleistung eines Prozessors, wenn sie aus Standardzellen (Flip-Flops und Logikgattern) aufgebaut ist und wenn sie eine hohe Anzahl von Schreib-Ports und Lese-Ports aufweist, wie sie beispielsweise bei VLIW (Very Long Instruction Word)-Prozessoren erforderlich sind. In diesem Fall ist der Flächenbedarf der Registerbank auf dem Chip, auf dem sie angeordnet ist, sehr hoch, was dazu führt, dass sehr lange elektrische Verbindungen erforderlich sind und somit die Kapazitäten der elektrischen Verbindungen sehr groß sind.

Eine Reduzierung des Flächenbedarfs der Registerbank und dementsprechend eine Reduzierung der Kapazitäten der elektrischen Verbindungen lässt sich erzielen, wenn die Registerbank bereits auf Layout-Ebene entwickelt wird (Full Custom Design) oder wenn die Anzahl der Lese-Ports und/oder der Schreib-Ports der Registerbank verringert wird. Diese beiden Möglichkeiten schränken jedoch die Flexibilität des entsprechenden Prozessors ein und werden deshalb nur selten angewendet.

Eine weitere Möglichkeit, die Verlustleistung eines Prozessors zu reduzieren, besteht darin, die Taktfrequenz, mit der der Prozessor betrieben wird, zu verringern, da dies auch eine Reduzierung der Versorgungsspannung des Prozessors ermöglicht. Diese Maßnahme verringert jedoch auch die Verarbeitungsleistung des Prozessors.

Eine Registerbank hat die Funktion, Daten in Form von Datenworten in einer Anzahl von adressierbaren Registerworten zu speichern, wobei ein Registerwort ein Datenwort, beispielsweise 32 Bit, speichern kann. Eine Registerbank weist typischerweise mehrere Lese-Ports auf, so dass mehrere der in der Registerbank gespeicherten Datenworte gleichzeitig ausgelesen werden können. Jeder Lese-Port weist einen Adresseingang auf, mittels welchem dem Lese-Port die Adresse des Registerworts zugeführt werden kann, in dem das Datenwort gespeichert ist, das ausgelesen werden soll und zum Datenausgang des Lese-Ports weitergeleitet werden soll.

Analog können mehrere Registerworte der Registerbank gleichzeitig mittels mehrerer Schreib-Ports der Registerbank beschrieben werden. Mittels eines Adresseingangs eines Schreib-Ports kann dem Schreib-Port eine Adresse zugeführt werden, die das Registerwort der Registerbank adressiert, in der das Datenwort, das an dem Dateneingang des Schreib-Ports anliegt, gespeichert werden soll. Die Breite der Dateneingänge und Datenausgänge der Schreib-Ports und Lese-Ports sowie die Breite der Registerworte ist typischerweise gleich (beispielsweise 32 Bit).

1 zeigt eine Registerbank 100 gemäß dem Stand der Technik.

Die Registerbank 100 weist eine Vielzahl von Registerworten 101 auf, mittels welchen jeweils ein Datenwort gespeichert werden kann.

Die Registerbank weist eine Mehrzahl von Datenausgängen 102 auf, wobei jeder Datenausgang 102 der Ausgang eines Multiplexers einer Mehrzahl von Ausgangs-Multiplexern 103 ist. Jeder Multiplexer der Mehrzahl von Ausgangs-Multiplexern 103 weist einen Lese-Adresseingang 104 auf. Jedes Registerwort der Mehrzahl von Registerworten 101 ist mittels eines Lese-Adressworts adressierbar. Wird einem Ausgangs-Multiplexer 103 der Mehrzahl von Ausgangs-Multiplexern 103 mittels des entsprechenden Lese-Adresseingangs die Adresse eines Registerworts 101, d.h. das Adresswort, das das Registerwort 101 adressiert, zugeführt, so leitet der Ausgangs-Multiplexer 103 das Datenwort, das in dem adressierten Registerwort 101 gespeichert ist, an seinen Datenausgang 102 weiter.

Werden den Ausgangs-Multiplexern 103 unterschiedliche Adressen zugeführt, so können gleichzeitig mehrere Datenworte ausgelesen werden, die in unterschiedlichen Registerworten 101 gespeichert sind.

Die Registerbank 100 weist ferner eine Mehrzahl von Dateneingängen 105 auf. Mittels eines Dateneingangs 105 wird der Registerbank 100 ein zu speicherndes Datenwort zugeführt, insbesondere können der Registerbank 100 gleichzeitig mehrere zu speichernde Datenworte zugeführt werden. Die Mehrzahl von Dateneingängen 105 sind mit Eingangs-Multiplexern 106 gekoppelt, wobei jedem Registerwort 101 genau ein Eingangs-Multiplexer 106 zugeordnet ist und mit dem Ausgang des ihm zugeordneten Eingangs-Multiplexers 106 gekoppelt ist. Alle zu speichernden Datenworte werden allen Eingangs-Multiplexern 106 zugeführt.

Die Registerbank 100 weist ferner eine Mehrzahl von Schreib-Adresseingängen 107 auf, wobei jeder Schreib-Adresseingang 107 genau einem Dateneingang 105 zugeordnet ist und wobei, wenn der Registerbank 100 mittels eines Dateneingangs 105 ein Datenwort zugeführt wird, der Registerbank mittels des dem Dateneingang 105 zugeordneten Schreib-Adresseingangs 107 die Adresse (das Adresswort) des Registerworts 101 zugeführt wird, mittels welchem das zu speichernde Datenwort gespeichert werden soll. Die Schreib-Adresseingänge sind mit einem Schreib-Adressdecoder 108 gekoppelt.

Der Schreib-Adressdecoder 108 ist ferner mit einer Mehrzahl von Schreib-Enable-Eingängen 109 der Registerbank 100 gekoppelt. Jeder Schreib-Enable-Eingang 109 ist analog zu den Schreib-Adress-Eingängen 107 genau einem Dateneingang 105 zugeordnet. Mittels eines Schreib-Enable-Eingangs 109 kann der Registerbank 100 signalisiert werden, ob ein Datenwort, das der Registerbank 100 mittels des dem Schreib-Enable-Eingang 109 zugeordneten Dateneingangs 105 zugeführt wird, mittels der Registerbank 100 gespeichert werden soll.

Jedes der Registerworte 101 weist ferner einen Enable-Eingang 110 auf und jeder Eingangs-Multiplexer 106 weist einen Eingangs-Multiplexer-Adresseingang 111 auf.

Wird der Registerbank 100 mittels eines Dateneingangs 105 ein zu speicherndes Datenwort zugeführt, das mittels eines Registerworts 101 gespeichert werden soll, so wird wie erwähnt dem Schreib-Adress-Decoder 108 die Adresse des Registerworts 101 mittels des dem Dateneingang 105 zugeordneten Schreib-Adresseingangs 107 zugeführt. Ferner wird der Registerbank 100 mittels des dem Dateneingang 105 zugeordneten Schreib-Enable-Eingangs 109 signalisiert, dass das zugeführte Datenwort gespeichert werden soll.

Mittels des Eingangs-Multiplexer-Adresseingangs 111 des dem Registerwort 101 zugeordneten Eingangs-Multiplexers 106 signalisiert der Schreib-Adress-Decoder 108 dem Eingangs-Multiplexer 106, mittels welchen Dateneingangs 105 das zu speichernde Datenwort der Registerbank 100 zugeführt und dementsprechend an dem Ausgang des Eingangs-Multiplexers 106geschaltet werden soll. Ferner signalisiert der Schreib-Adress-Decoder 108 dem Registerwort 101 mittels des Enable-Eingangs 110 des Registerworts 101, dass das Datenwort, das an dem Ausgang des Eingangs-Multiplexers 106 anliegt, in dem Registerwort 101 gespeichert werden soll.

Das Beschreiben der Registerworte 101 erfolgt ferner gemäß einem Taktsignal, das den Registerworten 101 mittels Takteingängen 112 zugeführt wird. Werden die Registerworte 101 wie üblich mittels Flip-Flops realisiert, so ist eine hohe Anzahl von Flip-Flops erforderlich. Sind beispielsweise 32 Registerworte 101 vorgesehen, die je ein Datenwort von 32 Bitlänge speichern können, so sind 1024 Flip-Flops erforderlich.

Ein großer Anteil der Verlustleistung entsteht durch die Taktversorgung der Flip-Flops. Durch so genanntes Clock-Gating kann dieser Anteil drastisch reduziert werden. Bei Clock-Gating wird ein Taktsignal nicht allen Flip-Flops zugeführt, sondern nur Takt-Gattern (Clock-Gates), die in einem Takt nur dann den entsprechenden Taktpuls an ein Flip-Flop weiterleiten, wenn das Flip-Flop in dem jeweiligen Taktzyklus beschrieben wird. Auf diese Weise kann die Signalaktivität der Taktsignale, die den Flip-Flops zugeführt werden, reduziert werden.

Das Zuführen der Schreibdaten (in Form der zu speichernden Datenworte) an die Registerworte 101 führt jedoch zu einer Verlustleistung, deren Anteil an der Gesamt-Verlustleistung der Registerbank 100 höher ist als der Anteil, der durch die Taktversorgung der Flip-Flops entsteht. Der durch das Zuführen der Schreibdaten entstehende Anteil an der Verlustleistung kann durch Clock-Gating nicht verringert werden.

Wie in 1 dargestellt und oben erläutert, werden die Schreibdaten, d.h. die zu speichernden Datenworte, allen Eingangs-Multiplexern 106 zugeführt (somit besteht ein hohes Fanout an den Eingans-Multiplexern 106). Die Länge der dafür erforderlichen elektrischen Verbindungen und somit die Kapazität der dafür erforderlichen elektrischen Verbindungen ist aus diesem Grunde groß. Zur Verlustleistung tragen ferner die Kapazität der Eingänge der Eingangs-Multiplexer 106 bei. Wie erwähnt ist für jedes Registerwort 101 ein Eingangs-Multiplexer 106 vorhanden.

In der WO 2004/051449 A2 wird eine Registerbank beschrieben, die in mehrere Unter-Registerbänke unterteilt ist, wobei den Unter-Registerbänken kein Taktsignal, keine Daten und keine Adressdaten zugeführt werden, wenn die Unter-Registerbänke keine Schreiboperationen beziehungsweise Leseoperationen ausführen. Soll also ein Datenwort in ein Registerwort der Registerbank gespeichert werden, so wird dieses Datenwort nur der Unter-Registerbank zugeführt, die das Registerwort, in dem das Datenwort gespeichert wird, enthält. Auf diese Weise kann die Kapazität reduziert werden, die bei einem Zuführen von zu schreibenden Daten umgeladen wird. Somit wird eine Reduzierung der Verlustleistung erreicht.

Jedoch wird ein zu schreibendes Datenwort allen Registerworten beziehungsweise den mit allen Registerworten gekoppelten Eingangs-Multiplexern einer Unter-Registerbank zugeführt, auch wenn nicht alle Registerworte der Unter-Registerbank das Datenwort speichern sollen.

Ferner ist ein zusätzlicher Adressdecoder für die Steuerung erforderlich, an welche Unter-Registerbank ein Taktsignal, zu schreibende Daten beziehungsweise ein Adresssignal weitergeleitet werden.

Der Erfindung liegt das Problem zu Grunde, die Verlustleistung von Registerbänken zu reduzieren.

Das Problem wird durch eine Speicheranordnung und ein Verfahren zum Adressieren einer Speicherandordnung mit den Merkmalen gemäß den unabhängigen Patentansprüchen gelöst.

Es wird eine Speicheranordnung mit einer Mehrzahl von Speicherelementen bereitgestellt, wobei jedes Speicherelement eingerichtet ist, mindestens ein Datenwort zu speichern, welches Datenwort mindestens ein Bit aufweist. Jedes Speicherelement ist mittels einer Mehrzahl von Adressbits adressierbar. Die Speicheranordnung weist eine Schaltanordnung mit einer Mehrzahl von Schaltelementen auf und die Mehrzahl von Schaltelementen ist ausgehend von einem Dateneingang der Schaltanordnung in einer Binärbaumhierarchie in Richtung mehrerer Ausgänge der Schaltanordnung angeordnet. Jedes Speicherelement der Mehrzahl von Speicherelementen ist mit einem Ausgang der Schaltanordnung gekoppelt und die Schaltanordnung weist eine Mehrzahl von Adresseingängen auf. Jedem der Schaltelemente ist mittels eines Adresseinganges der Mehrzahl von Adresseingängen ein Adressbit zuführbar und das Schaltelement ist eingerichtet, einen Schaltzustand in Abhängigkeit von dem zugeführten Adressbit anzunehmen, so dass, wenn mittels der Mehrzahl von Adresseingängen den Schaltelementen eine Mehrzahl von Adressbits zugeführt wird, ein Datenwort, das der Schaltanordnung eingangsseitig zugeführt wird, an dem Ausgang der Schaltanordnung ausgegeben wird, mit dem das Speicherelement gekoppelt ist, das durch die zugeführte Mehrzahl von Adressbits adressiert wird.

Ferner wird ein Verfahren zum Adressieren einer Speicherandordnung der oben beschriebenen Speicheranordnung bereitgestellt.

Anschaulich werden zu schreibende Daten mittels einer binärbaumartigen Hierarchie von Schaltelementen den Speicherelementen zugeführt. Zu schreibende Daten werden anschaulich der Wurzel des Binärbaums zugeführt, und die Schaltelemente, die die Knoten des Binärbaums bilden, leiten ein zu schreibendes Datenwort entsprechend ihnen zugeführten Adressbits an das mit einem Blatt des Binärbaums gekoppelte Speicherelement weiter, das durch die Adressbits adressiert wird. Ein Datenwort wird entlang eines Pfades von der Wurzel zu einem Blatt, das mit dem adressierten Speicherelement gekoppelt ist, weitergeleitet.

Da ein zu speicherndes Datenwort entlang eines Pfades des Binärbaums dem Speicherelement, in dem es gespeichert werden soll, zugeführt wird, müssen nur die elektrischen Verbindungen, die diesen Pfad bilden, auf die entsprechenden Pegel gesetzt werden. Auf den anderen elektrischen Verbindungen der Schaltanordnung ist kein Signalwechsel erforderlich. Ferner wird ein zu speicherndes Datenwort nicht allen Speicherelementen zugeführt, sondern nur denen, die mit dem entsprechenden Blatt des Binärbaums gekoppelt sind.

Somit tritt bei einer Schreiboperation verglichen mit herkömmlichen Registerbänken nur auf wenigen elektrischen Verbindungen und an wenigen Speicherelement-Eingängen ein Signalwechsel auf. Insbesondere tragen nur wenige elektrische Verbindungen und Speicherelement-Eingänge zur Verlustleistung der Speicheranordnung (die beispielsweise als Registerbank ausgestaltet ist) bei.

Ferner lässt sich die Binärbaumhierarchie von Schaltelementen mittels einfacher Logikfunktionen beschreiben und kann ohne spezielle Schaltungstechnik mittels automatisiertem Semicustom-Designflow realisiert werden.

Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen. Die weiteren Ausgestaltungen der Erfindung, die im Zusammenhang mit der Speicheranordnung beschrieben sind, gelten sinngemäß auch für das Verfahren zum Adressieren einer Speicheranordnung.

In einer Ausführungsform weist jedes Schaltelement zwei Schaltelement-Ausgänge und einen Schaltelement-Dateneingang auf und ist eingerichtet, in Abhängigkeit des ihm zugeführten Adressbits ein ihm mittels des Schaltelement-Dateneingangs zugeführtes Datenwort mittels des ersten Schaltelement-Ausgangs oder mittels des zweiten Schaltelement-Ausgangs auszugeben.

Die Schaltelemente können mittels Latches realisiert oder mittels UND-Gattern realisiert sein. Die Speicherelemente sind beispielsweise jeweils mittels mindestens eines Flip-Flops realisiert.

Eine Realisierung mit UND-Gattern ermöglicht eine Realisierung der Registerbank mit geringem Flächenaufwand.

Die Schaltelemente können auch mittels Transmissions-Gattern bzw. allgemein bistabilen Kippstufen realisiert werden.

Ferner können die Schaltelemente auch mittels negativer Logik, ODER-Gattern und/oder NAND-Gattern realisiert werden.

Jedes Speicherelement ist beispielsweise eingerichtet, ein Datenwort zu speichern, das 32 Bit aufweist.

Die Speicheranordnung kann ferner einen Schreib-Adress-Decoder aufweisen, der mit der Mehrzahl von Speicherelementen gekoppelt ist und der eingerichtet ist, wenn ihm eine Mehrzahl von Adressbits zugeführt wird, ein Enable-Signal an das Speicherelement auszugeben, das durch die zugeführte Mehrzahl von Adressbits adressiert wird, wobei das Enable-Signal spezifiziert, dass ein Datenwort, das dem Speicherelement zugeführt wird, mittels des Speicherelements gespeichert werden soll.

Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Weiteren näher erläutert.

1 zeigt eine Registerbank gemäß dem Stand der Technik.

2 zeigt eine schematische Darstellung einer Registerbank gemäß einem Ausführungsbeispiel der Erfindung.

3 zeigt eine Registerbank gemäß einem Ausführungsbeispiel der Erfindung.

4 zeigt eine Registerbank gemäß einem Ausführungsbeispiel der Erfindung.

5 zeigt eine Registerbank gemäß einem Ausführungsbeispiel der Erfindung.

2 zeigt eine schematische Darstellung einer Registerbank 200 gemäß einem Ausführungsbeispiel der Erfindung.

Die Registerbank 200 weist eine Mehrzahl von Registerworten 201 auf, mittels welchem jeweils ein Datenwort (beispielsweise 32 Bit) gespeichert werden kann. Die in 2 dargestellte Registerbank 200 (ebenso wie die in 3 und 4 dargestellten Registerbänken) weisen 16 Registerworte auf. Dies dient der besseren Übersichtlichkeit, in konkreten Ausführungen können mehrere Registerworte (beispielsweise 32) vorgesehen sein. Da die Registerbank 200 16 Registerworte 201 aufweist, können alle 16 Registerworte 201 mittels einer 4-Bit-Adresse (Bit 0, ..., Bit 3) adressiert werden.

Die Registerbank 200 weist eine Mehrzahl von Schaltelementen 202 auf, die in Form eines Binärbaumes angeordnet sind und dementsprechend in einer ersten Ebene 203 (anschaulich die Wurzel des Binärbaumes) einer zweiten Ebene 204, einer dritten Ebene 205 und einer vierten Ebene 206 angeordnet sind. Dem Schaltelement 202 der ersten Ebene 203 kann mittels einer ersten Adress-Bitleitung 207 ein Adressbit zugeführt werden. Analog können allen Schaltelementen 202 der zweiten Ebene 204 mittels einer zweiten Adress-Bitleitung 208, allen Schaltelementen 202 der dritten Ebene 205 mittels einer dritten Adress-Bitleitung 209 und allen Schaltelementen 202 der vierten Ebene 206 mittels einer vierten Adress-Bitleitung 210 Adressbits zugeführt werden.

Die Registerworte 201 seien so angeordnet, dass ihre Adresse von oben nach unten zunimmt, die Adresse eines Registerworts ist in 2 in Binärdarstellung in dem jeweiligen Registerwort dargestellt (entsprechend von 0000 bis 1111).

Dem Schaltelement 202 der ersten Ebene 203 kann mittels eines Dateneingangs 211 der Registerbank 200 ein zu speicherndes Datenwort 212 zugeführt werden. Entsprechend der Schalterstellung des Schaltelements 202 der ersten Ebene 203 leitet das Schaltelement 202 der ersten Ebene 203 das Datenwort 212 an ein Schaltelement 202 der zweiten Ebene 204 weiter. Analog leitet das Schaltelement 202 der zweiten Ebene 204, an das das Datenwort 212 weitergeleitet wurde, entsprechend seiner Schalterstellung das Datenwort 212 an ein Schaltelement 202 der dritten Ebene 205 weiter, welches seinerseits das Datenwort 212 entsprechend seiner Schalterstellung an ein Schaltelement 202 der vierten Ebene 206 weiterleitet. Das Schaltelement 202 der vierten Ebene 206, dem das Datenwort 212 zugeführt wurde, leitet das Datenwort 212 entsprechend seiner Schalterstellung an ein Registerwort 201 weiter. Dies wird im Folgenden anhand eines Beispiels erläutert.

Entsprechend der Darstellung in 2 und der Anordnung der Registerworte 201, so dass die Adresse der Registerworte 201 von oben nach unten zunimmt, leitet ein Schaltelement 202 das Datenwort 212 anschaulich nach oben weiter, wenn ihm mittels der entsprechenden Adress-Bitleitung 207, 208, 209, 210 eine 0 zugeführt wird und leitet es anschaulich nach unten weiter, wenn ihm mittels der entsprechenden Adress-Bitleitung 207, 208, 209, 210, eine 1 zugeführt wird.

Beispielsweise soll ein Datenwort 212 in dem Registerwort 201 gespeichert werden, das in 2 als zwölftes von oben dargestellt ist und die binäre Adresse 1011 aufweist. Dem Schaltelement 202 der ersten Ebene 203 wird mittels der ersten Adress-Bitleitung 207 das höchstwertige Bit dieser Adresse, in diesem Fall eine 1, zugeführt. Den Schaltelementen 202 der zweiten Ebene 204 wird das zweit-höchstwertige Bit dieser Adresse mittels der zweiten Adress-Bitleitung 208 zugeführt, in diesem Fall das Bit mit dem Wert 0. Analog werden den Schaltelementen 202 der dritten Ebene 205 mittels der dritten Adress-Bitleitung 209 das zweit-niedrigstwertige Bit zugeführt (Bit mit dem Wert 1) und den Schaltelementen 202 der vierten Ebene 206 mittels der vierten Adress-Bitleitung 210 das niedrigstwertige Bit (Bit mit dem Wert 1).

Das Schaltelement 202 der ersten Ebene 203 leitet entsprechend das Datenwort 212 anschaulich nach unten entlang eines ersten unteren Pfades 213 (untere Kante des Baumes) an ein Schaltelement 202 der zweiten Ebene 204 weiter. Das Schaltelement 202 der zweiten Ebene, an das das Datenwort 212 weitergeleitet wurde, leitet das Datenwort 212 anschaulich nach oben entlang eines oberen Pfades 214 an ein Schaltelement 202 der dritten Ebene 205 weiter. Das Schaltelement 202 der dritten Ebene 205 (dem eine 1 als Adressbit zugeführt wird) leitet das Datenwort 212 entsprechend nach unten entlang eines zweiten unteren Pfades 215 an ein Schaltelement 202 der vierten Ebene 206 weiter. Das Schaltelement 202 der vierten Ebene 206, dem eine 1 zugeführt wird, leitet das Datenwort 212 schließlich entlang eines dritten unteren Pfades 216 an das Registerwort mit der binären Adresse 1011 weiter, mittels welcher das Datenwort 212 gespeichert wird.

Die Registerworte 201 können ferner jeweils einen Takteingang, mittels welchem dem jeweiligen Registerwort 201 ein Taktsignal zugeführt wird, gemäß welchem Schreiboperationen durchgeführt werden, sowie einen Enable-Eingang, mittels welchen den Registerworten 201 ein Freigabesignal zugeführt wird, d.h. signalisiert wird, dass das ihnen zugeführte Datenwort gespeichert werden soll, aufweisen.

Die Schaltelemente 202 können auf unterschiedliche Weise realisiert werden.

Im Folgenden wird mit Bezug auf 3 eine Ausführungsform erläutert, bei der die Schaltelemente 202 jeweils mittels zwei Latches realisiert werden.

3 zeigt eine Registerbank 300 gemäß einem Ausführungsbeispiel der Erfindung.

Analog zu der in 2 dargestellten Registerbank 200 weist die Registerbank 300 16 Registerworte 301 auf, die wie mit Bezug auf 2 erläutert so angeordnet und adressiert sind, dass das oberste Registerwort 301 die binäre Adresse 0000 aufweist, die Adressen der Registerworte 301 von oben nach unten zunehmen und das unterste Registerwort 301 die binäre 1111 aufweist. Analog zu der mit Bezug auf 2 beschriebenen Registerbank 200 weist die Registerbank 300 mehrere Schaltelemente 302 bis 308 auf, die in Form eines Binärbaumes in einer ersten Ebene 309, einer zweiten Ebene 310 und einer dritten Ebene 311 angeordnet sind. Man beachte, dass gegenüber der in 2 dargestellten Registerbank 200 auf eine vierte Ebene von Schaltelementen verzichtet wird.

Jedes Schaltelement 302 bis 308 wird mittels zwei Latches 312 bis 325 realisiert. Beispielsweise wird ein erstes Schaltelement 302, das Schaltelement der ersten Ebene 309, mittels eines ersten Latch 312 und eines zweiten Latch 313 realisiert.

Analog zu der mit Bezug auf 2 beschriebenen Registerbank 200 kann dem ersten Schaltelement 302 mittels einer ersten Adress-Bitleitung 326 ein Adressbit zugeführt werden. Den Schaltelementen der zweiten Ebene 310, dies sind ein zweites Schaltelement 303 und ein drittes Schaltelement 304, kann mittels einer zweiten Adress-Bitleitung 327 ein Adressbit zugeführt werden. Analog kann den Schaltelementen der dritten Ebene 311, dies sind ein viertes Schaltelement 305, ein fünftes Schaltelement 306, ein sechstes Schaltelement 307 und ein siebtes Schaltelement 308 mittels einer dritten Adress-Bitleitung 328 ein Adressbit zugeführt werden.

Mittels einer Schreib-Adressleitung kann der Registerbank 300 eine Schreibadresse 335, d.h. eine Adresse eines Registerworts 301 zugeführt werden, wobei die Adress-Bitleitungen 326, 327, 328 von der Schreib-Adressleitung abzweigen, so dass dem Schaltelement 302 das höchstwertige Bit der zugeführten Schreibadresse 335 zugeführt wird, den zweiten Schaltelement 303 und dem dritten Schaltelement 304 das zweit-höchstwertige Bit zugeführt wird und dem vierten Schaltelement 305, dem fünften Schaltelement 306, dem sechsten Schaltelement 307 und dem siebten Schaltelement 308 das zweit-niedrigstwertige Bit zugeführt wird. Die komplette zugeführte Schreibadresse wird ferner einem Schreibadress-Decoder 329 zugeführt.

Ein Latch 312 bis 325 leitet die Eingangsdaten, d.h. die Daten, die an dem Dateneingang des Latch 312 bis 325 anliegen, an seinem Ausgang weiter, wenn an dem Steuereingang des Latch ein High-Pegel (in dieser Beschreibung äquivalent mit einer binären 1) anliegt. Wechselt das Signal, dass an den Steuereingang eines Latch 312 bis 325 anliegt, von High-Pegel auf Low-Pegel, so werden (für die Dauer, die der Low-Pegel anliegt) die vor dem Wechsel zuletzt an dem Ausgang des Latch 312 bis 325 weiter geleiteten Daten gespeichert und am Ausgang des Latch 312 bis 325 ausgegeben, unabhängig von den Eingangsdaten, die an dem Latch 312 bis 325 anliegen.

In diesem Ausführungsbeispiel wird den Latches 312 bis 325 ein Datenwort mit 32 Bitbreite zugeführt und entsprechend wird von den Latches 312 bis 325 ein Datenwort von 32 Bitbreite ausgegeben. Solche Latches können unter Verwendung von 32 Ein-Bit-Latches realisiert werden, wobei den Ein-Bit-Latches, die zur Realisierung eines Latches verwendet werden, dasselbe Steuersignal zugeführt wird.

Wie erwähnt wird jedes Schaltelement 302 bis 308 mittels zwei Latches 312 bis 325 realisiert. Entsprechend der Ebene 309 bis 311, in dem sich ein Schaltelement 302 bis 308 befindet, wird einem dieser beiden Latches 312 bis 325 (in 3 stets das untere) das Adressbit, das mittels der entsprechenden Adress-Bitleitung 326, 327, 328 dem Schaltelement 302 bis 308 zugeführt wird, zugeführt. Dem anderen dieser beiden Latches (in 3 stets das obere) wird der negierte Wert dieses Adressbits zugeführt. Beispielsweise wird dem ersten Latch 312 der negierte Wert des Bits zugeführt, der dem ersten Schaltelement 302 mittels der ersten Adress-Bitleitung 326 zugeführt wird, und dem zweiten Latch 313 wird das Adressbit zugeführt, das dem ersten Schaltelement 302 mittels der Adress-Bitleitung 326 zugeführt wird.

Analog zu der Beschreibung von 2 wird die Funktionsweise der Registerbank 300 im Folgenden anhand des Beispiels erläutert, dass in dem Register mit der binären Adresse 1011, in 3 mit R11 bezeichnet, ein zugeführtes Datenwort 330 gespeichert werden soll. Das Datenwort 330 wird dem ersten Schaltelement 302 zugeführt, wobei es dem ersten Latch 312 sowie dem zweiten Latch 313 zugeführt wird. Mittels der ersten Adress-Bitleitung 326 wird dem ersten Schaltelement 302 eine binäre 1 zugeführt. Entsprechend wird dem ersten Latch 312 am Steuereingang der Wert 0 zugeführt und dem zweiten Latch 313 wird am Steuereingang der Wert 1 zugeführt.

Dementsprechend gibt das erste Latch 312 weiterhin das Datenwort aus, dass in ihm gespeichert ist, insbesondere findet kein Signalwechsel am Ausgang des ersten Latches 312 statt und dementsprechend findet auch kein Signalwechsel an dem Ausgang der Latches statt, die mit dem Ausgang des erstes Latches 312 gekoppelt sind. Anschaulich findet in dem oberen Teil des Binärbaumes, d.h. dem Teil des Binärbaumes, der aus den Latches besteht, die in 3 mit A0, B0, B4, C0, C2, C4 und C6 bezeichnet sind, kein Signalwechsel statt. Dieser Teil des Binärbaumes erzeugt somit keine Verlustleistung.

Das zweite Latch 313 leitet hingegen, da an seinem Steuereingang eine 1 anliegt, das Datenwort 330 an ein zweites Schaltelement 304 weiter. Dem zweiten Schaltelement 304 wird mittels der zweiten Adress-Bitleitung 327 eine binäre 0 zugeführt. Entsprechend ändert sich das Ausgangssignal eines drittes Latches 317 (in 3 mit B12 bezeichnet) nicht und analog zu oben trägt der gesandte Teilbaum, der das dritte Latch 317 als Wurzel hat, nicht zur Verlustleistung bei, da in diesem Teilbaum kein Signalwechsel auftritt.

An dem weiteren Latch des zweiten Schaltelements 304, einem vierten, in 3 mit B8 bezeichneten Latch 316 liegt jedoch am Steuereingang, da das Signal der zweiten Adress-Bitleitung 327 negiert wird, eine binäre 1 an und dementsprechend leitet das vierte Latch 316 das Datenwort 330 weiter. In der dritten Ebene 311 leitet dementsprechend ein fünftes Latch 323 eines dritten Schaltelements 307 das Datenwort 330 weiter (mittels der dritten Adress-Bitleitung 328 wird dem Schaltelement 307 eine binäre 1 zugeführt) und ein sechstes Latch 322, in 3 das obere Latch des dritten Schaltelements 307, leitet das Datenwort 330 nicht weiter, so dass kein Signalwechsel am Ausgang des sechsten Latch 322 stattfindet.

Ausgehend von dem Ausgang des fünftes Latch 323 wird das Datenwort 330 zwei Registerworten 301 zugeführt (man beachte, dass keine vierte Ebene von Schaltelementen vorhanden ist) nämlich den in 3 mit R10 gezeichneten Registerwort 301, d.h. dem Registerwort mit der Adresse 1010, und dem in 3 mit R11 gezeichneten Registerwort 301, d.h. den Registerworten mit der Adresse 1101, in dem Datenwort 330 auch gespeichert werden soll.

Das Register mit der Adresse 1011 erhält von dem Schreib-Adressdecoder als einziges der Registerworte 301 ein Freigabesignal (Enable-Signal), das bewirkt, dass das an dem Eingang des Registerworts 301 mit der Adresse 1101 anliegende Datenwort 330 in dem Registerwort 301 gespeichert wird. Der Schreib-Adressdecoder 329 ermittelt, an welches der Registerworte 301 ein Freigabesignal senden soll, basierend auf der ihm zugeführten Schreibadresse, in diesem Fall der Adresse 1011.

Man beachte, dass das Steuersignal, das an einem Latch anliegt, dessen Eingangssignal konstant bleibt (beispielsweise das mit B0 bezeichnete Latch in 3) unerheblich ist, da auf jeden Fall das Ausgangssignal des Latch ebenfalls konstant bleibt.

Die Ausgänge der Registerworte 301 sind ferner mit einem Multiplexer 331 gekoppelt, der von einer Lese-Adresse so gesteuert wird, dass mittels eines Datenausgangs 333 der Registerbank 300 das Datenwort ausgegeben wird, das von dem Registerwort 301 gespeichert wird, der mittels einer Lese-Adresse 334 adressiert wird.

Bei der Registerbank 300 kann immer nur ein Datenwort 330 gleichzeitig mittels eines Registerwortes 301 gespeichert werden. In einer Ausführungsform sind mehrere Schreibe-Ports (Eingänge für Schreibdaten) vorgesehen und für jeden Schreibe-Port ist eine Binärbaumhierarchie von Schaltelementen analog zu der in 3 dargestellten vorgesehen, wobei jede Binärhierarchie von Schaltelementen wie die in 3 dargestellte Binärbaumhierarchie von Schaltelementen 302 bis 308 mit allen Registerworten 301 gekoppelt ist, so dass Datenworte, die der Registerbank mittels den Schreibe-Ports zugeführt werden, gleichzeitig mittels der Registerworte 301 gespeichert werden können. Ferner ist ein in den Figuren nicht dargestellter Multiplexer zwischen die Schreibe-Ports und die Binärhierarchien der Schaltelemente geschaltet.

Weist die Registerbank 300 mehr als 16 Registerworte 301 auf, beispielsweise 32, so ist in einer Ausführungsform eine vierte Ebene von Schaltelementen vorgesehen, die analog zu den Ebenen 309, 310, 311 von Schaltelementen 302 bis 308eingerichtet und ausgestaltet ist (und entsprechend 16 Schaltelemente aufweist). Entsprechend kann, wenn die Registerbank 300 64 Registerworte 301 aufweist, eine fünfte Ebene von Schaltelementen vorgesehen sein usw. Dies ist jedoch nicht notwendig erforderlich, es können auch weniger Ebenen von Schaltelementen vorgesehen sein. Es ist darauf hinzuweisen, dass die oben beschriebene Erweiterung hinsichtlich der Registerbank 300 ebenfalls vorgesehen sein kann in der Registerbank 200 gemäß der ersten Ausführungsform der Erfindung.

Welches Registerwort 301 die zugeführten Schreibdaten (das zugeführte Datenwort) übernimmt, wird mittels des Freigabesignals des Schreib-Adressdecoders 329 gesteuert.

Von Schreiboperation zu Schreiboperation ändert sich in den meisten Fällen das zu schreibende Datenwort 330 und die Schreibadresse 335. Wenn der Signalwechsel von einem Datenwort 330 auf ein in der nächsten Schreiboperation zu schreibendes Datenwort 330 und der entsprechende Wechsel der Schreibadresse 335 zu der für die nächste Schreiboperation zu verwendenden Schreibadresse 335 gleichzeitig geschehen, so wird der Pfad entlang der Binärbaumhierarchie (bestehend aus den Ebenen 309, 310, 311) wie oben beschrieben auf die dem zu speichernden Datenwort 330 entsprechenden Pegel geladen (die restlichen elektrischen Verbindungen ändern wie oben beschrieben ihren Pegel nicht). Der Pfad zu dem Registerwort 301, das in der vorherigen Schreiboperation geschrieben wurde, ändert seinen Zustand nicht, d.h. es treten entlang dieses Pfads keine Signalwechsel auf.

Es ist jedoch schaltungstechnisch sehr aufwändig zu realisieren, dass der Wechsel von einem Datenwort 330 zu einem anderen Datenwort 330 und der Wechsel von einer Schreibadresse 335 zu einer anderen Schreibadresse 335 von einer Schreiboperation zu einer folgenden Schreiboperation gleichzeitig erfolgen. In einer Ausführungsform wird auf diesen Aufwand verzichtet und der Wechsel von Datenwort 330 zu Datenwort 330 (d.h. der Wechsel der Datensignale) und der Wechsel von Schreibadresse 335 zu Schreibadresse 335 (d. h.. der Adresssignalwechsel) von Schreiboperation zu Schreiboperation findet nicht gleichzeitig statt.

Findet der Datensignalwechsel vor dem Schreibadress-Signalwechsel statt, so werden nicht nur die elektrischen Verbindungen entlang des Pfades, der zu dem aktuell zu beschreibenden Registerwort 301 führt, auf die dem aktuell zu speichernden Datenwort 330 entsprechenden Pegel gesetzt, sondern auch der Pfad, der zu dem in der vorherigen Speicheroperation zu beschreibenden Registerwort 301 führt.

Findet umgekehrt der Schreibadress-Signalwechsel vor dem Datensignalwechsel statt, so wird der Pfad, der zu dem aktuell zu beschreibenden Registerwort 301 führt, zunächst auf die dem in der vorherigen Schreiboperation zu speichernden Datenwort 330 entsprechenden Pegel gesetzt und anschließend (nach erfolgten Datensignalwechsel) auf die Pegel, die dem aktuell zu schreibenden Datenwort 330 entsprechen.

Dennoch werden nur maximal zwei Pfade beziehungsweise ein Pfad zweimal umgeladen, so dass die Verlustleistung der Registerbank 300 gegenüber herkömmlichen Registerbanken erheblich reduziert ist. Dies ist insbesondere der Fall, wenn die Registerbank 300 eine hohe Anzahl von Registerworten 301 aufweist.

Ein Nachteil bei der in 3 dargestellten Registerbank 300 ist, dass das Einsetzen von Latches durch Synthese-Werkzeuge, welche zur Schaltungsgenerierung basierend auf Hardware-Beschreibungssprachen verwendet werden, sehr aufwändig ist.

Dieser Nachteil wird bei der im Folgenden mit Bezug auf 4 erläuterten Ausführungsform vermieden.

4 zeigt eine Registerbank 400 gemäß einem Ausführungsbeispiel der Erfindung.

Die Registerbank 400 ist analog zu der in 3 dargestellten Registerbank 300 aufgebaut. Der Unterschied besteht darin, dass die Schaltelemente 402 bis 408 (die den Schaltelementen 302 bis 308 entsprechen) nicht jeweils zwei Latches 312 bis 325 aufweisen, sondern jeweils zwei UND-Gatter 412 bis 425 aufweisen. Die UND-Gatter 412 bis 425 sind analog zu den Latches 312 bis 325 angeordnet und beschaltet.

Im Unterschied zu einem Latch 312 bis 325 speichert ein UND-Gatter 412 bis 425 nicht die zuletzt von ihm weitergeleiteten Daten, sondern gibt konstant den Wert 0 aus, wenn ihm mittels seines Steuereingangs, der hier analog zu 3 mit der entsprechenden Adress-Bitleitung 426, 427, 428 beschaltet ist, Low-Pegel (d.h. eine logische 0) zugeführt wird.

Somit entsteht gegenüber der Registerbank 300 bei jedem Schreibadress-Signalwechsel (also typischerweise nach jeder Schreiboperation) ein zusätzlicher Signalwechsel (auf den Wert 0). Die Registerbank 400 lässt sich jedoch auf einfache Weise sehr flächensparend realisieren, da UND-Gatter eine sehr viel kleinere Chipfläche als Latches benötigen. Ferner können UND-Gatter von Synthese-Werkzeugen ohne Einschränkungen eingesetzt werden.

Die Registerbank 400 kann erweitert werden, so dass sie mehrere Schreibdaten-Eingänge aufweist, wie es in 5 dargestellt ist.

5 zeigt eine Registerbank 500 gemäß einem Ausführungsbeispiel der Erfindung.

Mittels mehrerer Schreib-Dateneingänge 501 können der Registerbank 500 parallel mehrere Datenworte 502 zugeführt werden. Jeder Schreib-Dateneingang 501 ist mittels einer baumförmigen Hierarchie von UND-Gattern, die analog zu der Hierarchie von UND-Gattern bei der mit Bezug auf 4 beschriebenen Registerbank 400 ausgestaltet ist, mit einer Mehrzahl von Registerworten 504 gekoppelt.

Gegenüber der mit Bezug auf 4 beschriebenen Registerbank 400 weist die Registerbank 400 (für jeden Schreib-Dateneingang 501) eine zusätzliche Ebene 505 von UND-Gattern (d.h. eine zusätzliche Ebene von Schaltelementen) auf. Den UND-Gattern 503 der zusätzlichen Ebene 505 wird das niedrigstwertige Bit (beziehungsweise das negierte niedrigstwertige Bit) mittels einer zusätzlichen Adress-Bitleitung 506 zugeführt, wobei die zusätzliche Ebene 505 und die zusätzliche Adress-Bitleitung 506 entsprechend für jeden Schreib-Dateneingang 501 vorgesehen ist. Es werden nur von denjenigen UND-Gattern 503 der zusätzlichen Ebene 505 Schreibdaten ausgegeben, die durch die entsprechende Schreibadresse adressiert werden. Alle anderen UND-Gatter 503 der zusätzlichen Ebene 505 geben den logischen Wert 0 aus.

Dies ermöglicht, dass die Auswahl der Schreibdaten, die den entsprechenden Registerworten in der Mehrzahl von Registerworten 504 zugeführt werden, mittels einer Mehrzahl von ODER-Gattern 507 realisiert werden kann. Insbesondere ist es nicht erforderlich, dass für die Mehrzahl von Registerworten 504 eine Mehrzahl von Eingangs-Multiplexern vorgesehen ist. Insbesondere ist keine Ansteuerschaltung für Eingangs-Multiplexer erforderlich, die die entsprechende Auswahlsignale für die Eingangs-Multiplexer bereitstellt.

Diese Ausführungsform können ferner Schreibdaten, die von mehreren Schreib-Dateneingängen 501 in dasselbe Registerwort der Mehrzahl von Registerworten 504 geschrieben werden sollen, durch das entsprechende ODER-Gatter der Mehrzahl von ODER-Gatter 507 entsprechend kombiniert werden, d.h. die Schreibdaten können durch eine bitweise ODER-Funktion so kombiniert werden, dass der gewünschte Teil der Schreibdaten in dem entsprechenden Registerwort 504 gespeichert wird.

Dies kann insbesondere bei parallelen Prozessorarchitekturen (beispielsweise VLIW, Very Long Instruction Word) dazu genutzt werden, dass mehrere Prozessorelemente gleichzeitig Daten in unterschiedliche Bitfelder eines Registerworts schreiben können. Bei herkömmlichen Registerbanken ist es im Gegensatz dazu unzulässig, dass mehrere Datenquellen gleichzeitig Daten in dasselbe Registerwort schreiben.

In diesem Dokument ist die folgende Veröffentlichung zitiert:

  • [1] WO 2004/051449 A2


Anspruch[de]
Speicheranordnung mit einer Mehrzahl von Speicherelementen, wobei

– jedes Speicherelement eingerichtet ist, mindestens ein Datenwort zu speichern, welches Datenwort mindestens ein Bit aufweist;

– jedes Speicherelement mittels einer Mehrzahl von Adressbits adressierbar ist;

– wobei die Speicheranordnung eine Schaltanordnung mit einer Mehrzahl von Schaltelementen aufweist;

– wobei die Mehrzahl von Schaltelementen ausgehend von einem Dateneingang der Schaltanordnung in einer Binärbaumhierarchie in Richtung mehrerer Ausgänge der Schaltanordnung angeordnet ist;

– wobei jedes Speicherelement der Mehrzahl von Speicherelementen mit einem Ausgang der Schaltanordnung gekoppelt ist;

– wobei die Schaltanordnung eine Mehrzahl von Adresseingängen aufweist;

– wobei jedem der Schaltelemente mittels eines Adresseinganges der Mehrzahl von Adresseingängen ein Adressbit zuführbar ist und das Schaltelement eingerichtet ist, einen Schaltzustand in Abhängigkeit von dem zugeführten Adressbit anzunehmen;

– so dass, wenn mittels der Mehrzahl von Adresseingängen den Schaltelementen eine Mehrzahl von Adressbits zugeführt wird, ein Datenwort, das der Schaltanordnung eingangsseitig zugeführt wird, an dem Ausgang der Schaltanordnung ausgegeben wird, mit dem das Speicherelement gekoppelt ist, das durch die zugeführte Mehrzahl von Adressbits adressiert wird.
Speicheranordnung gemäß Anspruch 1, wobei jedes Schaltelement zwei Schaltelement-Ausgänge und einen Schaltelement-Dateneingang aufweist und eingerichtet ist, in Abhängigkeit des ihm zugeführten Adressbits ein ihm mittels des Schaltelement-Dateneingangs zugeführtes Datenwort mittels des ersten Schaltelement-Ausgangs oder mittels des zweiten Schaltelement-Ausgangs auszugeben. Speicheranordnung gemäß Anspruch 1 oder 2, wobei die Schaltelemente mittels Latches realisiert sind. Speicheranordnung gemäß einem der Ansprüche 1 bis 3, wobei die Schaltelemente mittels UND-Gattern realisiert sind. Speicheranordnung gemäß einem der Ansprüche 1 bis 4, wobei die Speicherelemente jeweils mittels mindestens eines Flip-Flops realisiert sind. Speicheranordnung gemäß einem der Ansprüche 1 bis 5, wobei jedes Speicherelement eingerichtet ist, ein Datenwort zu speichern, das 32 Bit aufweist. Speicheranordnung gemäß einem der Ansprüche 1 bis 6, welche ferner einen Schreib-Adress-Decoder aufweist, der mit der Mehrzahl von Speicherelementen gekoppelt ist und der eingerichtet ist, wenn ihm eine Mehrzahl von Adressbits zugeführt wird, ein Enable-Signal an das Speicherelement auszugeben, das durch die zugeführte Mehrzahl von Adressbits adressiert wird, wobei das Enable-Signal spezifiziert, dass ein Datenwort, das dem Speicherelement zugeführt wird, mittels des Speicherelements gespeichert werden soll. Verfahren zum Adressieren einer Speicheranordnung, welche Speicheranordnung eine Mehrzahl von Speicherelementen aufweist, wobei

– jedes Speicherelement eingerichtet ist, mindestens ein Datenwort zu speichern, welches Datenwort mindestens ein Bit aufweist;

– jedes Speicherelement mittels einer Mehrzahl von Adressbits adressierbar ist;

– wobei die Speicheranordnung eine Schaltanordnung mit einer Mehrzahl von Schaltelementen aufweist;

– wobei die Mehrzahl von Schaltelementen ausgehend von einem Dateneingang der Schaltanordnung in einer Binärbaumhierarchie in Richtung mehrerer Ausgänge der Schaltanordnung angeordnet ist;

– wobei jedes Speicherelement der Mehrzahl von Speicherelementen mit einem Ausgang der Schaltanordnung gekoppelt ist;

– wobei die Schaltanordnung eine Mehrzahl von Adresseingängen aufweist;

– wobei jedem der Schaltelemente mittels eines Adresseinganges der Mehrzahl von Adresseingängen ein Adressbit zuführbar ist und das Schaltelement eingerichtet ist, einen Schaltzustand in Abhängigkeit von dem zugeführten Adressbit anzunehmen;

und wobei gemäß dem Verfahren die Adressbits mittels der Adresseingänge so zugeführt werden, dass ein Datenwort, das der Schaltanordnung eingangsseitig zugeführt wird, an dem Ausgang der Schaltanordnung ausgegeben wird, mit dem das Speicherelement gekoppelt ist, das durch die zugeführte Mehrzahl von Adressbits adressiert wird.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com