EP0454985B1

Scalable compound instruction set machine architecture

Abstract

This record has no abstract on file.

EP0454985B1, drawing sheet 1
Sheet 1 of 20

Term

Term ended

Expired 20 March 2011, 15.5 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

19 claims: 19 independent, 0 dependent

  1. 1
    Method of obtaining parallel execution of existing instructions in a particular configuration of a data processing system, including:allocating certain of the existing instructions into multiple categories;comparing the categories of adjacent existing instructions in an instruction stream to determine whether the adjacent existing instructions are capable of parallel execution in the particular configuration of a data processing system, andidentifying with a compounding indicator those adjacent existing instructions which are determined by said comparing step to be capable of parallel execution,characterized in thatthe comparing step includes comparing a first existing instruction with a second adjacent following instruction for possible compounding with each other, and then comparing the second instruction with a third adjacent following instruction for possible compounding with each other, to identify multiple compound instructions identified by multiple compound indicators, respectively. Verfahren zum Erhalten einer parallelen Ausführung vorhandener Befehle in einer speziellen Konfiguration eines Datenverarbeitungssystems, enthaltend: Einordnen bestimmter vorhandener Befehle in eine Vielzahl von Kategorien;Vergleichen der Kategorien benachbarter, vorhandener Befehle innerhalb einer Befehlsfolge, um zu bestimmen, ob die benachbarten, vorhandenen Befehle in der speziellen Konfiguration eines Datenverarbeitungssystems die Möglichkeit zur parallelen Ausführung bieten;undKennzeichnen solcher benachbarter, vorhandener Befehle, die durch den Vergleichsschritt als parallel ausführbar erkannt worden sind, durch einen Verbindungsindikator, dadurch gekennzeichnet, daß der Vergleichsschritt enthält: das Vergleichen eines ersten vorhandenen Befehls mit einem zweiten benachbarten, folgenden Befehl auf eine mögliche Verbindung miteinander, und dann das Vergleichen des zweiten Befehls mit einem dritten benachbarten, folgenden Befehl auf eine mögliche Verbindung miteinander, um eine Vielzahl Verbundbefehle zu identifizieren, die entsprechend durch eine Vielzahl von Verbindungsindikatoren gekennzeichnet werden. méthode pour obtenir l'exécution en parallèle d'instructions existantes dans une configuration particulière de système de traitement des données, comprenant les phases suivantes: attribuer certaines des instructions existantes à des catégories multiples;comparer les catégories des instructions adjacentes existantes dans un flot d'instructions pour déterminer si les instructions adjacentes existantes peuvent être exécutées en parallèle dans la configuration particulière du système de traitement des données, etidentifier à l'aide d'un indicateur de combinaison celles des instructions adjacentes existantes qui sont déterminées par ladite phase de comparaison comme pouvant être exécutées en parallèle, caractérisé en ce quela phase de comparaison comprend la comparaison d'une première instruction existante et d'une deuxième instruction adjacente qui la suit en vue d'une éventuelle combinaison entre les deux, et ensuite la comparaison de la deuxième instruction et d'une troisième instruction adjacente qui la suit en vue d'une éventuelle combinaison entre les deux, pour identifier les instructions composées multiples indiquées respectivement par des indicateurs composés multiples.
  2. 2
    Method according to claim 1, characterized in that said allocation and comparing steps are performed prior to the time the existing instructions are fetched for execution. Méthode selon la revendication 1, caractérisée en ce que les dites phases d'attribution et de comparaison sont exécutées avant le moment où les instructions existantes sont extraites pour leur exécution. Verfahren gemäß Anspruch 1, dadurch gekennzeichnet, daß die Einordnungs- und Vergleichsschritte vor dem Zeitpunkt, an dem die vorhandenen Befehle zur Ausführung abgerufen werden, ausgeführt werden.
  3. 3
    Method according to claim 1 or 2, characterized in that said allocation step includes allocating certain instructions into at least one category such that said comparing step causes said identifying step to identify with a compounding indicator at least two adjacent existing instructions from said at least one category for parallel execution. Méthode selon la revendication 1 ou 2, caractérisée en ce que ladite phases d'attribution comprend l'attribution de certaines instructions dans au moins une catégorie de sorte que ladite comparaison entraîne le fait que ladite phases d'identification identifie avec un indicateur de combinaison au moins deux instructions adjacentes existantes de ladite catégorie (ou des dites catégories) pour une exécution en parallèle. Verfahren gemäß Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Einordnungsschritt die Einordnung verschiedener Befehle in mindestens eine Kategorie enthält, so daß der Vergleichsschritt bewirkt, daß der Identifikationsschritt mindestens zwei benachbarte, vorhandene Befehle aus der mindestens einen Kategorie zur parallelen Ausführung mit einem Verbindungsindikator kennzeichnet.
  4. 4
    Method according to anyone of claims 1 to 3, characterized in that said allocation step includes allocating certain instructions into at least two different nonoverlapping categories such that said comparing step causes said identifying step to identify with a compounding indicator at least two adjacent existing instructions from said at least two categories, respectively, for parallel execution. Méthode selon l'une quelconque des revendications 1 à 3, caractérisée en ce que ladite phase d'attribution comprend l'attribution de certaines instructions à au moins deux catégories différentes qui ne se chevauchent pas de sorte que ladite phases de comparaison entraîne le fait que ladite phases d'identification identifie avec un indicateur de combinaison respectivement au moins deux instructions adjacentes existantes des deux dites catégories (au moins), pour une exécution en parallèle. Verfahren gemäß einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Einordnungsschritt die Einordnung verschiedener Befehle in mindestens zwei verschiedene, nicht überlappende Kategorien enthält, so daß der Vergleichsschritt bewirkt, daß der Identifikationsschritt mindestens zwei benachbarte, vorhandene Befehle aus den mindestens zwei Kategorien zur parallelen Ausführung entsprechend mit einem Verbindungsindikator kennzeichnet .
  5. 5
    Method according to anyone of claims 1 to 4, characterized in that identifying step includes leaving the object code of the existing instructions in its original form for execution singly or for execution in parallel with another instruction. Méthode selon l'une quelconque des revendications 1 à 4, caractérisée en ce que ladite phases d'identification comprend de laisser le code objet des instructions existantes dans sa forme originale pour une exécution simple ou une exécution en parallèle avec une autre instruction. Verfahren gemäß einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß der Identifikationsschritt den Objektcode der vorhandenen Befehle in seiner ursprünglichen Form beläßt, so daß dieser entweder einzeln oder parallel mit anderen Befehlen ausgeführt werden kann.
  6. 6
    Method according to anyone of claims 1 to 5, characterized in that said allocation step includes taking into account data dependent interlocks between instructions as well as the existence of related interlock collapsing functional units in the particular configuration of the data processing system. Méthode selon l'une quelconque des revendications 1 à 5, caractérisée en ce que ladite phase d'attribution comprend la prise en considération des blocages dépendant des données ainsi que de l'existence d'unités fonctionnelles de blocage non résistant connexes dans la configuration particulière du système de traitement des données. Verfahren gemäß einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß der Einordnungsschritt sowohl datenabhängige Verriegelungen zwischen Befehlen als auch das Vorhandensein von entsprechenden Funktionseinheiten zur Auflösung von Verriegelungen in der speziellen Konfiguration des Datenverarbeitungssystems berücksichtigt.
  7. 7
    Method according to anyone of claims 1 to 6, characterized in that the allocation step includes taking into account hardware dependent interlocks between instructions as well as the existence of related interlock collapsing functional units in the particular configuration of the data processing system. Méthode selon l'une quelconque des revendications 1 à 6, caractérisée en ce que la phases d'attribution comprend la prise en considération des blocages dépendant du matériel entre les instructions ainsi que de l'existence d'unités fonctionnelles de blocage non résistant connexes dans la configuration particulière du système de traitement des données. Verfahren gemäß einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß der Einordnungsschritt sowohl hardwareabhängige Verriegelungen zwischen Befehlen als auch das Vorhandensein von entsprechenden Funktionseinheiten zur Auflösung von Verriegelungen in der speziellen Konfiguration des Datenverarbeitungssystems berücksichtigt.
  8. 8
    Method according to anyone of claims 1 to 7, characterized in that the comparing step includes the determination of a sequence to optimize execution time for executing a given portion of an instruction stream. Méthode selon l'une quelconque des revendications 1 à 7, caractérisée en ce que la phase de comparaison comprend la détermination d'une suite pour optimiser le temps d'exécution pour l'exécution d'une partie donnée d'un flot d'instructions. Verfahren gemäß einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß der Vergleichsschritt die Bestimmung einer Folge zur Optimierung der Verarbeitungszeit bei der Ausführung eines gegebenen Abschnitts einer Befehlsfolge enthält.
  9. 9
    Method according to anyone of claims 1 to 8, characterized in that the comparing step to determine whether the adjacent existing instructions are capable of parallel execution is performed by hardware. Méthode selon l'une quelconque des revendications 1 à 8, caractérisée en ce que la phase de comparaison pour déterminer si les instructions adjacentes existantes peuvent être exécutées en parallèle est réalisée par le matériel. Verfahren gemäß einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß der Vergleichsschritt bestimmt, ob die benachbarten, vorhandenen Befehle durch die Hardware parallel ausgeführt werden können.
  10. 10
    System for processing a sequence of instructions taken from an existing set of machine instructions in order to prepare the sequence for parallel execution by a particular computer configuration, including:a set of rules based on the particular computer configuration indicating certain machine instructions which are capable of parallel execution with other machine instructions;compounding means (20) for pre- processing prior to instruction fetch a binary instruction stream containing a sequence of existing instructions, said compounding means (20) having access to said set of rules for identifying adjacent instructions capable of parallel execution in the particular computer configuration and for producing a compounded sequence of instructions having a control field identifying individual adjacent instructions capable of parallel execution and which together form a compound instruction, characterized in thatthe set of rules includes comparing a first existing instruction with a second adjacent following instruction for possible compounding with each other, and then comparing the second instruction with a third adjacent following instruction for possible compounding with each other, to identify multiple compound instructions identified by multiple compound indicators, respectively. System zur Verarbeitung einer Folge von Befehlen, die einem vorhandenen Satz Maschinenbefehle entnommen werden, um für die parallele Ausführung durch eine spezielle Computerkonfiguration eine Folge vorzubereiten;enthaltend: einen Satz von Regeln, die auf der speziellen Computerkonfiguration basieren und bestimmte Maschinenbefehle anzeigen, welche zusammen mit anderen Maschinenbefehlen parallel ausgeführt werden können;Verbindungsmittel (20) zur Vorverarbeitung einer binären Befehlsfolge, die eine Folge vorhandener Befehle enthält, vor dem Befehlsabruf, wobei das Verbindungsmittel (20) Zugriff auf den Satz Regeln hat, um benachbarte Befehle zu identifizieren, die in der speziellen Computerkonfiguration parallel ausgeführt werden können, und um eine verbundene Folge von Befehlen zu erzeugen, die ein Steuerfeld besitzen, das die einzelnen, benachbarten Befehle kennzeichnet, die parallel ausgeführt werden können und die zusammen einen Verbundbefehl bilden, dadurch gekennzeichnet, daßder Satz Regeln das Vergleichen eines ersten vorhandenen Befehls mit einem zweiten benachbarten, folgenden Befehl auf eine mögliche Verbindung miteinander, und dann das Vergleichen des zweiten Befehls mit einem dritten benachbarten, folgenden Befehl auf eine mögliche Verbindung miteinander enthält, um eine Vielzahl Verbundbefehle zu identifizieren, die entsprechend durch eine Vielzahl von Verbindungsindikatoren gekennzeichnet werden. Système pour traiter une suite d'instructions prises dans un jeu existant d'instructions machine afin de préparer la suite à une exécution en parallèle par une configuration d'ordinateur particulière, comprenant: un ensemble de règles basées sur la configuration particulière de l'ordinateur indiquant certaines instructions machines qui peuvent être exécutées en parallèle avec d'autres instructions machines;un moyen de combinaison (20) pour un pré-traitement avant l'extraction d'instructions d'un flot d'instructions binaires contenant une suite d'instructions existantes, ledit moyen de combinaison (20) ayant accès au dit ensemble des règles pour identifier les instructions adjacentes qui peuvent être exécutées en parallèle dans la configuration particulière de l'ordinateur et pour créer une suite combinée d'instructions ayant une zone de contrôle identifiant les instructions individuelles adjacentes qui peuvent être exécutées en parallèle et qui forment ensemble une instruction composée, caractérisé en ce quel'ensemble des règles comprend la comparaison d'une première instruction existante avec une deuxième instruction adjacente qui la suit en vue d'une possible combinaison entre les deux, et ensuite la comparaison de la deuxième instruction et d'une troisième instruction adjacente sui la suit en vue d'une possible combinaison entre elles, pour identifier les instructions combinées multiples identifiées respectivement par des indicateurs de combinaison multiple.
  11. 11
    System according to claim 10, characterized in that said compounding means is a software pre-processing program used as part of a compiler or a post-compiler. System gemäß Anspruch 10, dadurch gekennzeichnet, daß das Verbindungsmittel ein Software-Vorverarbeitungsprogramm ist, das als Teil eines Compilers oder eines Post-Compilers verwendet wird. Système selon la revendication 10, caractérisé en ce que ledit moyen de combinaison est un programme de pré-traitement sur logiciel utilisé dans un compilateur ou un post-compilateur.
  12. 12
    System according to claim 10 or 11, characterized in that said compounding means (20) is a hardware pre-processing unit which processes instructions prior to their fetch from a cache buffer. System gemäß Anspruch 10 oder 11, dadurch gekennzeichnet, daß das Verbindungsmittel (20) eine Hardware-Vorverarbeitungseinheit ist, welche Befehle verarbeitet, bevor diese aus einem Cachepuffer abgerufen werden. Système selon la revendication 10 ou 11, caractérisé en ce que ledit moyen de combinaison (20) est une unité de pré-traitement du matériel qui traite les instructions avant qu'elles ne soient extraites d'une mémoire tampon cache.
  13. 13
    System according to anyone of claims 10 to 12, characterized in that said compounding means (20) is capable of producing a compounded sequence of instructions having a control field identifying pairs of adjacent instructions capable of parallel execution. System gemäß einem der Ansprüche 10 bis 12, dadurch gekennzeichnet, daß das Verbindungsmittel (20) in der Lage ist, eine verbundene Folge von Befehlen zu erzeugen, die ein Steuerfeld besitzen, das Paare benachbarter Befehle kennzeichnet, die parallel ausgeführt werden können. Système selon l'une quelconque des revendications 10 à 12, caractérisé en ce que ledit moyen de combinaison (20) peut engendrer une suite combinée d'instructions ayant un champ d contrôle identifiant des paires d'instructions adjacentes qui peuvent être exécutées en parallèle.
  14. 14
    System according to claim 13, characterized in that said compounding means (20) is capable of producing a compounded sequence of instructions having a control field identifying groups of three or more adjacent instructions capable of parallel execution. System gemäß Anspruch 13, dadurch gekennzeichnet, daß das Verbindungsmittel (20) in der Lage ist, eine verbundene Folge von Befehlen zu erzeugen, die ein Steuerfeld besitzen, das Gruppen aus drei oder mehreren benachbarten Befehlen kennzeichnet, die parallel ausgeführt werden können. Système selon la revendication 13, caractérisé en ce que ledit moyen de combinaison (20) peut créer une suite combinée d'instructions ayant une zone de contrôle identifiant des groupes de trois ou plus instructions adjacentes pouvant être exécutées en parallèle.
  15. 15
    System according to anyone of claims 10 to 14, characterized in that said control field comprises at least one identifier bit associated with each compound instruction. System gemäß einem der Ansprüche 10 bis 14, dadurch gekennzeichnet, daß das Steuerfeld mindestens ein Identifikatorbit enthält, das jedem Verbundbefehl zugeordnet ist. Système selon l'une quelconque des revendications 10 à 14, caractérisé en ce que ladite zone de contrôle comprend au moins un bit identificatif associé à chaque instruction combinée.
  16. 16
    System gemäß Anspruch 15, dadurch gekennzeichnet, daß das Steuerfeld einen Identifikatorbitabschnitt sowie einen Steuerbitabschnitt enthält, wobei der Steuerbitabschnitt von dem Identifikatorbitabschnitt verschieden ist. System of claim 15, characterized in that said control field includes an identifier bit portion and a control bit portion different from said identifier bit portion. Système selon la revendication 15, caractérisé en ce que ladite zone de contrôle comprend une partie binaire d'identification et une partie binaire de contrôle qui diffère de ladite partie binaire d'identification.
  17. 17
    System according to anyone of claims 10 to 16, characterized in that said control field comprises at least one identifier bit associated with each individual instruction forming a compound instruction. System gemäß einem der Ansprüche 10 bis 16, dadurch gekennzeichnet, daß das Steuerfeld mindestens ein Identifikatorbit enthält, das jedem einzelnen Befehl, der einen Verbundbefehl bildet, zugeordnet ist. Système selon l'une quelconque des revendications 10 à 16, caractérisé en ce que ladite zone de contrôle comprend au moins un bit identificatif associé à chaque instruction individuelle entrant dans la formation d'une instruction combinée.
  18. 18
    System according to claim 17, characterized in that said control field comprises at least one identifier bit associated with each individual instruction not forming a compound instruction. System gemäß Anspruch 17, dadurch gekennzeichnet, daß das Steuerfeld mindestens ein Identifikatorbit enthält, das jedem einzelnen Befehl, der keinen Verbundbefehl bildet, zugeordnet ist. Système selon la revendication 17, caractérisé en ce que ladite zone de contrôle comprend au moins un bit identificatif associé à chaque instruction individuelle qui ne forme pas une instruction combinée.
  19. 19
    System according to anyone of claims 10 to 18, characterized in that the set of rules is realized in hardware components. System gemäß einem der Ansprüche 10 bis 18, dadurch gekennzeichnet, daß der Satz Regeln in Form von Hardwarekomponenten realisiert ist. Système selon l'une quelconque des revendications 10 à 18, caractérisé en ce que l'ensemble des règles est réalisé dans des composants du matériel.
Independent claims19