FR2742891A1 - Procede pour fournir un ensemble d'instructions a un processeur - Google Patents

Procede pour fournir un ensemble d'instructions a un processeur Download PDF

Info

Publication number
FR2742891A1
FR2742891A1 FR9615720A FR9615720A FR2742891A1 FR 2742891 A1 FR2742891 A1 FR 2742891A1 FR 9615720 A FR9615720 A FR 9615720A FR 9615720 A FR9615720 A FR 9615720A FR 2742891 A1 FR2742891 A1 FR 2742891A1
Authority
FR
France
Prior art keywords
instructions
instruction
program
processor
words
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.)
Granted
Application number
FR9615720A
Other languages
English (en)
Other versions
FR2742891B1 (fr
Inventor
Rebecca Gabzdyl
Brian Mcgovern
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.)
Nokia Oyj
Original Assignee
Nokia Mobile Phones Ltd
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 Nokia Mobile Phones Ltd filed Critical Nokia Mobile Phones Ltd
Publication of FR2742891A1 publication Critical patent/FR2742891A1/fr
Application granted granted Critical
Publication of FR2742891B1 publication Critical patent/FR2742891B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

L'invention se rapporte à un procédé consistant essentiellement à: - écrire un programme de commande d'un processeur de signaux numériques DSP, en utilisant des instructions standard; - établir une liste des instructions utilisées dans le programme; - attribuer un nouveau nom à chacune des instructions utilisées dans le programme de façon à les identifier de manière unique; - réécrire le programme en remplaçant les anciens noms d'instructions par les nouveaux noms d'instructions; - exécuter le programme en utilisant un décodeur recevant les nouveaux mots d'instruction et renvoyant les anciens mots d'instruction correspondants. Le nombre des instructions utilisées dans le programme étant très inférieur au nombre total des instructions possibles, le procédé permet ainsi de réduire la taille du bus d'adresses entre la mémoire de programme et le processeur.

Description

La présente invention concerne un procédé pour
fournir un ensemble d'instructions à un processeur.
Les processeurs universels exécutent des fonctions en réponse à un ensemble d'instructions qui forment un programme. Celui-ci est stocké dans une mémoire de programme. La capacité de la mémoire nécessaire au
stockage du programme est liée à la longueur du mot-
instruction et au nombre des étapes d'instruction du programme. Les instructions présentes dans la mémoire du programme sont utilisées pour produire des signaux de commande parallèles dans une unité de décodage qui commande les opérations exécutées par le processeur. La complexité de la logique nécessaire à la traduction des mots-instructions en commande est liée à la longueur des mots- instructions
entrant dans l'unité de décodage.
Dans le but de rendre optimales les performances d'un processeur en termes de vitesse et de consommation d'énergie, il est souhaitable de fournir au concepteur du logiciel autant d'instructions que possible, lui permettant
d'accéder à la pleine fonctionnalité du processeur.
Si l'on utilise un ensemble de mots-instructions entièrement flexible, spécifiant individuellement chaque fonction que le processeur peut exécuter, le concepteur dispose d'un maximum de liberté pour concevoir la mise en oeuvre optimale d'un algorithme. Un ensemble d'instructions efficace permettant d'accéder totalement à la fonctionnalité d'un processeur qui satisfait les besoins futurs en matière de performances de l'industrie des télécommunications est de loin supérieur à 16 bits, ce qui constitue la norme
courante. Aux présentes fins, on suppose qu'un mot-
instruction de 90 bits convient. Des ensembles d'instruc-
tions encore plus grands peuvent cependant être souhaitables à un certain moment, se traduisant par des mots-instructions encore plus longs. Avec des mots-intructions de 90 bits, la mémoire de programme peut être aussi grande que 90 bits et de l'ordre de 16 bits de long pour tenir compte du programme
2 2742891
devant mettre en oeuvre un algorithme typique de processeur
pour radiotéléphonie.
Cela présente l'inconvénient que, pour des
applications de faible coût, une grande mémoire est néces-
saire pour stocker le programme car les mots-instructions auront 90 bits de long. L'interface entre la mémoire de programme et le décodeur d'instruction doit avoir des interconnexions additionnelles pour permettre la réception
des mots-instructions de 90 bits par l'unité de décodage.
Cela, là encore, augmente la taille et la consommation d'énergie du processeur. Finalement, la logique nécessaire pour mettre en oeuvre l'unité de décodage augmente en proportion à peu près directe avec le nombre des broches d'entrée. Par conséquent, l'unité de décodage est davantage
complexe et donc plus chère.
Dans les articles du commerce alimentés par batterie dans lesquels le coût et la consommation d'énergie sont une préoccupation considérable pour le concepteur, il y a lieu de faire un compromis entre la souplesse de l'ensemble d'instructions et le rendement énergétique et la
longueur des mots-instructions et l'augmentation du coût.
Une solution classique pour résoudre cet antago-
nisme consiste à établir la longueur des mots-instructions en déterminant à l'avance un nombre limité d'instructions
dans lesquelles le concepteur est à même de faire un choix.
Le choix de l'ensemble d'instructions limitées est d'impor-
tance considérable et concernera généralement les instruc-
tions perçues comme étant les plus utiles pour une gamme de
fonctions que le processeur pourrait avoir à exécuter.
Cette solution a l'inconvénient que si l'ensem-
ble d'instructions limitées ne comprend pas une instruction
particulière ou les blocs de construction de cette instruc-
tion, bien que le processeur ait un matériel capable de fonctionner en conformité avec cette instruction, il ne sera pas à même de fonctionner de cette façon. Cela peut conduire
à des compromis de conception qui peuvent réduire l'effica-
cité du dispositif que le processeur entraîne et rendre les performances requises pour le dispositif commandé par le
processeur difficiles à atteindre.
Si l'ensemble d'instructions ne comprend pas une instruction particulière, il peut être encore possible de créer la même instruction en combinant un certain nombre d'autres instructions. Cela se traduira inévitablement par une plus grande consommation d'énergie lors de la fourniture des performances désirées que si l'instruction désirée avait
fait partie de l'ensemble des instructions limitées.
Selon la présente invention, on fournit un procédé pour concevoir un processeur pouvant fonctionner en
réponse à des signaux de commande produits par des program-
mes composés de mots-instructions,- le processeur étant capa-
ble d'exécuter un ensemble de fonctions et de fonctionner pour exécuter chaque fonction de l'ensemble en réponse à un mot respectif de commande, chaque mot de commande ayant une relation réciproque avec un mot-instruction respectif d'un ensemble d'instructions d'origine, le procédé comprenant l'écriture d'un programme pouvant fonctionner pour commander le processeur en utilisant des instructions choisies dans
l'ensemble d'instructions d'origine, la sélection d'un sous-
ensemble de mots-instructions dans l'ensemble d'instructions d'origine comprenant les instructions utilisées dans le programme, le changement de nom des instructions respectives du sous-ensemble et la fourniture d'un moyen pour produire
les mots de commande respectifs ayant une relation réci-
proque avec les mots-instructions du sous-ensemble en réponse aux motsinstructions correspondants ayant changé de nom.
En choisissant l'ensemble d'instructions rédui-
tes que le processeur doit utiliser avec la connaissance du programme avec lequel le processeur fonctionnera, il n'est pas nécessaire de faire un compromis entre la longueur des mots-instruction et les performances. Les performances sont
les mêmes que celles rendues possibles en employant l'ensem-
ble d'instructions d'origine car la sélection des mots pour le programme est faite à partir de cet ensemble. Cependant, la longueur d'un mot peut être aussi courte que possible pour le nombre des mots individuels du programme que le
processeur devra passer.
La longueur réduite d'un mot-instruction permet au décodeur d'instruction d'être plus simple, réduisant le
nombre et le coût des composants et la consommation d'éner-
gie. La mémoire de programme nécessaire au stockage de l'algorithme d'exploitation est également réduite en termes tant de largeur du motinstruction ayant changé de nom qu'en longueur par suite de l'expression plus succincte de la
fonctionnalité du processeur.
Dès que le décodeur d'instruction a été conçu, il n'y a aucune opportunité à ajouter des instructions supplémentaires au processeur. Si les mots de code qui représentent une instruction, ou les blocs de construction d'une instruction, n'existent pas, une fonction ne peut être exécutée. Pour donner davantage de souplesse au concepteur dès que le processeur a été développé, le sous-ensemble de mots-instructions peut comprendre des mots-instructions
additionnels correspondant aux mots de commande potentiel-
lement utiles. Ces instructions additionnelles peuvent comprendre celles qui sont utiles pour corriger les erreurs
typiques du programme ou peuvent inclure certaines instruc-
tions de base afin de permettre le support d'autres
fonctions.
Dès que le nombre des mots-instructions individuels du programme a été déterminé, la longueur de mot la plus courte permettant de libeller individuellement ces instructions peut être établie. Il est probable qu'il y aura
des mots de réserve dès que le sous-ensemble de mots-
instructions a changé de nom en utilisant la longueur de mot la plus courte possible. Le nombre des mots qui ne sont pas
nécessaires pour identifier de manière unique le sous-
ensemble des mots-instructions peut être suffisamment grand pour que ceux-ci puissent être utilisés pour supporter les instructions additionnelles. Cependant, cette redondance pourrait être exploitée pour simplifier la logique des
2742891
moyens de production des mots de commande respectifs. Un mot-instruction ayant changé de nom, plus long que le minimum nécessaire à l'identification de manière unique des mots-instructions respectifs du sous-ensemble peut être utilisé pour établir une certaine redondance et permettre de
réduire la complexité de la logique.
Le procédé selon la présente invention présente
l'avantage que le programmeur peut atteindre des perfor-
mances optimales car il peut utiliser un ensemble d'instruc-
tions totalement flexible. En théorie, il n'y a aucune limite au nombre des instructions qui peuvent être fournies dans le premier ensemble d'instructions autres que les fonctions que le processeur peut exécuter. Le facteur de limitation de la largeur de la mémoire de programme et de la
taille du décodeur d'instruction est le nombre d'instruc-
tions uniques utilisées pour la mise en oeuvre de l'algorithme. La longueur ainsi que la largeur de la mémoire de programme et la taille du décodeur d'instruction sont rendues minimales, présentant des avantages en matière de coût et de puissance. Le procédé peut être automatisé dès que le programme a été déterminé de sorte qu'il peut être intégré dans des procédés existants et peut être facilement répété pour une série de programmes différents afin de
donner à une série de processeurs des ensembles d'instruc-
tions optimisées, le cas échéant.
La mémoire réduite et le décodeur d'instruction de taille réduite permettent de diminuer la consommation
d'énergie du dispositif pour des performances données.
Pour des programmes devant utiliser un grand nombre d'instructions communes, un seul processeur pourrait être mis au point pour faire passer un certain nombre de programmes différents. Le sous-ensemble de mots-instructions pourrait alors être déterminé en utilisant plusieurs
programmes devant être utilisés pour plusieurs applications.
La longueur de mot nécessaire à supporter les fonctions respectives devra être prise en considération et tout cela
devra faire contrepoids aux avantages de la banalisation.
Cependant, les avantages de la présente inventions seront conservés car le sous-ensemble d'instructions pouvant être exploité pour commander le processeur sera déterminé avec la pleine connaissance des programmes que le processeur devra
faire passer.
La présente invention sera mieux comprise lors
de la description suivante faite en liaison avec les dessins
annexés dans lesquels: La figure 1 est un schéma sous forme de blocs d'une mémoire centrale de processeur; La figure 2 est un organigramme de développement de logiciel; et La figure 3 est un organigramme du processus de tassement de mémoire morte d'un mode de réalisation de l'invention. L'une des utilisations des procédés selon la présente invention concerne la conception d'un Processeur de Signal Numérique (PSN). On décrira l'invention en liaison avec la réalisation d'un PSN pour les algorithmes d'une
bande de base d'un radiotéléphone.
La figure 1 représente une vue d'ensemble de l'architecture d'un PSN. Un programme écrit par des ingénieurs PSN est stocké dans une mémoire morte programmable 10. Une adresse de programme est généralement spécifiée sur un bus d'adresses de programme (BAP) 11 de 16
bits par une unité 12 d'extraction et de décodage (UED).
L'instruction à cet emplacement de la mémoire de programme est chargée dans le décodeur d'instruction 13 de
l'unité UED 12 via le bus des données de programme (BDP) 14.
Dans un dispositif PSN de conception classique, entièrement flexible (c'est-à-dire qui supporte un ensemble complet d'instructions), le BDP 14 peut avoir une largeur, par
exemple, de 90 bits.
Les instructions chargées dans le décodeur d'instruction 13 sont décodées pour produire des mots de
commande, c'est-à-dire les signaux nécessaires pour comman-
7 2742891
der l'unité de traitement de données 15 (UTD), l'unité de génération d'adresses de mémoire des données (UGAM) 16 qui adresse les contenus des mémoires de données 17, l'UED ou
des accès de bus pour fournir des données pour le programme.
Un PSN de la technique antérieure et un PSN selon la présente invention ne fonctionneront pas dans d'une manière différente. Un PSN produit en conformité avec la présente invention aura, cependant, une plus petite mémoire de programme 10, un BDP 14 de largeur réduite, et un décodeur d'instruction 13 plus petit à l'intérieur de l'UED
12 qu'un PSN classique fournissant la même fonctionnalité.
On décrira ci-dessous, en liaison avec les figures 2 et 3, un procédé selon.la présente invention qui
produit un processeur de signaux numériques pour radio-
téléphone ayant les avantages discutés ci-dessus.
Comme avec les procédés de l'art antérieur, les
algorithmes de bande de base doivent être codés, c'est-à-
dire que le ou les programmes doivent être écrits.
Cependant,-alors que dans les procédés de la technique antérieure une décision aura déjà été prise à ce stade en ce qui concerne le compromis entre l'ensemble d'instructions
mis à la disposition du programmeur et la longueur des mots-
instructions acceptable, le concepteur aura accès, selon la
présente invention, à un ensemble complet d'instructions.
En figure 2 on représente un procédé selon la présente invention. Comme étape initiale, le fichier source est écrit (20). Ce fichier est un fichier de texte entré dans l'ordinateur par le programmeur. Le fichier de texte est constitué des instructions en langage d'assemblage et de macro "instructions" de haut niveau, qui sont des fonctions pré-définies écrites en langage d'assemblage. Le processeur (21) traduit alors automatiquement toutes les macro instructions en source d'assembleur (22) qui sont des instructions en langage d'assemblage. L'assembleur traduit alors le fichier source en langage d'assemblage (23), qui peut être compris par le programmeur, en fichiers objets (24), qui peuvent être compris par le processeur. Pour les grandes applications PSN, il est probable que le programme sera fractionné en plusieurs fichiers sources. Un éditeur de lien (25) prend tous les fichiers objets correspondants et
les lie pour former un fichier exécutable (26).
Dès que les algorithmes pour le fichier exécutable ont été codés, ils seront simulés dans un simulateur (27) et leur exactitude sera vérifiée. Le code est alors gelé. Dans un mode de réalisation de la présente invention, aucun changement ne sera apporté aux algorithmes codés après ce point car l'ensemble d'instructions mis à disposition pour emploi est maintenant défini. Cependant, on discutera ultérieurement un exemple pour indiquer comment des changements de l'algorithme peuvent encore être faits après ce stade bien qu'idéalement aucun autre changement ne
soit nécessaire.
Dès que l'algorithme a été vérifié, le convertisseur de format d'objet (28) convertit le fichier exécutable (26) en un format qui peut être utilisé pour produire la mémoire de programme. D'autres stades du processus peuvent alors être suivis en utilisant un outil
appelé aux fins de la présente description un compacteur de
mémoire morte (29) afin de permettre le support par le PSN
des seules instructions utilisées dans les algorithmes.
Le fichier exécutable (26), qui est la sortie de l'éditeur de lien (25), est converti en un format que le compacteur peut utiliser (30) via le convertisseur de format
d'objet (28).
Pour un programme ou un algorithme de longueur typique pour un radiotéléphone, environ 25 000 des 290 ensembles d'instructions disponibles seront utilisés. De manière à identifier uniquement chacune des 290 instructions, il faut une longueur de mot de 90 bits. Les 25 000 mots individuels réels pourraient être spécifiés en utilisant un mot de 16 bits. En général, 2N mots peuvent être uniquement identifiés en utilisant un mot de N bits. Il n'y a aucune corrélation entre le nombre des instructions que l'ensemble d'instructions entièrement flexible fournit et le nombre des instructions utilisées dans le codage de l'algorithme. Si l'on imagine un algorithme codé en utilisant 25 000 lignes de code, il y aura au plus 25 000 instructions individuelles
utilisées. Certaines instructions seront presque inévitable-
ment utilisées plus d'une fois. Toute duplication se traduira par une réduction du nombre des instructions
uniques employées pour écrire le code.
Le programme est analysé et chaque mot-
instruction utilisé dans le programme est noté (31). Les
instructions non-utilisées dans le programme sont ignorées.
Le résultat est un ensemble d'instructions réduit (32) qui contient seulement les instructions réellement utilisées dans le programme. Si nécessaire, un sous-ensemble d'instructions qui peut être utile pour la mise au point de programmes peut être ajouté à l'ensemble d'instructions réduites (33) afin de donner un ensemble d'instructions
limitées (34).
Il peut être également souhaitable d'inclure
d'autres sous-ensembles de l'ensemble d'instructions d'ori-
gine qui peuvent être utilisés si des changements sont apportés au programme. Naturellement, à chaque fois qu'un
sous-ensemble désirable d'instructions est pris en considé-
ration, la liste des instructions du programme sera vérifiée afin d'éviter la duplication des instructions. Le concepteur
devra décider si les avantages contrebalencent les inconvé-
nients dans le cas o l'inclusion d'instructions addition-
nelles nécessite l'addition d'une ligne supplémentaire au PSN et d'une broche supplémentaire conséquentielle au décodeur d'instruction ou enlève une partie de la redondance utile pour simplifier la conception du décodeur d'instruction. Cependant, en commençant avec l'ensemble des instructions réellement utilisées dans le codage d'un algorithme la pleine liberté de conception de l'ensemble entièrement flexible a été utilisée et il n'y a aucun compromis entre performances et longueur de mot. Des instructions additionnelles ajoutées à la capacité du processeur peuvent être employées pour un certain degré de
2742891
flexibilité après le codage de l'algorithme. Tout changement sera des plus vraissemblablement limité à la correction des erreurs et des instructions additionnelles peuvent être
choisies en ayant cela à l'esprit.
-Maintenant, le compacteur de mémoire morte détermine la largeur nécessaire des bits (35). Cela est déterminé en examinant le nombre total des instructions dans l'ensemble d'instructions réduites ou limitées. La largeur de bit est la largeur des mots qui seront utilisés pour changer le nom des ensembles d'instructions réduites ou
limitées employés pour coder les instructions.
Les instructions sont alors triées pour grouper des instructions similaires. Chacune des instructions est l'objet d'une relation réciproque avec un mot de commande
qui fournit les signaux pour commander la fonction du PSN.
Dès que l'ensemble d'instructions utilisé dans le programme a été identifié, celles-ci peuvent recevoir un préfixe respectif. Cela permet de trier facilement les instructions de façon que des instructions similaires soient placées ensemble pour rendre minimale la logique résultante dans le
décodeur d'instruction.
Pour minimiser encore la logique du décodeur, toute redondance résultant d'un nombre d'instructions inférieur à 2N est utilisée dans ce processus de trie. La largeur de mot choisie peut nécessiter une certaine redondance incorporée additionnelle afin de permettre à la logique du décodeur d'instruction 13 de rester simple. La largeur de bit choisie peut par conséquent être plus longue que le minimum nécessaire pour identifier de manière unique
l'ensemble des instructions réduites ou limitées.
Dès qu'elles sont triées, les instructions sont codées en utilisant des nombres binaires (36). Simplement, le nouveau mot-instruction pourrait être la ligne sur la liste triée des instructions uniques. Cela se traduit par un ensemble d'instructions codées de manière optimale (37). Le fichier exécutable 26 est alors réécrit automatiquement (38) en remplaçant les vieux mots-instructions par les nouveaux il 2742891 mots-instructions correspondants afin de produire un nouveau code de programme (39) qui peut être stocké dans une mémoire de programme de largeur réduite (40). La mémoire de programme peut être adressée de la manière classique en utilisant un bus d'adresses de 16 bits. Cependant, le bus des données de programme, au lieu d'être de 80 ou de 90 bits comme cela aurait été nécessaire si le programme avait été écrit en utilisant l'ensemble d'instructions d'origine, sera au contraire d'une longueur de 15 ou 16 bits en fonction de
la quantité de duplication dans le programme.
Pour la mise en oeuvre du programme, un décodeur d'instruction qui fournit des mots de commande ayant une relation réciproque avec les nouveaux mots-instructions respectifs est nécessaire. Le décodeur d'instruction est une unité logique qui fournit la sortie corrélée du mot de commande en réponse à l'entrée d'un mot respectif des
nouveaux mots-instructions.
La logique du décodeur est produite (41) en faisant la-corrélation de chaque nouveau mot-instruction
avec le mot de commande associé à l'ancien mot-instruction.
Les entrées et les sorties d'un décodeur d'instruction sont
ainsi spécifiées. Des langages de description du matériel
sont disponibles pour spécifier les entrées et les sorties d'un décodeur d'instruction. Ceux-ci sont alors utilisés en conjonction avec un outil tel que le Synopsys pour déterminer un agencement logique approprié pour le décodeur d'instruction. Cet outil produit une liste d'interconnexions du décodeur d'instruction (42), fournissant un flux (43) de conception ASIC (Circuit Intégré Spécifique d'Application)
pour produire la logique pour le décodeur d'instruction.
Dès que la disposition du décodeur d'instruction a été déterminée, celuici peut être fabriqué avec les autres circuits de l'unité d'extraction et de décodage et la mémoire de programme. Les divers blocs du PSN seront
généralement intégrés sur un circuit ASIC.
Dans un autre mode de réalisation, au lieu de concevoir un processeur spécialisé pour une application
12 2742891
spécifique, un processeur capable de faire passer deux programmes ou plus avec un haut degré de banalisation, c'est-à-dire des programmes utilisant une grande mémoire
d'instructions similaires, pourrait être conçu.
La présente invention n'est pas limitée aux exemples de réalisation qui viennent d'être décrits, elle est au contraire susceptible de variantes et de modifications qui apparaîtront à l'homme de l'art. En particulier, l'invention est applicable à la conception de processeurs pour des dispositifs autres que des radiotéléphones

Claims (5)

REVENDICATIONS
1 - Procédé pour concevoir un processeur pouvant fonctionner en réponse à des signaux de commande produits par des programmes constitués de motsinstructions, le processeur étant capable d'exécuter un ensemble de fonctions et pouvant fonctionner pour exécuter chaque fonction de l'ensemble en réponse à un mot de commande respectif, chaque
mot ee commande ayant'une relation réciproque avec un mot-
instruction respectif d'un ensemble d'instructions d'origine, caractérisé en ce qu'il comprend l'écriture d'un programme pouvant être exploité pour commander le processeur en utilisant des instructions choisies dans l'ensemble d'instructions d'origine, le choix d'un sous- ensemble de mots-instructions dans l'ensemble d'instructions d'origine comprenant les instructions utilisées dans le programme, le
changement de nom des instructions respectives du sous-
ensemble et la fourniture d'un moyen pour produire les mots de commande respectifs ayant une relation réciproque avec
les mots-instructions du sous-ensemble en réponse aux mots-
instructions correspondants qui ont changé de nom.
2 - Procédé selon la revendication 1, caractérisé en ce que le programme formé à partir des instructions ayant changé de nom est stocké dans une mémoire
de programme (10).
3 - Procédé selon la revendication 1 ou 2, caractérisé en ce que le moyen de production comprend un
décodeur d'instruction (13).
4 - Procédé selon l'une quelconque des
revendications précédentes, caractérisé en ce que la
fonctionnalité du processeur est confirmée en utilisant une
application codée dans l'ensemble d'instructions d'origine.
- Procédé selon l'une quelconque des
revendications précédentes, caractérisé en ce que le sous-
14 2742891
ensemble d'instructions comprend des instructions pour exécuter les fonctions désirables pour la correction des erreurs. 6 - Procédé selon l'une quelconque des
revendications précédentes, caractérisé en ce que les
instructions ayant changé de nom ont une longueur minimum de sorte que chaque mot-instruction du sous-ensemble peut être
identifié de manière unique.
7 - Procédé selon l'une quelconque des
revendications 1 à 5, caractérisé en ce que les instructions
ayant changé de nom sont plus longues que la longueur minimum de chaque mot-instruction du sous-ensemble de
manière à être uniquement identifiables.
FR9615720A 1995-12-22 1996-12-20 Procede pour fournir un ensemble d'instructions a un processeur Expired - Fee Related FR2742891B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9526457A GB2308470B (en) 1995-12-22 1995-12-22 Program memory scheme for processors

Publications (2)

Publication Number Publication Date
FR2742891A1 true FR2742891A1 (fr) 1997-06-27
FR2742891B1 FR2742891B1 (fr) 2003-11-14

Family

ID=10786026

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9615720A Expired - Fee Related FR2742891B1 (fr) 1995-12-22 1996-12-20 Procede pour fournir un ensemble d'instructions a un processeur

Country Status (5)

Country Link
US (1) US5964861A (fr)
JP (1) JP3175921B2 (fr)
FR (1) FR2742891B1 (fr)
GB (1) GB2308470B (fr)
NL (1) NL1004826C2 (fr)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1645956A3 (fr) * 1997-08-29 2008-02-13 Matsushita Electric Industrial Co., Ltd. Dispositif de conversion d' instruction pour réduire le nombre de types d' instructions
US6862563B1 (en) 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
US6477697B1 (en) 1999-02-05 2002-11-05 Tensilica, Inc. Adding complex instruction extensions defined in a standardized language to a microprocessor design to produce a configurable definition of a target instruction set, and hdl description of circuitry necessary to implement the instruction set, and development and verification tools for the instruction set
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
EP1159693A2 (fr) * 1999-02-05 2001-12-05 Tensilica, Inc. Systeme de generation d'un processeur automatise destine a la conception d'un processeur configurable et procede connexe
US6427202B1 (en) * 1999-05-04 2002-07-30 Microchip Technology Incorporated Microcontroller with configurable instruction set
US6560754B1 (en) 1999-05-13 2003-05-06 Arc International Plc Method and apparatus for jump control in a pipelined processor
US6988154B2 (en) 2000-03-10 2006-01-17 Arc International Memory interface and method of interfacing between functional entities
WO2001069376A2 (fr) 2000-03-15 2001-09-20 Arc International Plc Procede et appareil d'optimisation du code processeur utilisant une compression de code
US20020046396A1 (en) * 2000-08-02 2002-04-18 Knoll Stephen J. Object file server (OFS)
WO2003091914A1 (fr) 2002-04-25 2003-11-06 Arc International Dispositif et procede permettant de gerer la conception des circuits integres
GB2399901B (en) 2003-03-27 2005-12-28 Micron Technology Inc System and method for encoding processing element commands in an active memory device
US20050289523A1 (en) * 2004-06-24 2005-12-29 Broadcom Corporation Method and apparatus for transforming code of a non-proprietary program language into proprietary program language
CN101542434A (zh) * 2006-11-21 2009-09-23 日本电气株式会社 指令操作码生成系统
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US20140082334A1 (en) * 2011-12-30 2014-03-20 Steven R. King Encoding to Increase Instruction Set Density
US9250900B1 (en) 2014-10-01 2016-02-02 Cadence Design Systems, Inc. Method, system, and computer program product for implementing a microprocessor with a customizable register file bypass network
WO2019005165A1 (fr) 2017-06-30 2019-01-03 Intel Corporation Procédé et appareil de vectorisation de boucles de mise à jour indirectes

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4994960A (en) * 1986-01-16 1991-02-19 Jupiter Technology, Inc. Interrupt system for transmitting interrupt request signal and interrupt vector based upon output of synchronized counters representing selected priority value
FI89838C (fi) * 1990-08-30 1993-11-25 Nokia Mobile Phones Ltd Dynamiskt spaenningsintegreringsfoerfarande samt kopplingar foer utfoerande och tillaempande av foerfarandet
DE69225982T2 (de) * 1991-03-07 1999-02-18 Digital Equipment Corp., Maynard, Mass. Verfahren und Gerät zur Rechnercode-Verarbeitung in einem Codeübersetzer
FI88567C (fi) * 1991-07-04 1993-05-25 Nokia Mobile Phones Ltd En generell synkronisk 2N+1 -divisor
FI88837C (fi) * 1991-08-15 1993-07-12 Nokia Mobile Phones Ltd Frekvensdividering med udda tal och decimaltal
US5289059A (en) * 1992-06-05 1994-02-22 Nokia Mobile Phones, Ltd. Switched capacitor decimator
FI95980C (fi) * 1992-09-04 1996-04-10 Nokia Mobile Phones Ltd Menetelmä ja kytkentäjärjestely ajan mittaamiseksi tarkasti epätarkalla kellolla
US5481683A (en) * 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
FI93684C (fi) * 1993-04-23 1995-05-10 Nokia Mobile Phones Ltd Menetelmä signaalin käsittelemiseksi ja menetelmän mukainen signaalinkäsittelypiiri
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
GB2286265B (en) * 1994-01-26 1998-02-18 Advanced Risc Mach Ltd selectable processing registers
GB2289354B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Multiple instruction set mapping
GB2290395B (en) * 1994-06-10 1997-05-28 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US5581776A (en) * 1995-02-03 1996-12-03 Nokia Mobile Phones Limited Branch control system for rom-programmed processor

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ALOMARY A ET AL: "PEAS-I: A hardware/software co-design system for ASIPs", PROCEEDINGS EURO-DAC '93. EUROPEAN DESIGN AUTOMATION CONFERENCE WITH EURO-VHDL '93 (CAT. NO.93CH3352-2), PROCEEDINGS OF EURO-DAC 93 AND EURO-VHDL 93- EUROPEAN DESIGN AUTOMATION CONFERENCE, HAMBURG, GERMANY, 20-24 SEPT. 1993, 1993, Los Alamitos, CA, USA, IEEE Comput. Soc. Press, USA, pages 2 - 7, XP002144259, ISBN: 0-8186-4350-1 *
ALOMARY A Y ET AL: "AN ASIP INSTRUCTION SET OPTIMIZATION ALGORITHM WITH FUNCTIONAL MODULE SHARING CONTRAINT", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES,JP,INSTITUTE OF ELECTRONICS INFORMATION AND COMM. ENG. TOKYO, vol. 76A, no. 10, 1 October 1993 (1993-10-01), pages 1713 - 1719, XP000422017, ISSN: 0916-8508 *
JUN SATO ET AL: "AN INTEGRATED DESIGN ENVIRONMENT FOR APPLICATION SPECIFIC INTEGRATED PROCESSOR", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN - VLSI IN COMPUTERS AND PROCESSORS,US,LOS ALAMITOS, IEEE. COMP. SOC. PRESS, vol. -, 14 October 1991 (1991-10-14), pages 414 - 417, XP000245924, ISBN: 0-8186-2270-9 *
PAULIN P G ET AL: "DSP DESIGN TOOL REQUIREMENTS FOR EMBEDDED SYSTEMS: A TELECOMMUNICATIONS INDUSTRIAL PERSPECTIVE", JOURNAL OF VLSI SIGNAL PROCESSING,NL,KLUWER ACADEMIC PUBLISHERS, DORDRECHT, vol. 9, no. 1/02, 1995, pages 23 - 46, XP000525885, ISSN: 0922-5773 *

Also Published As

Publication number Publication date
GB2308470A (en) 1997-06-25
NL1004826C2 (nl) 2000-11-06
GB9526457D0 (en) 1996-02-21
GB2308470B (en) 2000-02-16
US5964861A (en) 1999-10-12
FR2742891B1 (fr) 2003-11-14
NL1004826A1 (nl) 1997-12-10
JP3175921B2 (ja) 2001-06-11
JPH09231262A (ja) 1997-09-05

Similar Documents

Publication Publication Date Title
FR2742891A1 (fr) Procede pour fournir un ensemble d'instructions a un processeur
JP5203704B2 (ja) 再構成可能トレリス型復号を実装する方法および装置
JP3180075B2 (ja) 異なる命令コード相互間の動的変換装置及び方法
JP2009520391A (ja) マイクロコントローラを有する構成可能回路
JPH11261426A (ja) 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ
FR2914759A1 (fr) Procede et dispositif de codage d'un document hierarchise
JP3256504B2 (ja) ソフトシンボル確信レベルの生成方法
WO2002033834A1 (fr) Module de production de circuits de decodage de codes convolutionnels, procede et circuit associes
CN105573734A (zh) 一种用于提供sdk文件的方法与设备
US20050138327A1 (en) VLIW digital signal processor for achieving improved binary translation
TWI345386B (en) An inter-sequence permutation turbo code system and operation methods thereof
CN111338640A (zh) 一种可动态调整的非对称指令重链接方法和装置
US20130124590A1 (en) Reconfigurable cyclic shifter arrangement
KR100336246B1 (ko) 디지탈프로세서및코-프로세서를구비한집적회로
WO2020158429A1 (fr) Dispositif de traitement d'informations et procédé de traitement d'informations
FR3076925A1 (fr) Fonction cryptographique
CN1207879C (zh) 实现维特比平衡的度量增量预先计算法
US8928767B2 (en) Image processing device, image signal processing chip, and ISP chain configuring method
FR2794259A1 (fr) Dispositif materiel destine a l'execution d'instructions programmables basees sur des micro-instructions
CN112232445B (zh) 多标签分类任务网络的训练方法和装置
CN113643698A (zh) 用于语音处理的方法和设备
FR2718865A1 (fr) Procédé et dispositif à processeur de signaux numériques pour la mise en Óoeuvre d'un algorithme de Viterbi.
FR2871253A1 (fr) Dispositif de commande ayant des moyens de decodage
CN113110879A (zh) 指令处理方法及装置
JP2009010464A (ja) マッチドフィルタ

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20070831