DE69516817T2 - Peripheriegerät zur Ausführung von Bitfeldbefehlen - Google Patents

Peripheriegerät zur Ausführung von Bitfeldbefehlen

Info

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
Application number
DE69516817T
Other languages
English (en)
Other versions
DE69516817D1 (de
Inventor
Paul E. Cohen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Application granted granted Critical
Publication of DE69516817D1 publication Critical patent/DE69516817D1/de
Publication of DE69516817T2 publication Critical patent/DE69516817T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit 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

    Peripheriegerät zur Ausführung von Bitfeldbefehlen Hintergrund der Erfindung
  • 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.
  • Zusammenfassung der Erfindung
  • 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.
  • Kurze Beschreibung der Figuren
  • 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.
  • Detaillierte Beschreibung
  • 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 &le; j &le; 16 und 0 &le; k &le; 66 gekoppelt sind, für 1 &le; j &le; 16 und 0 &le; k &le; 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 &le; 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
  • 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) &ne; 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 &le; j &le; 16 und 0 &le; k &le; 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 &le; j &le; 16 und 0 &le; k &le; 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.
DE69516817T 1994-11-14 1995-10-24 Peripheriegerät zur Ausführung von Bitfeldbefehlen Expired - Fee Related DE69516817T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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