DE10065114B4 - Verfahren und Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor - Google Patents

Verfahren und Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor Download PDF

Info

Publication number
DE10065114B4
DE10065114B4 DE10065114A DE10065114A DE10065114B4 DE 10065114 B4 DE10065114 B4 DE 10065114B4 DE 10065114 A DE10065114 A DE 10065114A DE 10065114 A DE10065114 A DE 10065114A DE 10065114 B4 DE10065114 B4 DE 10065114B4
Authority
DE
Germany
Prior art keywords
word
instruction
complex
instruction word
sequence
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
DE10065114A
Other languages
English (en)
Other versions
DE10065114A1 (de
Inventor
Matthias Dipl.-Ing. Weiß
Gerhard Prof. Dr.-Ing. Fettweis
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.)
NXP BV
Original Assignee
Systemonic AG
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 Systemonic AG filed Critical Systemonic AG
Priority to DE10065114A priority Critical patent/DE10065114B4/de
Publication of DE10065114A1 publication Critical patent/DE10065114A1/de
Application granted granted Critical
Publication of DE10065114B4 publication Critical patent/DE10065114B4/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros

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)

Abstract

Verfahren zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten (12) in einem Prozessor (13), wobei
1.1 in einer Konfigurationsphase bei der Programmübersetzung eine Folge von Primärinstruktionsworten (2) bestehend aus Instruktionswortteilen (4) erzeugt wird, wobei
1.1.1 jedes Instruktionswortteil (4) zur Ansteuerung einer Funktionseinheit (12) bestimmt ist,
1.1.2 die Instruktionswortteile (4) aus einem oder verschiedenen Primärinstruktionsworten (2) der Ausführung eines datenstationären Befehls dienen,
1.2 in der Konfigurationsphase
1.2.1 ein Primärinstruktionswort (2) eine Fraktionierung in Instruktionswortteile (4) erfährt,
1.2.2 als Komplexwort (17) zusammenfassbare Instruktionswortteile (4) aus einem oder verschiedenen Primärinstruktionsworten (2) eine Fraktionierung in eine Komplexwortfolge (18) erfährt,
1.3 in einer Ablaufphase eine Synthese eines Sekundärinstruktionswortes (15), das einem Primärinstruktionswort (2) entspricht, aus den kleineren Wortteilen bestehend aus im Ablaufspeicher abgelegten Instruktionswortteilen (4) und/oder durch Komplexwortzeiger (6) indizierte Komplexwortfolge (18) vorgenommen wird,
1.4 jedes der Instruktionswortteile (4), die der Ausführung des datenstationären Befehles dienen, wird...

Description

  • Die Erfindung betrifft ein Verfahren zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor, bei dem in einer Konfigurationsphase eine aus einer Übersetzung eines Programmcodes stammende Folge von Primärinstruktionsworten erzeugt wird, wobei jedes Primärinstruktionswort aus mehreren Instruktionswortteilen besteht und jedes Instruktionswortteil zur Ansteuerung einer Funktionseinheit bestimmt ist und die Instruktionswortteile aus einem oder verschiedenen Primärinstruktionswörtern der Ausführung eines datenstationären Befehls dienen und wobei jedes Primärinstruktionswort eine Fraktionierung in kleinere Wortteile erfährt und in einer Ablaufphase eine Synthese eines Sekundärinstruktionswortes, das einem Primärinstruktionswort entspricht, aus den kleineren Wortteilen vorgenommen wird. Die Erfindung betrifft ferner eine Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor mit Funktionseinheiten, mit einem diesen Funktionseinheiten zugeordneten Instruktionswortspeicher und einem Instruktionswortspeicher zur Speicherung bereits erzeugter Instruktionsworte mit einer Breite, die mindestens gleich der Bitbreite des Sekundärinstruktionswortes ist, wobei der Instruktionswortpuffer aus einem Speicher mit wahlweisem oder fest programmierten zeilenweisen Zugriff besteht.
  • In der deutschen Patentschrift DE 198 59 389 C1 wird ein der artiges Verfahren und eine Anordnung zur Ansteuerung von Funktionseinheiten in einem Prozessor beschrieben. Durch dieses Verfahren und die zugehörige Anordnung wird unter Beibehaltung einer geringen Programmwortbreite die Arbeitsgeschwindigkeit anwendungsspezifisch erhöht. Allerdings hat es sich gezeigt, dass eine weitere Erhöhung der Arbeitsgeschwindigkeit möglich ist. Einige der zu verarbeitenden Befehle sind nämlich datenstationär. Datenstationär bedeutet in diesem Falle, dass einem Befehl keine eindeutige Aussage darüber zu entnehmen ist, auf welchem Wege ein Prozessor den Befehl realisiert, insbesondere wie viele Schritte zur Ausführung des Befehles erforderlich sind.
  • Beim Stand der Technik sind damit die unterschiedlichen Steuerungen der Operationen in den Datenpfaden der Prozessoren bekannt, die einerseits in datenstationär oder anderseits in zeitstationär codierenden Computer Architekturen angewendet werden und deren zugehörigen Befehle auch als „datenstationäre Befehle" bzw. „zeitstationäre Befehle" bezeichnet werden (PROCEEDINGS OF IEEE, March 1997 „Embedded Software in Real-Time Signal Processing Systems: Design Technologies" Gert Goosens u.a., Seite 439).
  • Bei der Ausführung eines datenstationären Befehles werden verschiedene Schritte in mehreren Takte ausgeführt. Jeder dieser Schritte wird durch ein Instruktionswortteil in je einem Instruktionswort einer Folge von Instruktionsworten realisiert, indem jedes Instruktionswortteil eine Funktionseinheit zu einer bestimmten, einen Teilschritt der Befehlsausführung realisierenden Handlung veranlaßt.
  • Jedes Instruktionswort muss nach dem Stand der Technik über die Folge von Programmwörtern neu zusammengesetzt werden. Auch bei gleichen Befehlsabläufen ist es erforderlich, den Befehlsteilschritten entsprechende Instruktionswörter zu erzeugen und hierfür die Programmwörter bereitzustellen. Dies ist auch bei gleichen Befehlen erforderlich, d.h. für gleiche Befehlsfolgen sind immer wieder neue, wenn auch gleiche Programmwortfolgen, erforderlich. Hieraus entsteht ein hoher Speicheraufwand und eine längere Verarbeitungszeit.
  • Es ist damit Aufgabe der Erfindung, den Speicheraufwand zu verringern und die Arbeitsgeschwindigkeit zu erhöhen.
  • Diese Aufgabe wird verfahrensseitig durch die kennzeichnenden Merkmale des Anspruchs 1 und anordnungsseitig durch das kennzeichnende Merkmal des Anspruchs 3 in Verbindung mit den entsprechenden Merkmalen des Standes der Technik gelöst.
  • Eine besondere Ausgestaltung des erfindungsgemäßen Verfahrens geht aus Anspruch 2 hervor,
  • Insbesondere wird es durch die Erfindung möglich, die Befehlsbearbeitung von den am häufigsten auftretenden Befehlen, die immer mit den gleichen Hardware-Komponenten auf immer den gleichen Wegen ausgeführt werden, mit den entsprechenden Instruktionswortteilen zu beschreiben, die in der Komplexwortfolge gespeichert werden. Tritt ein solcher Befehl auf, kann zur Befehlsrealisierung auf den Inhalt der Komplexworttabelle zurückgegriffen werden. Die besondere Behandlung dieses immer wiederkehrenden Befehls als ganz normaler (variabler) Befehl kann entfallen, weshalb der Programmwortspeicher entlastet und die Arbeitsgeschwindigkeit erhöht werden kann.
  • Die Erfindung soll nachfolgend anhand eines Ausführungsbeispieles näher erläutert werden. Die zugehörige Zeichnungsfigur zeigt das Prinzip der erfindungsgemäßen Komplexwortverarbeitung.
  • Bei dem in der Zeichnungsfigur dargestellten Verfahren zur Ansteuerung von Funktionseinheiten 12 in einem Prozessor 13 wird entsprechend dem Stand der Technik und somit gemäß des deutschen Patentes DE 198 59 389 C1 aus einem Programmcode 1 mittels einer Übersetzung in einer Konfigurationsphase eine Folge von Primärinstruktionsworten 2 aus mehreren Instruktionswortteilen 4 erzeugt. Weiterhin wird die Folge von Primärinstruktionsworten 2 in der Programmworterzeugung 8 komprimiert und als Folge von zugehörigen Programmworten in einem Ablaufspeicher 9 gespeichert.
  • Ebenfalls innerhalb der Konfigurationsphase werden die Instruktionswortteile 4, die zur Ausführung eines datenstationären Befehles dienen, in einer Komplexwortfolge 18 zusammengefaßt und in einer durch den Komplexwortzeiger 6 indizierten Zeile der Komplexworttabelle 5 gespeichert.
  • Bei einer Ablaufphase werden im Ablaufspeicher 9 auftretende Komplexwortzeiger 6 erkannt und geben mit ihrem enthaltenen Index die Zeile der Komplexworttabelle 5 zum Auslesen an, in der die zugeordnete Komplexwortfolge 18 abgelegt wurde.
  • Die dort abgelegte Komplexwortfolge 18 wird ausgelesen und die in ihr enthaltenen Komplexworte 17 werden durch die einzelnen komplexwortinternen Vorgaben in die entsprechend Zeile und Spalte des Sekundärinstruktionswortspeichers 7 parallel eingespeichert.
  • Entsprechend der eingestellten Sekundärinstruktionswort-Speicherabfolge 16 wird einerseits das aktuelle Sekundärinstruktionswort 15 in einen Instruktionswortausgabespeichers 11 übertragen. Dessen Ausgabe löst die zur Verarbeitung an die entsprechenden Funktionseinheiten 12 des Prozessors 13 erforderlichen Funktionen aus.
  • Anderseits wird das aktuelle Sekundärinstruktionswort 15 in einer Sekundärinstruktionsworterzeugung 10 zusammen mit einem neuen Programmwort verarbeitet, damit an ihrem Ausgang ein weiteres Sekundärinstruktionswort 15 zur Einspeicherung in den Sekundärinstruktionswortspeicher 7 bereitstellt wird.
  • 1
    Programmcode
    2
    Primärinstruktionswort
    3
    Instruktionswortspeicher
    4
    Instruktionswortteil
    5
    Komplexworttabelle
    6
    Komplexwortzeiger
    7
    Sekundärinstruktionswortspeicher
    8
    Programmworterzeugung
    9
    Ablaufspeicher
    10
    Sekundärinstruktionsworterzeugung
    11
    Instruktionswortausgabespeicher
    12
    Funktionseinheit
    13
    Prozessor
    15
    Sekundärinstruktionswort
    16
    Sekundärinstruktionswort-Speicherabfolge
    17
    Komplexwort
    18
    Komplexwortfolge

Claims (3)

  1. Verfahren zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten (12) in einem Prozessor (13), wobei 1.1 in einer Konfigurationsphase bei der Programmübersetzung eine Folge von Primärinstruktionsworten (2) bestehend aus Instruktionswortteilen (4) erzeugt wird, wobei 1.1.1 jedes Instruktionswortteil (4) zur Ansteuerung einer Funktionseinheit (12) bestimmt ist, 1.1.2 die Instruktionswortteile (4) aus einem oder verschiedenen Primärinstruktionsworten (2) der Ausführung eines datenstationären Befehls dienen, 1.2 in der Konfigurationsphase 1.2.1 ein Primärinstruktionswort (2) eine Fraktionierung in Instruktionswortteile (4) erfährt, 1.2.2 als Komplexwort (17) zusammenfassbare Instruktionswortteile (4) aus einem oder verschiedenen Primärinstruktionsworten (2) eine Fraktionierung in eine Komplexwortfolge (18) erfährt, 1.3 in einer Ablaufphase eine Synthese eines Sekundärinstruktionswortes (15), das einem Primärinstruktionswort (2) entspricht, aus den kleineren Wortteilen bestehend aus im Ablaufspeicher abgelegten Instruktionswortteilen (4) und/oder durch Komplexwortzeiger (6) indizierte Komplexwortfolge (18) vorgenommen wird, 1.4 jedes der Instruktionswortteile (4), die der Ausführung des datenstationären Befehles dienen, wird 1.4.1 als Komplexwort (17) in einer Komplexwortfolge (18) zusammengefaßt und 1.4.2 in einer durch einen Komplexwortzeiger (6) indizierten Zeile einer Komplexworttabelle (5) gespeichert, 1.5 der auftretende, zugeordnete Komplexwortzeiger (6) in einem Ablaufspeicher (9) wird bei der Synthese von Sekundärinstruktionsworten (15), die eine zur Ausführung des datenstationären Befehles gehörende Folge von Instruktionswortteilen (4) zu beinhalten hat, erkannt, 1.6 in der durch den Komplexwortzeiger (6) indizierten Zeile der Komplexworttabelle (5) wird die dort abgelegte Komplexwortfolge (18) ausgelesen, 1.7 die in der ausgelesenen Komplexwortfolge (18) enthaltenen Komplexworte (17) werden durch die einzelnen komplexwortinternen Vorgaben in die entsprechende Zeile und Spalte des Sekundärinstruktionswortspeichers (7) in Abhängigkeit vom aktuellen Sekundärinstruktionswort (15) parallel eingespeichert, 1.8 das aktuelle Sekundärinstruktionswort (15) entsprechend einer wahlweisen Sekundärinstruktionswort-Speicherabfolge (16) 1.8.1 gelangt einerseits mittels einer Instruktionswortausgabe (11) zur Verarbeitung an die entsprechende Funktionseinheit (12) des Prozessors (13) 1.8.2 und wird anderseits in einer Sekundärinstruktionsworterzeugung (10) verarbeitet, die an ihrem Ausgang ein weiteres Sekundärinstruktionswort (15) zur Einspeicherung in den Sekundärinstruktionswortspeicher (7) bereitstellt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine fest programmierte Sekundärinstruktionswort-Speicherabfolge (16) eingestellt wird.
  3. Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor mit Funktionseinheiten zur Durchführung des Verfahrens nach Anspruch 1 oder 2, mit einem diesen Funktionseinheiten zugeordneten Instruktionswortspeicher und einem Instruktionswortspeicher zur Speicherung bereits erzeugter Instruktionsworte mit einer Breite, die mindestens gleich der Bitbreite des Sekundärinstruktionswortes ist, wobei der Instruktionswortpuffer als Sekundärinstruktionswortspeicher aus einem Speicher mit wahlweisem oder fest programmierten zeilenweisen Zugriff besteht, dadurch gekennzeichnet, dass dem Sekundärinstruktionswortspeicher (7) in Form eines Matrixregisterfiles eine nur lesbare oder schreib- und lesbare Komplexworttabelle (5) zugeordnet ist.
DE10065114A 1999-12-30 2000-12-28 Verfahren und Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor Expired - Fee Related DE10065114B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10065114A DE10065114B4 (de) 1999-12-30 2000-12-28 Verfahren und Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19964028 1999-12-30
DE19964028.9 1999-12-30
DE10065114A DE10065114B4 (de) 1999-12-30 2000-12-28 Verfahren und Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor

Publications (2)

Publication Number Publication Date
DE10065114A1 DE10065114A1 (de) 2001-07-05
DE10065114B4 true DE10065114B4 (de) 2005-02-17

Family

ID=7935159

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10065114A Expired - Fee Related DE10065114B4 (de) 1999-12-30 2000-12-28 Verfahren und Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor

Country Status (2)

Country Link
US (1) US20030159127A1 (de)
DE (1) DE10065114B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10136577A1 (de) * 2001-07-27 2003-02-13 Systemonic Ag Verfahren zur Abarbeitung eines Programmcodes sowie eine Prozessoranordnung zur Ausführung des Verfahrens
US10564942B2 (en) * 2017-11-17 2020-02-18 International Business Machines Corporation Compiler for a processor comprising primary and non-primary functional units

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19859389C1 (de) * 1998-12-22 2000-07-06 Systemonic Ag Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19859389C1 (de) * 1998-12-22 2000-07-06 Systemonic Ag Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens

Also Published As

Publication number Publication date
US20030159127A1 (en) 2003-08-21
DE10065114A1 (de) 2001-07-05

Similar Documents

Publication Publication Date Title
DE1499193C3 (de) Speicher-Adressierschaltung
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2411963B2 (de) Datenverarbeitungsanlage
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE69804562T2 (de) Prozessarchitektur und Verfahren zur Durchführung von verschiedenen Adressierungsarten
DE2245284A1 (de) Datenverarbeitungsanlage
DE10065114B4 (de) Verfahren und Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor
DE2412634C3 (de) Prozessor für eine Kleinstrechenanlage
CH632349A5 (de) Einrichtung zur mikrobefehlssteuerung.
EP1145113B1 (de) Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors
DE1774896C2 (de) Datenverarbeitungsanlage mit einem Rechenwerk, einem Hauptspeicher und einem Aktivspeicher
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen
DE10107102B4 (de) Verfahren und Anordnung zur Instruktionswortgenerierung bei der Ansteuerung von Funktionseinheiten in einem Prozessor
DE69815656T2 (de) Rechnersystem mit einem mehrfach Sprungbefehlzeiger und -Verfahren
DE2601379C3 (de) Schaltungsanordnung zum Umwandeln virtueller Adressen in reelle Adressen
DE1916377A1 (de) Verfahren und Anordnung zur Verschiebung von Datenfeldern
DE2502005C2 (de) Schaltungsanordnung zur Zuordnung von Adressen zu Operationen zwecks Ausführung von Befehlen in einer Datenverarbeitungseinrichtung
DE2314070C3 (de) Verfahren und Schaltungsanordnung zum Erstellen der Einträge eines Kettungslistenspeichers in einem Verfahren und einer Schaltungsanordnung zum Durchfuhren von sequentiell ablaufenden Eingabe-/Ausgabeoperationen bei einer mit virtueller Adressierung arbeitenden Datenverarbeitungsanlage
DE1195972B (de) Anordnung zum Durchfuehren einer Verzweigung bei einer programmgesteuerten Rechenmaschine
EP0629944A1 (de) Datenverarbeitungsmaschine
DE10128752A1 (de) Verfahren zur Ablage von Daten in einen Speicherbaustein
DE2451984A1 (de) Datenverarbeitungssystem
DE2835261C2 (de) Datenverarbeitungseinheit
DE2528164A1 (de) Adressieranordnung fuer eine datenverarbeitungsanlage mit programmspeicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NXP SEMICONDUCTORS GERMANY GMBH, 22529 HAMBURG, DE

8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110701