DE69516817T2 - Peripheriegerät zur Ausführung von Bitfeldbefehlen - Google Patents
Peripheriegerät zur Ausführung von BitfeldbefehlenInfo
- Publication number
- DE69516817T2 DE69516817T2 DE69516817T DE69516817T DE69516817T2 DE 69516817 T2 DE69516817 T2 DE 69516817T2 DE 69516817 T DE69516817 T DE 69516817T DE 69516817 T DE69516817 T DE 69516817T DE 69516817 T2 DE69516817 T2 DE 69516817T2
- Authority
- DE
- Germany
- Prior art keywords
- bit field
- bit
- address
- peripheral
- control logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000002093 peripheral effect Effects 0.000 title claims description 36
- 230000015654 memory Effects 0.000 claims description 38
- 230000004044 response Effects 0.000 claims 9
- 230000001413 cellular effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Complex Calculations (AREA)
Description
- Die vorliegende Erfindung betrifft Bitfeldoperationen und insbesondere das Durchführen von Bitfeldoperationen unter Verwendung eines Peripheriegerätes.
- Es ist bei Prozessoren bekannt, Bitfeldoperationen durch Masken und logische Operationen durchzuführen. Bitfeldoperationen sind Operationen, die ein spezifisches Bit oder eine Bitgruppe innerhalb eines Wortes manipulieren. Einige Prozessoren beschleunigen diese Bitfeldoperationen durch spezialisierte Bitfeldinstruktionen innerhalb des Prozessorinstruktionssatzes.
- Bitfeldinstruktionen, die die Bitfeldoperationen durchführen, bringen mehr komplizierte Operanden mit sich als das die meisten anderen Prozessorinstruktionen tun, weil Bitfeldinstruktionen variabel bemessene Operanden mit sich bringen, die innerhalb von Worten an beliebigen Bit-Offsets liegen. Beispiele für diese Operanden sind Operanden, die den Start und die Länge des Bitfeldes spezifizieren sowie Operanden, die sich auf den Ort des Bitfeldes in einem Register oder einem Speicher beziehen.
- Das Ausstatten des Prozessors mit Hardware zum Interpretieren und Durchführen von codierten Bitfeldinstruktionen kann eine Vergrößerung der Größe des Instruktionskodierers des Prozessors erfordern, um die Bitfeldoperationen handhaben zu können. Die Prozessorhardware zur Durchführung der Bit feldoperationen kann auch zusätzliche oder breitere Datenpfade erfordern, um die komplexen Operanden aufzunehmen.
- Ein Beispiel für einen Prozessor, der eine begrenzte Anzahl von Bitfeldinstruktionen durchführt, ist von der Firma NEC Electronics unter der Warenbezeichnung uPD 70320/322 erhältlich. Der uPD-70320/322-Prozessor schafft eine Extrahier-Bitfeldoperation und eine Einsetz-Bitfeldoperation. Die Extrahier-Bitfeldoperation extrahiert ein Bitfeld mit einer spezifizierten Länge aus einem Speicherort. Das extrahierte Bitfeld wird innerhalb eines Transferregisters rechtsbündig angeordnet, wobei irgendwelche nichtgebrauchten Bits gelöscht werden. Der Byte-Offset des Zielbitfeldes wird durch die Inhalte eines Registers bestimmt. Die Einsetz-Bildfeldoperation setzt ein Bitfeld in einen Speicherort ein. Genauer gesagt wird ein rechtsbündiges Bitfeld mit einer spezifizierten Länge von einem Register auf einen Speicherort übertragen. Der Offset des Zielbitfeldes wird durch die Inhalte eines Offsetregisters bestimmt. Der Start des Bitfeldes wird dann unter Verwendung der Bit-Offset- Operation positioniert. Bitfelder, welche diese Instruktionen verwenden, haben keine Ausrichtanforderungen und können ein oder mehrere Bytegrenzen überspannen.
- Ein weiteres Beispiel für einen Prozessor, welcher Bitfeldinstruktionen durchführt, ist ein Digitalsignalprozessor, der von der Firma Motorola unter der Handelsbezeichnung DSP 56156 erhältlich ist. Dieser Prozessor enthält eine Bitfeldmanipulationsgruppe von Instruktionen. Die Gruppe von Instruktionen testet den Zustand jedes Bitsatzes innerhalb eines Bytes an einem Speicherort und setzt, löscht oder invertiert dann Bits in dem Byte. Bitfelder, die getestet werden können, haben ein oberes Byte und ein unteres Byte in einem 16-Byte-Wert. Das Übertragungsbit eines Konditions-Code-Registers enthält das Ergebnis des Bittestes für jede Instruktion. Diese Bitfeldmanipulationsinstruktionen sind Lese-Modifizier-Einschreib-Instruktionen und er fordern zwei Instruktionszyklen. Parallele Datenbewegungen sind mit jeder der Bitfeldinstruktionen nicht zulässig. Die Bitfeldinstruktionen haben eine Bitfeldtest-Niedrig-Instruktion, eine Bitfeldtest-Hochinstruktion, eine Bitfeldtest- und Löschinstruktion, eine Bitfeldtest- und Setz- Instruktion und eine Bitfeldtest- und Änderungsinstruktion.
- In der EPA-0535820 ist eine Registerarchitektur offenbart, bei der jeder Prozessor in einem Mehrfachprozessor-Computersystem automatisch auf ein gemeinsam benutztes Register zugreift, um ein oder mehrere bestimmte Bits zu setzen oder zu löschen, ohne daß eine Notwendigkeit für das Eingreifen von Software besteht. Diese Architektur ist insbesondere für eine Multiprozessorumgebung geschaffen und stellt die Kohärenz zwischen Hauptgeräten und Daten, die in Systemregistern gespeichert sind, sicher.
- Es wurde entdeckt, daß, wenn ein Prozessor mit einem Bitfeldperipheriegerät versehen ist, auf welches über bestimmte Bitfeldadressen zugegriffen wird, vorteilhafterweise ein System geschaffen ist, das effizient Bildfeldoperationen durchführt. Ein derartiges System schafft vorteilhafterweise einen Prozessor, der keinen Originalbitfeldinstruktionssatz enthält, und der Bitfeldoperationen durchführen kann. Ein derartiges System vermeidet auch vorteilhafterweise Schwierigkeiten, die durch kodierte Bitfeldinstruktionen hervorgerufen werden.
- Gemäß der vorliegenden Erfindung ist ein Bitfeldperipheriegerät gemäß Patentanspruch 1 und ein Bitfeldsystem gemäß Anspruch 8 geschaffen. Die abhängigen Ansprüche beziehen sich auf vorteilhafte Aspekte der vorliegenden Erfindung.
- Es zeigt:
- Fig. 1 ein System mit einem Bitfeldperipheriegerät gemäß der vorliegenden Erfindung;
- Fig. 2 ein Blockschaltbild des Bitfeldperipheriegerätes gemäß Fig. 1;
- Fig. 3 eine Belegung des Speichers des Bitfeldperipheriegerätes gemäß Fig. 1 gemäß der vorliegenden Erfindung, und
- Fig. 4 einen Speicherzugriff einer Bitfeldoperation gemäß der vorliegenden Erfindung.
- Im folgenden wird eine detaillierte Beschreibung der am besten erachteten Art und Weise für die Durchführung der Erfindung gegeben. Die Beschreibung soll die Erfindung illustrieren und sollte nicht zur Begrenzung verwendet werden.
- Bezugnehmend auf Fig. 1 hat das Bitfeldsystem 50 einen Prozessor 52, der an das Bitfeldperipheriegerät 50 gekoppelt ist. Der Prozessor 52 ist beispielsweise ein Digitalsignalprozessor (DSP) von der Firma NEC CORPORATION, erhältlich unter der Handelsbezeichnung uPD 77017. Der Prozessor 52 ist auch an den Speicher 56 gekoppelt. Das Bitfeldperipheriegerät 54 hat sowohl eine Steuerlogik 60 als auch einen Bitfeldspeicher 64. Auf das Bitfeldperipheriegerät 54 wird vom Prozessor 52 über einen Bitfeldbereich des Speicherraums zugegriffen und das Bitfeldsystem 50 kann Bitfeldoperationen durchführen, obwohl der Prozessor 52 nicht im einzelnen so gestaltet ist, daß er diese durchführen kann. Wenn der Prozessor 52 auf eine bestimmte Adresse innerhalb des Bitfeldbereiches des Speicherraumes zugreift, werden gewisse Bits innerhalb des Wortes manipuliert. Das Bitfeldperipheriegerät 54 kann auf dem gleichen integrierten Schaltkreischip wie der Prozessor 52 integriert sein.
- Bezugnehmend auf Fig. 2 hat die Steuerlogik 60 des Bitfeld- Peripheriegerätes 54 eine Wähl- und Routing-Logik 66. Die Wähl- und Routing-Logik 66 ist aus Hardware-Komponenten, wie beispielsweise einem programmierbaren Logik-Array(PLA), einzelnen Logik-Komponenten oder mit einer anwendungsspezifischen integrierten Schaltung (ASIC) gebildet. Die Wähl- und Routing-Logik 66 ist so gekoppelt, daß sie sowohl auf das Lese/Schreib-(R/W-Signal) als auch auf den 16-Bit-Datenbus und den 16-Bit-Adressbus des Systems 50 zugreifen kann.
- Der Bitfeldspeicher 64 hat 32 Sperrspeicher 68, die mit L&sub0;- L&sub3;&sub1; bezeichnet sind. Die Sperrspeicher 68 sind parallel zu der Wähl- und Routing-Logik 66 gekoppelt. Die Daten- und Takteingänge (D bzw. C) jedes Sperrspeichers 68 werden von der Wähl- und Routing-Logik 66 empfangen und der Datenausgang (Q) jedes Sperrspeichers 68 wird an die Wähl- und Routing-Logik 66 gelegt.
- Die Wähl- und Routing-Logik 66 bestimmt, welcher der 32 Sperrspeicher des Bitfeldspeichers 64 die Daten für die bestimmte Adresse einer aufgerufenen Bitfeldinstruktion hält. Im allgemeinen repräsentieren die Adressleitungen, die an die Wähl- und Routing-Logik 66 gekoppelt sind, für 1 ≤ j ≤ 16 und 0 ≤ k ≤ 66 gekoppelt sind, für 1 ≤ j ≤ 16 und 0 ≤ k ≤ 16 oder für j = k = 16 den Wert len < j> + k. Wenn demgemäß eine bestimmte Adresse aufgerufen ist, werden die Sperrspeicher, die der bestimmten Adresse entsprechen, gesetzt. Genauer gesagt durch Schaffen einer Adresskarte, in welcher die niedrigen vier Bits der Adresse len < j> gleich 0 sind und die niederen vier Bits k, von len < j> + k, bilden den Offset und die nächsten vier Bits, j, bilden die Breite des Bitfeldes, dann bestimmt die Wähl- und Routing-Logik 66, welche Sperrspeicher zu setzen sind und welche Sperrspeicher zu löschen sind und zwar basierend auf dieser Adressenkarte.
- Im allgemeinen wird für die Adresse len < j> + k, das R/W- Signal zu den C Eingängen der j Sperrspeicher, die einen Offset von k haben, geführt, d. h. den Sperrspeichern Lk ... Lk+(y-1), und ein High wird zu den verbleibenden Sperrspeichern geführt, d. h. 32-j Sperrspeichern. Wenn das R/W- Signal hoch ist, was ein Lesen anzeigt, werden die niedrigsten j-Bits der Daten vom Datenbus auf die gewählten Sperrspeicher geführt, spezifisch für 0 ≤ i < j, wird das Eingangssignal Di auf den D-Eingang des Sperrspeichers Lk+i geführt. Im Fall einer Lese-Wähl- und Routing-Logik 66 zieht diese alle Leitungen der Ausgangsdaten mit Ausnahme der niedrigsten j-Leitungen der Ausgangsdaten nach unten. Für ein Einschreiben wird der Q-Ausgang des Sperrspeichers Lk+i zu dem Ausgangssignal Di geführt.
- Wenn beispielsweise die Adresse den Wert len 2 + 3 hat, dann sind zwei Sperrspeicher aktiv und diese Sperrspeicher haben einen Offset von 3. Demgemäß sind die Sperrspeicher L&sub4; und L&sub3; aktiv. Das R/W-Signal wird zu dem C-Eingang der L&sub4; und L&sub3; Sperrspeicher geleitet und ein hohes Signal, das ein Lesen anzeigt, wird zu den verbleibenden 30 Sperrspeichern zugeführt. Die niedrigsten zwei Bits vom Datenbus werden zu den D-Eingängen der L&sub4;- und L&sub3;-Speicher am Start eines Einschreibbus-Zyklus zugeführt und die zwei Q-Ausgänge der zwei Sperrspeicher werden zu den zwei niedrigsten Bits des Datenbus am Ende eines Lesebuszyklus zugeführt. In diesem Fall zieht eine Lese-Wähl- und Routing-Logik 66 alle Sperrspeicherausgänge nach unten, mit Ausnahme der zwei niedrigsten Leitungen des Ausgangsdatenbusses.
- Bezugnehmend auf die Fig. 3 und 4 bildet in der bevorzugten Ausführungsform der Prozessor 52 einen bestimmten Bitfeldspeicherbereich, der den Adressen des Bitfeldspeichers 64 entspricht. Der Bitfeldspeicherbereich enthält 16 * 16 + 1 = 257 Worte des Speichers. Diese Worte unterteilen sich natürlich in 16 Blöcke von 16 Wörtern, jeder plus ein zusätzliches Wort. Die 16 unterschiedlichen Blöcke starten an Speicherorten.
- len01 < len02 < ... < len16
- Im allgemeinen hat das Wort, auf welches über einen Adressenstart bei der Adresse len < j> zugegriffen wird, j signifikante (d. h. -niedrigste) Bits, die mit den verbleibenden höchsten Bits jedes Wortes immer gleich 0 werden. Der Offset gegenüber der Basisadresse eines Blockes zeigt die Startadresse der aktiven Bits des Bitfeldes an. Wenn eine Bitfeldoperation durchgeführt wird, verwendet der Prozessor 52 die verschiedenen Adressen des Bitfeldadressbereiches zum Zugreifen auf die unterschiedlichen Bitkombinationen des Bitfeldperipheriegerätes 54.
- Genauer gesagt werden die unterschiedlichen Bitkombinationen, die den 257 unterschiedlichen Adressen entsprechen, dazu verwendet, unterschiedliche Bitfeldkombinationen eines 32-Bit-Wortes zu erzeugen. Dieses 32-Bit-Wort, das als WORD32 bezeichnet wird, wird aus zwei 16-Bit-Worten der Daten, niedriges < j> und hohes < j> gebildet, die den Adressen des Bitfeldadressenbereiches entsprechen, die durch 16-Bits separiert sind. Beispielsweise wird auf das niedrigere 16- Bit-Wort Low16 durch die Adresse len16 zugegriffen und auf das entsprechende höhere 16-Bit-Wort High16, wird durch die Adresse len16 + 16 zugegriffen. Allgemeiner gesagt, wird auf das Bitfeld der Länge j, beginnend beim Bit k durch die Adresse len< j> + k zugegriffen. Beispielsweise ist (len15 + k) die Adresse eines Bitfeldes von WORD32, welches sich über die Bits k bis (k + 15) erstreckt. Das Einschreiben oder Auslesen eines 16-Bit-Wertes auf die Adresse len15 + 5 hat die Wirkung des Einschreibens oder Lesens der elf niedrigsten Bits dieses Wertes bis zu den elf höchsten Bits von Low16; wobei das höchste Bit ignoriert wird aber die nächsten vier höchsten Bits dieses Wertes entweder eingeschrieben oder aus dem High16-Wort ausgelesen werden.
- Als ein weiteres Beispiel schafft das Auslesen aus der Adresse (len03 + 7) Daten, die immer die Bits15...3 gelöscht haben; die Bits 2....0 sind die gleichen wie die Bits 9...7 des Wortes Low16. Das Auslesen aus der Adresse (len03 + 14) schafft auch Daten, die immer die Bits 15...3 gelöscht haben, aber die Bits 2...0 des Wortes, das an dieser Adresse (len03 + 14) gespeichert ist, sind die gleichen wie das Bit 0 des Wortes High16, gefolgt von den Bits 15 und 14 des Wortes Low16.
- Die 16 Adressen innerhalb des Blockes der Adressen, die bei len01 starten, werden dazu verwendet, die 16 individuellen Bits des Wortes Low16 zu lesen oder zu schreiben. Für die einzelnen Bits des Wortes High16 wird keine Adressierung gebildet, weil das Wort High16 nur geschaffen wird, um den Überlauf aufzunehmen, wenn das Lesen oder Einschreiben eines Bitfeldes nicht vollständig in das Wort von Low16 paßt. Demgemäß werden die High16-Adressen von der entsprechenden Low16-Adresse abgeleitet und beziehen sich direkt auf diese. Beispielsweise hat in dem Block, der bei der Adresse len2 startet, nur das Wort, welches an der Adresse len02 + 15 gespeichert ist, irgendwelche Bits gemeinsam mit dem Wort High16, weil dies das einzige Feld der zwei Bit breiten Bitfelder ist, welches überläuft. (Das heißt, daß nicht vollständig in das Wort Low16 fällt). Im Gegensatz hierzu ist das einzige Wort in dem Block, der an der Adresse len16 startet, welches nicht in das Wort High16 überläuft, das Wort Low16 selbst.
- Das Bildfeldperipheriegerät 54 kann für das Dekodieren von Steuerkanaldaten für U. S.-Digitale zellenförmige Information - verwendet werden. Die U. S.-Digitale zellenförmige Basisstation sendet Mitteilungen auf einem Digitalkanal der als ein Analogsteuerkanal bezeichnet wird. Jedes 11. Bit der Daten auf diesem Kanal zeigt an, ob eine gewisse mobile Station gerade auf diesem Kanal versorgt wird. Einer der Schritte beim Dekodieren einer Mitteilung von der Basisstation ist, daß die mobile Station jedes 11.Bit aus dem Datenstrom löscht.
- Die Tabelle 1 legt ein C-Code-Modul zum Dekodieren von Steuerkanaldaten dar, und genauer gesagt zum Entfernen der Beschäftigt/Bereit-Bits aus den Vorab-Steuerkanaldaten. Dieser Modul nimmt an, daß alle der Konstant-Pointer, len01..len16, High16 und Low16 vor dem Aufruf dieses Moduls definiert worden sind.
- Der Vorab-Steuerkanal ist ein zellenförmiger Telefonkommunikationskanal, der in dem Standard-IS-54-B-Digitale Zellen, veröffentlicht April 1992 von Electronics Industries Association und Telecommunication Industry Association (EIA/TIA) definiert worden ist. Der Vorab-Steuerkanal ist derjenige Kanal, welcher von der Basisstation übertragen wird und wird zur Initialisierung von Telefonanrufen verwendet. TABLE 1
- Die Sequenz der Aktionen, welche auftritt, wenn der Modul no_bi(data) vom Prozessor 52 und dem Bitfeldperipheriegerät 54 durchgeführt wird, wird in der Tabelle 2 angegeben. Tabelle 2
- Durch Durchführen dieses Moduls oder Verwendung des Bitfeld-Peripheriegerätes 54 können viele Codezeilen gespart werden. Weil, wenn Bitfeldperipheriegeräte 54 nicht zur Verfügung stehen, während viele des Codes für dieses Modul die gleichen sein würden, müßten die wenigen Zeilen, die unterschiedlich wären, jeweils in mehrzeilige Codes ausgedehnt werden. Wenn beispielsweise das Bitfeldperipheriegerät 54 verwendet wird, wandelt sich die Zeile 14 des Moduls in zwei oder drei Zeilen des Umwandlungscodes, und zwar in Abhängigkeit von den Kompilerdesign-Entscheidungen beim Übersetzen des Moduls. Wenn dieser Code ohne Bitfeldperipheriegerät 54 durchgeführt worden ist, würden mehrere 10 der Zeilen benötigt werden, um Masken zu bilden und die notwendigen UND- und OR-Operatinen durchzuführen, um dasselbe Ergebnis zu erzielen. Die Zeilen 19, 25, 26 und 32 des Moduls würden ähnlich beeinflußt werden, wenn dieser Code ohne Bitfeldperipheriegerät 54 durchgeführt werden würde. Tatsächlich ist jede Zeile des C-Codes, die sich auf eine der 257 Bitfeldadressen bezieht, wegen des Bitfeldperipheriegerätes 54 schneller.
- Andere Ausführungsformen liegen innerhalb der folgenden Patentansprüche.
- Beispielsweise sind bei dem vorstehend beschriebenen Bitfeldperipheriegerät nicht alle Subsätze von WORD32 in dem Speicherbereich repräsentiert (es sind nur fortlaufende Bitfelder gezeigt). Für die meisten Zwecke ist das alleinige Speichern fortlaufender Bitfelder ausreichend. Einige Anwendungen schlagen jedoch andere Sub-Sätze von WORD 32 vor, die nützlich sein könnten. Beispielsweise wird eine gewisse Beschleunigung des in der Tabelle 1 angegebenen Moduls durchgeführt, in dem Sub-Sätze repräsentiert werden, die durch mod(n,16) ≠ k repräsentiert sind. Bei diesem Beispiel sind dies die Bits, welche gelöscht werden, wenn der Modul durchgeführt wird. Dies ist ein Beispiel zum beliebigen Schaffen anderer Bitfeldkombinationen. Demgemäß können zusätzliche Sub-Sätze von WORD32 als ein Teil des Bitfeldadressenbereiches geschaffen werden. Auf diese zusätzlichen Sub-Sätze von WORD32 würde dann durch besondere Adressen zugegriffen. Innerhalb des Bitfeld-Peripheriegerätes 54 würde die Wähl- und Routing-Logik 66 steuern, welcher der Sperrspeicher aktiv ist, wenn eine bestimmte Adresse auf den Bitfeldadressenbereich zugreift.
- Es könnten auch beispielsweise andere Adressen für Bitfelder geschaffen werden, die außerhalb der Reihenfolge aufgebaut sind, beispielsweise mit umgekehrten Bits. Solche Bitfelder sind für die Bitumkehr eines ganzen Wortes nützlich.
- Beispielsweise könnten auch andere Adressen für bestimmte Rechnungen vorgesehen sein, um dadurch den Instruktionssatz des Prozessors auszudehnen. Beispielsweise haben einige Prozessoren eine Instruktion zum Berechnen der Anzahl von hohen Bits in einem Wort. Für einen Prozessor ohne eine derartige Instruktion kann eine Adresse in dem Peripheriegerät so vorgesehen sein, daß der Prozessor den Zählwert der hohen Bits nach dem Einschreiben eines oder mehrerer Wörter an anderen Adressen lesen könnte. Ein derartiger Zugriff würde keine Auswirkung auf die Originaldaten haben. Andere Berechnungen sind ebenfalls möglich. Beispielsweise können logische Kombinationen (beispielsweise UNDs, ODERs, XORs, etc.) der in die bestimmten Adressen eingeschriebenen Daten berechnet werden und dem Prozessor präsentiert werden, um bestimmte Adressen auszulesen.
Claims (14)
1. Bitfeldperipheriegerät (54), das auf Bitfeldadressen
reagiert und eine Bitfeldsteuerlogik (60) aufweist zum Empfangen
einer speziellen Bitfeldadresse und mit
einem Bitfeldspeicher (64), der mit der Bitfeldsteuerlogik
(60) gekoppelt ist und eine Vielzahl von Bitorten enthält,
wobei die Bitfeldsteuerlogik (60) vorbestimmte Bitorte des
Bitfeldspeichers in Antwort auf die spezielle Bitfeldadresse
zugreift;
wobei das Bitfeldperipheriegerät (54) verbunden ist mit den
Adressenleitungen und antwortet auf Adressen in einem
speziellen Bereich des Adressraumes des Prozessors.
2. Bitfeldperipheriegerät nach Anspruch 1,
wobei die Bitfeldsteuerlogik (50) eine Auswahl- und Routing-
Logik (66) enthält, die steuert, welche Bitorte des
Bitfeldspeichers (64) zugegriffen werden in Antwort auf die
spezielle Bitfeldadresse.
3. Bitfeldperipheriegerät nach Anspruch 1,
wobei der Bitfeldspeicher (64) eine Vielzahl von
individuellen Speichern enthält, die jeweiligen Bitorten entsprechen.
4. Bitfeldperipheriegerät nach Anspruch 3,
wobei die Vielzahl der individuellen Speicher jeweilige
Sperrspeicher (Latches) sind.
5. Bitfeldperipheriegerät nach Anspruch 3,
wobei die Bitfeld-Steuerlogik (60) eine Auswahl- und Routing-
Logik (66) aufweist, welche steuert, welche der Vielzahl der
individuellen Speicher des Bitfeldspeichers (64) zugegriffen
werden in Antwort auf die spezielle Bitfeldadresse.
6. Bitfeldperipheriegerät nach Anspruch 3,
wobei für 1 ≤ j ≤ 16 und 0 ≤ k ≤ 16, mit j gleich einer
Breite des Bitfeldes und k gleich, einem Bitfeldoffset, wenn eine
Bitfeldadresse mit dem Wert mit dem Wert len< j> + k empfangen
wird durch das Bitfeldperipheriegerät, wobei die unteren vier
Bits den Offset und die nächsten vier Bits die Breite des
Bitfeldes liefern, die Auswahl- und Routing-Logik (66) j
individuelle Speicher mit einem Offset von 0 von k zugreift.
7. Bitfeldperipheriegerät nach Anspruch 1,
wobei die spezielle Bitfeldadresse einer Instruktion eines
expandierten Instruktionssatzes für einen Prozessor
entspricht, und die Bitfeld-Steuerlogik (60) eine Instruktion
eines expandierten Instruktionssatzes durchführt in Antwort
auf den Empfang der speziellen Bitfeldadresse.
8. Bitfeldsystem mit einem Prozessor (529) zum Erzeugen
von Bitfeldadressen in Antwort auf Bitfeldinstruktionen,
einem Bitfeldgerät (54), welches mit dem Prozessor gekoppelt
ist, wobei das Bitfeldgerät enthält
eine Bitfeldsteuerlogik (60) zum Empfangen der
Bitfeldadressen, und
einen Bitfeldspeicher (64), der mit der Bitfeldsteuerlogik
(60) gekopptelt ist, wobei der Bitfeldspeicher (66) eine
Vielzahl von Bitorten aufweist und die Bitfeldsteuerlogik
(60) vorbestimmte Bitorte des Bitfeldspeichers (64) zugreift
in Antwort auf eine spezielle Bitfeldadressen;
wobei das Bitfeld-Peripheriegerät (64) verbunden ist mit den
Adressenleitungen und antwortet auf Adressen in einem
speziellen Bereich des Adressraumes des Prozessors (52).
9. Bitfeldsystem nach Anspruch 8,
wobei die Bitfeldsteuerlogik eine Auswahl- und Routing-Logik
(66) enthält, wobei die Auswahl- und Routing-Logik (66)
steuert, welche Bitorte des Bitfeldspeichers (66) zugegriffen
werden in Antwort auf die spezielle Bitfeldadresse.
10. Bitfeldsystem nach Anspruch 8,
wobei der Bitfeldspeicher (64) eine Vielzahl von
individuellen Speichern enthält, die jeweiligen Bitorten entsprechen.
11. Bitfeldsystem nach Anspruch 10,
wobei die Vielzahl von individuellen Speichern jeweilige
Sperrspeicher (Latches) sind.
12. Bitfeldsystem nach Anspruch 10,
wobei die Bitfeldsteuerlogik (60) eine Auswahl- und Routing-
Logik (66) aufweist, welche steuert, welche der Vielzahl von
individuellen Speichern des Bitfeldspeichers (64) zugegriffen
werden in Antwort auf die spezielle Bitfeldadresse.
13. Bitfeldsystem nach Anspruch 10,
wobei für 1 ≤ j ≤ 16 und 0 ≤ k ≤ 16, mit j gleich einer
Breite des Bitfeldes und k gleich einem Bitfeldoffset, wenn eine
Bitfeldadresse mit dem Wert mit dem Wert len< j> + k empfangen
wird durch das Bitfeldperipheriegerät, wobei die unteren vier
Bits den Offset und die nächsten vier Bits die Breite des
Bitfeldes liefern, die Auswahl- und Routing-Logik (66) j
individuelle Speicher mit einem Offset von 0 von k zugreift.
14. Bitfeldsystem nach Anspruch 8,
wobei die spezielle Bitfeldadresse einer Instruktion
eines expandierten Instruktionssatzes für einen Prozesseor
entspricht, und die Bitfeld-Steuerlogik (60) eine Instruktion
eines expandierten Instruktionssatzes durchführt in Antwort
auf den Empfang der speziellen Bitfeldadresse.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US33779294A | 1994-11-14 | 1994-11-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69516817D1 DE69516817D1 (de) | 2000-06-15 |
DE69516817T2 true DE69516817T2 (de) | 2000-12-07 |
Family
ID=23322028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69516817T Expired - Fee Related DE69516817T2 (de) | 1994-11-14 | 1995-10-24 | Peripheriegerät zur Ausführung von Bitfeldbefehlen |
Country Status (5)
Country | Link |
---|---|
US (1) | US6081869A (de) |
EP (1) | EP0715252B1 (de) |
JP (1) | JP2914428B2 (de) |
KR (1) | KR100225187B1 (de) |
DE (1) | DE69516817T2 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6523108B1 (en) | 1999-11-23 | 2003-02-18 | Sony Corporation | Method of and apparatus for extracting a string of bits from a binary bit string and depositing a string of bits onto a binary bit string |
US8006114B2 (en) | 2007-03-09 | 2011-08-23 | Analog Devices, Inc. | Software programmable timing architecture |
US20170185402A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Instructions and logic for bit field address and insertion |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4028670A (en) * | 1976-02-06 | 1977-06-07 | International Business Machines Corporation | Fetch instruction for operand address calculation |
US4764896A (en) * | 1985-07-01 | 1988-08-16 | Honeywell Inc. | Microprocessor assisted memory to memory move apparatus |
US5210835A (en) * | 1986-08-27 | 1993-05-11 | Ken Sakamura | Data processing system having apparatus for increasing the execution speed of bit field instructions |
JP2613223B2 (ja) * | 1987-09-10 | 1997-05-21 | 株式会社日立製作所 | 演算装置 |
US5287503A (en) * | 1991-09-27 | 1994-02-15 | Sun Microsystems, Inc. | System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register |
-
1995
- 1995-10-24 DE DE69516817T patent/DE69516817T2/de not_active Expired - Fee Related
- 1995-10-24 EP EP95116747A patent/EP0715252B1/de not_active Expired - Lifetime
- 1995-11-08 JP JP7289829A patent/JP2914428B2/ja not_active Expired - Lifetime
- 1995-11-13 KR KR1019950040925A patent/KR100225187B1/ko not_active IP Right Cessation
-
1997
- 1997-08-06 US US08/907,066 patent/US6081869A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2914428B2 (ja) | 1999-06-28 |
US6081869A (en) | 2000-06-27 |
KR100225187B1 (ko) | 1999-10-15 |
EP0715252B1 (de) | 2000-05-10 |
EP0715252A1 (de) | 1996-06-05 |
KR960018881A (ko) | 1996-06-17 |
DE69516817D1 (de) | 2000-06-15 |
JPH08212130A (ja) | 1996-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69834739T2 (de) | Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren | |
DE2455803C2 (de) | Mehrprozessor-Datenverarbeitungsanlage | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE3650532T2 (de) | Speicher mit programmierbarem Zugang | |
DE2944419C2 (de) | ||
DE60224774T2 (de) | Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit | |
DE2910839A1 (de) | Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion | |
DE2524046A1 (de) | Elektronische datenverarbeitungsanlage | |
DE2747146A1 (de) | Datenverarbeitungsanlage | |
DE69229423T2 (de) | Datenübertragungssystem | |
DE69119149T2 (de) | Struktur zur direkten Speicher-zu-Speicher-Übertragung | |
DE2164793A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit | |
DE68925569T2 (de) | Dynamischer Video-RAM-Speicher | |
DE2458286A1 (de) | Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen | |
DE69230898T2 (de) | Speicherauswahl enthaltendes Verarbeitungs-System und Verfahren | |
DE3107568A1 (de) | Datenverarbeitungseinrichtung | |
DE68925376T2 (de) | In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas | |
DE69229424T2 (de) | Adressengeneration in einer Datenverarbeitungseinheit | |
DE69112434T2 (de) | Kurvengenerator. | |
DE2948442C2 (de) | Digitalrechenanlage | |
DE2458259A1 (de) | Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen | |
DE69516817T2 (de) | Peripheriegerät zur Ausführung von Bitfeldbefehlen | |
DE69424387T2 (de) | Verfahren und Gerät zum Modifizieren des Inhalts eines Registers | |
DE3535518C2 (de) | Bildprozessorsystem und Verfahren zur Verarbeitung von Daten in einem Bildspeicher | |
DE2842288A1 (de) | Datentransferschalter mit assoziativer adressauswahl in einem virtuellen speicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: NEC ELECTRONICS CORP., KAWASAKI, KANAGAWA, JP |
|
8339 | Ceased/non-payment of the annual fee |