Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CIRCUIT AND METHOD FOR CONVERTING DATA IN A PROCESSOR
Document Type and Number:
WIPO Patent Application WO/2000/008553
Kind Code:
A1
Abstract:
A data conversion which is executed in a processor is carried out in an object-oriented manner, before an arithmetic or logical operation, each time on the basis of an indication of data type belonging to the object.

Inventors:
HAAS PETER (DE)
Application Number:
PCT/DE1999/002086
Publication Date:
February 17, 2000
Filing Date:
July 05, 1999
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
HAAS PETER (DE)
International Classes:
G06F9/38; G06F9/30; G06F9/318; G06F9/34; G06F9/355; G06F9/44; (IPC1-7): G06F9/318
Foreign References:
US5201056A1993-04-06
Other References:
PATENT ABSTRACTS OF JAPAN vol. 010, no. 160 (P - 465) 7 June 1986 (1986-06-07)
PATENT ABSTRACTS OF JAPAN vol. 012, no. 422 (P - 783) 9 November 1988 (1988-11-09)
PATENT ABSTRACTS OF JAPAN vol. 013, no. 019 (P - 814) 18 January 1989 (1989-01-18)
D. A. MOON: "Symbolics Architecture", COMPUTER, vol. 20, no. 1, January 1987 (1987-01-01), IEEE COMPUTER SOCIETY, New York, US, pages 43 - 52, XP002127860, ISSN: 0018-9162
Attorney, Agent or Firm:
SIEMENS AKTIENGESELLSCHAFT (Postfach 22 16 34 München, DE)
SIEMENS AKTIENGESELLSCHAFT (Postfach 22 16 34 München, DE)
Download PDF:
Claims:
Patentansprüche
1. Schaltungsanordnung zur Datenkonvertierung in einem Pro zessor mit mindestens einer eine logische oder arithmetische Operation ausführenden Einheit (E), dadurch gekennzeichnet, daß eine objektorientierte Datenkonvertierungseinheit (TC) zur Erkennung eines Typs (T) eines Objektes (D) und einer Objektadresse (OA) vor der die logische oder arithmetische Operation ausführenden Einheit (E) angeordnet ist, und auf grund der mit einer Objektadresse (OA) und dem Objekt (D) mitgeführten Typinformation die Datenkonvertierungseinheit (TC) den Typ (T) des Objektes (D) erkennt und vor einer Ope ration die Objekte (D) bei einer Ungleichheit angleicht oder einen vorbestimmten Typ des Objektes (D) erzeugt.
2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß ein Speicherplatz für eine Objektadresse (OA) und ein Speicherplatz eines Registers (R) jeweils in einen ersten und zweiten Bereich (T, SA ; T, D) aufgeteilt ist, wobei im ersten Bereich jeweils ein Typ (T) des Objektes (SA, D) abgelegt ist.
3. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß die objektorientierte Datenkonvertierungseinheit (TC) nach der eine logische oder eine arithmetische Operation aus führenden Einheit (E) vorgesehen ist.
4. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß die objektorientierte Datenkonvertierungseinheit (TC) vor dem Abspeichern des Objektes (D) in einem externen Speicher (M) und einem RegisterFile (RC) angeordnet ist.
5. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß ein RegisterFile (RC) in einen Speicherbereich für Daten und einen Speicherbereich für eine jeweilige Typangabe der Daten unterteilt ist.
6. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß dieser ein Reduced Instruction Set Computer (RISC) ist.
7. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß dieser ein Complex Instruction Set Computer (CISC) ist.
8. Verfahren zur Datenkonvertierung in einem Prozessor mit mindestens einer eine logische oder arithmetische Operation ausführenden Einheit (E), dadurch gekennzeichnet, daß durch eine Typinformation (T) in einer Objektadresse (OA) und durch eine Typinformation (T) eines Objektes (D) eine objektorientierte Datenkonvertierung durchgeführt wird und bei einer Ungleichheit der durch eine logische oder arithme tische Operation zu verknüpfenden Objekte (D) der Typ der Ob jekte einander angeglichen oder ein vorbestimmter Objekttyp eines Objektes (D) erzeugt wird.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß ein Speicherplatz für eine Objektadresse (OA) und ein Speicherplatz eines Registers (R) jeweils in einen ersten und zweiten Bereich (T, SA ; T, D) aufgeteilt wird und im ersten Bereich (T) jeweils eine Typinformation der im zweiten Be reich der Objektadresse (OA) abgelegten Speicheradresse (SA) und der im zweiten Bereich abgelegten Daten (D) des Registers (R) vermerkt wird.
Description:
Beschreibung Schaltungsanordnung und Verfahren zur Datenkonvertierung in einem Prozessor In Prozessoren oder Mikroprozessoren wird vor arithmetischen oder logischen Operationen mit unterschiedlichen Datentypen durch Programmsequenzen eine Datentypkonvertierung herbeige- führt. Die Datentypkonvertierung mittels Programmsequenzen hat jedoch den Nachteil, daß sie die Verarbeitungsgeschwin- digkeit eines Prozessors oder Mikroprozessors herabsetzt.

Desweiteren weist diese Art der Datentypkonvertierung den Nachteil auf, daß das Bussystem des Prozessors durch die zur Datentypkonvertierung erforderlichen Operations-Code zusätz- lich belastet wird.

Neben der angesprochenen Datentypkonvertierung werden objekt- orientierte Programmsprachen eingesetzt, um spezielle Pro- bleme zu lösen. Eine Datentypkonvertierung kann auch durch eine objekt-orientierte Befehlsstruktur erreicht werden. Die objekt-orientierte Befehlsstruktur bringt jedoch den Nachteil einer Vergrößerung des Programmcodes mit sich, da jeder Be- fehl für jede Kombination von Datentypen im Speicher hinter- legt sein muß. Eine Vergrößerung des Programmcodes hat eben- falls eine Verringerung der Verarbeitungsgeschwindigkeit zur Folge.

Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsan- ordnung und ein Verfahren zur Datentypkonvertierung anzuge- ben, die die oben genannten Nachteile vermeidet.

Die Aufgabe wird durch die Merkmale des Patentanspruchs 1 und 8 gelöst.

Die Erfindung bringt den Vorteil mit sich, daß eine Datenkon- vertierung ohne eine Verringerung der Verarbeitungsgeschwin- digkeit des Prozessors durchgeführt werden kann.

Die Erfindung bringt den Vorteil mit sich, daß Datentypum- wandlungen selbständig durchgeführt werden.

Die Erfindung bringt den weiteren Vorteil mit sich, daß der Programmcode nicht vergrößert werden muß.

Die Erfindung bringt den weiteren Vorteil mit sich, daß eine datentypgerechte Datentypumwandlung mit einer datentypgerech- ten Adreßberechnung durchgeführt wird.

Weitere Besonderheiten sind in den Unteransprüchen angegeben.

Die Schaltungsanordnung und das Verfahren werden aus der nachfolgenden näheren Erläuterung zu einem Ausführungsbei- spiel anhand von Zeichnungen ersichtlich.

Es zeigen : Figur 1 den Aufbau einer Objektadresse, Figur 2 den Aufbau eines Registers, Figur 3 den Aufbau interner Register, Figur 4 eine Ausgestaltung eines Prozessors und Figur 5 die Ausgestaltung des Prozessors mit einer ob- jekt-orientierten Datentypkonvertierung entspre- chend der Erfindung.

In Figur 1 ist eine Aufteilung einer Objektadresse OA ge- zeigt. Diese Objektadresse OA unterteilt sich in einen Be- reich für die Angabe des Typs T des Objekts und eine zum Ob- jekt gehörende Speicheradresse SA. Die Speicheradresse SA gibt den Speicherplatz eines Objektes in einem Speicherbe- reich eines Speichers an. Der Objekttyp T und die Spei- cheradresse SA werden bei einer Deklaration des Objektes von einem Compiler vergeben und als eine Einheit behandelt. Ob- jekte können beispielsweise Daten, Adressen oder Codeadressen sein.

In Figur 2 ist die Aufteilung eines Registers R wiedergege- ben. Dieses Register R ist in einen ersten Bereich zur Angabe des Daten- bzw. Objekttyps T und in einen zweiten Bereich zur Abspeicherung der Daten bzw. Objekte D aufgeteilt.

In Figur 3 ist eine detaillierte Angabe der Aufteilung des Registers R und der Objektadresse OA wiedergegeben. In dieser Darstellung werden die abzuspeichernden Adressen oder Daten wie oben angedeutet in einen ersten und zweiten Bereich un- terteilt. In einem Register R mit einer Länge von 35 Bit, sind beispielsweise 3 Bit für die Angabe des Objekttyps T und 32 Bit für das abzuspeichernde Objekt, die Adresse oder Daten vorgesehen. Die 32 Bit für das Objekt können ein Datenwort, eine Daten- oder Code-Adresse oder eine Speicheradresse mit einer Angabe über den Typ der Speicheradresse sein. Weitere Unterteilungen sind in Figur 3 dargestellt.

In der Figur 4 ist ein Prozessor, insbesondere ein RISC-Pro- zessor dargestellt. In dieser Darstellung sind die wesent- lichen, in einer Pipeline angeordneten Komponenten des RISC- Prozessors ein Sequenz-Controler SC, ein Instruction-Decoder ID, eine Register-Read-Einheit RR, eine Execute-Einheit E, eine Data-Transfer-Einheit DT und eine Register-Write-Einheit RW. Daten werden entweder von einer externen Speichereinheit M über die Data-Transfer-Einheit DT ein- oder ausgelesen. Da- ten, die für den laufenden Verarbeitungsprozeß von Bedeutung sind, werden über die Register-Write-Einheit RW in einem Re- gister-File RF abgelegt und nach Bedarf wieder durch die Re- gister-Read-Einheit RR gelesen. In der Execute Einheit E wer- den logische und arithmetische Befehle ausgeführt.

In Figur 5 ist der RISC-Prozessor mit mindestens einer eine Datentypkonvertierung ausführenden Datentyp-Konvertierungs- einheit TC ausgebildet. Diese Datentyp-Konvertierungseinheit kann beispielsweise vor und nach der Execute-Einheit E oder zwischen der externen Speichereinheit M und der Data-Trans-

fereinheit DT angeordnet sein. Die Datentyp-Konvertierungs- einheit kann ebenso zwischen der Register-Write-Einheit RW und dem Register-File RF und zwischen dem Register-File RF und der Register-Read-Einheit RR angeordnet werden, um eine notwendig werdende Datenkonvertierung durchzuführen. Die ge- zeigte Anordnung mit einer Datentyp-Konvertierungseinheit TC in der Datenpipeline des RISC-Prozessors bringt den Vorteil mit sich, daB die Taktfrequenz der Pipeline unverändert bleibt.

In der vorliegenden Erfindung wird die Objektadresse OA in einen ersten und zweiten Bereich unterteilt. Aus dem ersten Bereich ermittelt die Datentyp-Konvertierungseinheit TC den Datentyp T und aus dem zweiten Bereich die physikalische Adresse SA.

Bei einem Speicherzugriff wird eine Adressenberechnung von indizierten Load- und Store-Befehlen mit Hilfe des Objekttyps ein Adreßoffset entsprechend der Objektgröße für die physika- lische Adresse SA ermittelt.

Bei einem Load-Befehl ist die Speicheradresse des Objektes bekannt. Das Objekt wird mit der Angabe des Typs in einem Re- gister des Prozessors abgelegt.

Bei einem Store-Befehl werden die zu speichernden Daten und der dazugehörige Objekttyp aus den Register entnommen, in den Objekttyp der Zieladresse umgewandelt und unter der Ziela- dresse abgelegt.

Execute-Befehle enthalten neben den Registernummern von Quell- und Ziel-Registern auch den zugehörigen Objekttyp für das Zielregister. Der Objekttyp der Operation wird vom Ob- jekttyp des Zielregisters abgeleitet. Eine Verarbeitungsein- heit in der Execute-Einheit E für beispielsweise eine arith- metische Operation wird anhand des Objekttyps ausgewählt. Da vor einer arithmetischen Operation die Objekttypen der Quell-

und Ziel-Register bekannt sind, kann eine Datentypumwandlung entsprechend vorgenommen werden. Vor einer Operation werden die Quell-Daten in einen Datentyp umgewandelt, der von einer Execute-Einheit E eines RISC-Prozessors verarbeitbar ist.

Nach einer Operation kann das Ergebnis in den Datentyp eines Zielregisters umgewandelt werden.

Bei einer Multiplikation von einer ersten und zweiten Varia- blen werden durch den Compiler jeweils die physikalische Adresse und der Datentyp generiert. Beim Laden der ersten und zweiten Variablen werden die Datentypen im Register-File RF abgelegt. Der Programmabschnitt - Load Variable 1 - signali- siert dem Prozessor die Größe der ersten Variablen, bei- spielsweise ein 8 Bitwert oder 16 Bitwert. Der Datentyp-Kon- vertierungseinheit TC wird mit dem Datentyp mitgeteilt, ob es sich um eine signed-Integer-Variable oder eine unsigned-Inte- ger-Variable handelt. Nach dem Laden der ersten Variablen werden die zur zweiten Variablen gehörenden Daten geladen.

Nach dem beim Lesen der Daten aus dem Register-File RF die Datentyp-Konvertierungseinheit TC die beiden Datentypen der ersten und zweiten Variablen kennt, werden die Datentypen einander angepaßt und die eigentliche Operation, wie bei- spielsweise eine Multiplikation in der nachgeordneten Execute-Einheit E ausgeführt.

Die Datentyp-Konvertierungseinheit TC kann nach der Execute- Einheit E in die Datenpipeline des RISC-Prozessors an ver- schiedenen Stellen eingeführt werden. Ein Fehlen der Daten- typ-Konvertierungseinheit TC nach der Execute-Einheit E hat zur Folge, daß die Ergebnisdaten, die in der Execute-Einheit E gebildet wurden, zusammen mit einem sich aus der jeweiligen Operation ergebenden Datentyp im Register-File RF abgelegt werden.

Bei einem Store-Befehl werden sowohl die Daten als auch der jeweilige Datentyp wieder aus dem Register-File RF ausgelesen und vor der Execute-Einheit E einer Datentyp-Konvertierungs-

einheit TC zugeführt. Dort kann die Datentyp-Umwandlung ent- sprechend dem Datentyp der Zieladresse erfolgen.

Bei einer indizierten Adressierung braucht der Datentyp-Kon- vertierungseinheit TC nur der einfache Index mitgeteilt zu werden, und der Prozessor kann sich anhand des Datentyps der Adresse den Byte-Offset errechnen. So ist beispielsweise bei einem normalen Integer-Wert, der eine Länge von 2 Byte auf- weist, bekannt, daß der Index entsprechend verdoppelt werden muß und zur physikalischen Adresse dazu addiert werden muß.

Dies bringt den Vorteil mit sich, daß zeitaufwendige Umrech- nungen zur Ermittlung der Adreß-Indizes entfallen.

Ein weiterer Vorteil der indizierten Adreßberechnung liegt darin, daß mit ein und demselben Programmcode eine Tabelle von Daten mit short Integer-Werten oder long Integer-Werten oder normalen Integer-Werten bearbeitet werden kann. Der Pro- grammcode braucht dabei die genannten Datentypen nicht zu un- terscheiden, da der Prozessor sich seine Adressen anhand der Datentypen selbst berechnet.