FR2742891A1 - Procede pour fournir un ensemble d'instructions a un processeur - Google Patents
Procede pour fournir un ensemble d'instructions a un processeur Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction 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)
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.
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)
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)
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 |
-
1995
- 1995-12-22 GB GB9526457A patent/GB2308470B/en not_active Expired - Fee Related
-
1996
- 1996-12-16 JP JP33615396A patent/JP3175921B2/ja not_active Expired - Fee Related
- 1996-12-17 US US08/767,644 patent/US5964861A/en not_active Expired - Lifetime
- 1996-12-18 NL NL1004826A patent/NL1004826C2/nl not_active IP Right Cessation
- 1996-12-20 FR FR9615720A patent/FR2742891B1/fr not_active Expired - Fee Related
Non-Patent Citations (4)
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 |