FR2678400A1 - Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. - Google Patents
Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. Download PDFInfo
- Publication number
- FR2678400A1 FR2678400A1 FR9107985A FR9107985A FR2678400A1 FR 2678400 A1 FR2678400 A1 FR 2678400A1 FR 9107985 A FR9107985 A FR 9107985A FR 9107985 A FR9107985 A FR 9107985A FR 2678400 A1 FR2678400 A1 FR 2678400A1
- Authority
- FR
- France
- Prior art keywords
- register
- instruction
- memory
- protocol processor
- intended
- 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
- 230000015654 memory Effects 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims description 26
- 238000000034 method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 5
- 101100258315 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) crc-1 gene Proteins 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 102100026008 Breakpoint cluster region protein Human genes 0.000 description 1
- 101000933320 Homo sapiens Breakpoint cluster region protein Proteins 0.000 description 1
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 1
- 102100039068 Interleukin-10 Human genes 0.000 description 1
- 108090000174 Interleukin-10 Proteins 0.000 description 1
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 1
- MDKCFLQDBWCQCV-UHFFFAOYSA-N benzyl isothiocyanate Chemical compound S=C=NCC1=CC=CC=C1 MDKCFLQDBWCQCV-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
Processeur de protocole destiné à être associé à au moins un processeur principal d'un système en vue de l'exécution de tâches auxquelles le processeur principal n'est pas adapté, caractérisé en ce qu'il comporte une partie de programme (30) comprenant un registre d'incrémentation (31), une mémoire programme (33) reliée au registre d'incrémentation (31) pour en recevoir des adresses, une partie de décodage (35) destinée à recevoir des instructions de la mémoire programme (33) de la partie de programme (30) en vue d'exécuter lesdites instructions en deux cycles, et une partie de données (36) d'exécution des instructions.
Description
La présente invention est relative aux processeurs et se rapporte plus particulièrement aux processeurs de protocole.
La tendance à l'intégration de plus en plus poussée des matériels informatiques conduit à la nécessité de disposer pour ces matériels d'une puissance de calcul de plus en plus élevée.
Dans toutes les applications, il existe des besoins différents de traitement des informations.
On distingue deux classes de traitement.
- traitement scalaire ne faisant pas appel à un processeur numérique spécialisé (DSP)
- traitement vectoriel faisant appel à un DSP.
- traitement vectoriel faisant appel à un DSP.
Le traitement scalaire englobe une tâche de haut niveau qui est le contrôle de l'application ou la gestion du fonctionnement et des tâches qui sont généralement réalisées par une logique câblée ou un processeur qui sont le traitement de protocole.
Le traitement vectoriel comprend des tâches de traitement du signal réalisées généralement par un DSP et le calcul matriciel qui demande une structure plus performante que celle du DSP et qui est généralement du type "processeur en réseau
Actuellement dans les applications de faible coût, on cherche à réduire au minimum le nombre des processeurs, si bien que selon le type d'application, le processeur principal qui contrôle le déroulement d'un algorithme, va être soit un microprocesseur, soit un DSP.
Actuellement dans les applications de faible coût, on cherche à réduire au minimum le nombre des processeurs, si bien que selon le type d'application, le processeur principal qui contrôle le déroulement d'un algorithme, va être soit un microprocesseur, soit un DSP.
S'il y a dans cette application un besoin de traitement de protocole, on recherche à traiter ce protocole dans le processeur ou dans le processeur numérique spécialisé DSP.
Le traitement de protocole étant très orienté vers la manipulation de bits et les interruptions, il ne sera pas très coûteux s'il est réalisé par le microprocesseur. Par contre, si l'on utilise un DSP, la structure du processeur et le jeu d'instructions seront mal adaptés et il en découlera une perte d'efficacité en ce sens que plus d'instructions seront nécessaires et que l'utilisation du silicium disponible sera mauvaise.
La même remarque est à faire en ce qui concerne le traitement matriciel qui peut être effectué par un DSP puisqu'il contient un multiplieur câblé. Cependant, un microprocesseur est très mal adapté pour effectuer un tel traitement matriciel.
L'invention vise donc à créer une architecture particulière de processeur orientée vers le traitement de protocole et ayant une structure très simple et peu coûteuse en nombre de transistors tout en permettant de décharger le processeur principal d'un système, de tâches simples qui sont mal adaptées à sa complexité.
Elle a donc pour objet un processeur de protocole destiné à être associé à au moins un processeur principal d'un système en vue de l'exécution de tâches auxquelles le processeur principal n'est pas adapté, caractérisé en ce qu'il comporte une partie de programme comprenant un registre d'incrémentation, une mémoire programme reliée au registre d'incrémentation pour en recevoir des adresses, une partie de décodage destinée à recevoir des instructions de la mémoire programme de la partie de programme en vue exécuter lesdites instructions en deux cycles, et une partie de données d'exécution des instructions.
L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés, sur lesquels
- la Fig.1 est un schéma de la répartition des tâches dans un système de traitement de l'information mettant en oeuvre l'utilisation de plusieurs processeurs;
- la Fig.2 est un schéma d'une application d'un processeur de protocole à un ensemble de radios cellulaires;
- la Fig.3 est un tableau indiquant les performances pour une routine de codage/décodage de canaux;
- la Fig.4 est un tableau représentant les performances pour une routine de modem;
- la Fig.5 est un schéma d'une mémoire de communication entrant dans la structure du processeur de protocole suivant l'invention;
- la Fig.6 représente l'écriture par un programme Pi de paramètres pour un programme P2 dans une mémoire du système;;
- la Fig.7 est un schéma synoptique général d'un processeur de protocole suivant l'invention;
- la Fig.8 est un schéma synoptique plus détaillé du processeur de protocole de la Fig.7;
- la Fig.9 est un diagramme représentant des signaux en divers points du processeur de protocole de la
Fig.8;
- la Fig.10 représente un jeu d'instructions pour le processeur de protocole suivant l'invention;
- la Fig. 11 est une représentation de l'affectation de bits d'instructions;
- la Fig.12 représente en détail les différents champs;
- la Fig.13 représente la manière dont le bloc de contrôle de condition est connecté dans le processeur de protocole suivant l'invention;
- la Fig.14 est un schéma partiel des moyens de génération d'une impulsion d'écriture;;
- la Fig. 15 est un tableau représentant un exemple de code d'instruction pour le processeur de protocole suivant l'invention;
- la Fig.16 est un schéma d'un exemple montrant l'avantage d'une structure suivant l'invention par rapport à un DSP TMS320 C25 classique dans la génération d'un code
CRC; et
- la Fig.17 montre un schéma de fonctionnement de l'unité arithmétique et logique du processeur de protocole suivant l'invention.
- la Fig.1 est un schéma de la répartition des tâches dans un système de traitement de l'information mettant en oeuvre l'utilisation de plusieurs processeurs;
- la Fig.2 est un schéma d'une application d'un processeur de protocole à un ensemble de radios cellulaires;
- la Fig.3 est un tableau indiquant les performances pour une routine de codage/décodage de canaux;
- la Fig.4 est un tableau représentant les performances pour une routine de modem;
- la Fig.5 est un schéma d'une mémoire de communication entrant dans la structure du processeur de protocole suivant l'invention;
- la Fig.6 représente l'écriture par un programme Pi de paramètres pour un programme P2 dans une mémoire du système;;
- la Fig.7 est un schéma synoptique général d'un processeur de protocole suivant l'invention;
- la Fig.8 est un schéma synoptique plus détaillé du processeur de protocole de la Fig.7;
- la Fig.9 est un diagramme représentant des signaux en divers points du processeur de protocole de la
Fig.8;
- la Fig.10 représente un jeu d'instructions pour le processeur de protocole suivant l'invention;
- la Fig. 11 est une représentation de l'affectation de bits d'instructions;
- la Fig.12 représente en détail les différents champs;
- la Fig.13 représente la manière dont le bloc de contrôle de condition est connecté dans le processeur de protocole suivant l'invention;
- la Fig.14 est un schéma partiel des moyens de génération d'une impulsion d'écriture;;
- la Fig. 15 est un tableau représentant un exemple de code d'instruction pour le processeur de protocole suivant l'invention;
- la Fig.16 est un schéma d'un exemple montrant l'avantage d'une structure suivant l'invention par rapport à un DSP TMS320 C25 classique dans la génération d'un code
CRC; et
- la Fig.17 montre un schéma de fonctionnement de l'unité arithmétique et logique du processeur de protocole suivant l'invention.
Comme déjà indiqué dans le préambule de la présente description, dans toutes les applications, il existe des besoins différents de traitement des informations, parmi lequels on distingue le traitement scalaire et le traitement vectoriel.
Comme représenté à la Fig.1, dans des applications à faible coût, on recherche à minimiser le nombre des processeurs, si bien que selon le type d'application, un système de traitement d'informations comporte un processeur principal qui contrôle le déroulement de l'algorithme et est constitué soit par un microprocesseur 1, soit par un DSP 2 Dans une telle application, on a besoin d'un traitement de protocole 3 que l'on cherche à traiter dans le processeur 1 ou dans le DSP 2.
Comme indiqué plus haut, le traitement du protocole n'est pas très coûteux s'il est réalisé par le microprocesseur 1, mais si l'on utilise le DSP 2, la structure d'un tel processeur et le jeu d'instructions seront mal adaptés et il en découlera une perte d'efficacité due à la nécessité d'un nombre d'instructions plus important et à une mauvaise utilisation du silicium.
La même remarque est à faire en ce qui concerne le traitement matriciel 4 qui peut être effectué par un
DSP 2 puisqu'il contient un multiplieur câblé, mais pour l'exécution duquel un microprocesseur est mal adapté.
DSP 2 puisqu'il contient un multiplieur câblé, mais pour l'exécution duquel un microprocesseur est mal adapté.
La Fig.2 montre une application radio-cellulaire dans laquelle un processeur principal 5 est constitué par un processeur numérique spécialisé ou DSP. Il effectue à la fois la gestion de l'application considérée et la partie vocodeur. La partie traitement de protocole est réalisée par un processeur spécifique 6 adapté au traitement de bits. La partie modem du système qui demande une grande puissance de calcul orientée vers le traitement vectoriel est réalisée dans un processeur spécifique 7 du type processeur en réseau.
Dans ce cas, il y a un besoin important de traitement sur des vecteurs, de trois à huit bits de précision et le coeur d'un DSP travaillant généralement sur 32 bits est très mal adapté à une telle tâche. De plus, les circuits intégrés au silicium d'un tel système sont très mal utilisés.
Un autre avantage de partager une application sur plusieurs processeurs ayant des caractéristiques différentes, est que chaque processeur travaille sur sa propre tâche en parallèle avec les autres. Si, dans l'exemple de la Fig.2, les trois processeurs 5,6 et 7 fonctionnent à la même fréquence d'horloge, la puissance globale du circuit est multipliée par trois. Il faut ajouter également à ces avantages, le facteur d'efficacité du jeu d'instructions qui est adapté à la tâche considérée.
Pour deux routines classiques de traitement de protocole, le calcul du CRC et l'identification, l'ef fi- cacité du processeur 6 par rapport à un DSP du type TMS 320 C50 est de 2,2 alors que le rapport en nombre de transistors pour réaliser les deux processeurs, est de 0,11. Le tableau de la Fig.3 montre les performances des routines de codage/décodage de canaux. La seconde colonne à partir de la gauche indique la routine nécessaire pour l'emploi d'un DSP, tandis que la troisième colonne montre des éléments d'une routine impliquant l'utilisation d'un processeur de protocole.
Il résulte de ce qui précède que le rapport de performance MIPS/XTOR est de 19,6 en faveur du processeur de protocole 6.
Dans le cas d'un processeur en réseau, tel que le processeur 7 du système de la Fig.2, dont les performances pour des routines de modem sont représentées au tableau de la Fig.4, on montre aussi que pour une routine du modem, il y a également un rapport important en efficacité entre le DSP 5 et le processeur 7, le gain étant de 10 en MIPS.
Plusieurs processeurs travaillant en parallèle sur des tâches différentes, permettent d'augmenter la puissance de traitement. L'application est partagée entre les différents processeurs qui doivent échanger des informations.
Les moyens d'échange sont généralement constitués par un lien série ou une mémoire de communication.
Sur la Fig.5, on a représenté une telle mémoire de communication. On voit sur cette figure, le DSP 5 et le processeur 6 du dispositif de la Fig.2, le coeur 8 du DSP 5 est relié au coeur 9 du processeur 6 par un circuit de synchronisation 10. Le DSP 5 comporte en outre une mémoire
ROM de programme 11 et une mémoire RAM locale 12. Le processeur de protocole 6 comporte lui aussi, une mémoire
ROM de programme 13 et une mémoire RAM locale 14. Les mémoires RAM locales 12 et 14 du DSP 5 et du processeur 6 sont reliées par une mémoire DPRAM 15 commune à double port. La synchronisation des processus P1 et P2 s'effectue par une instruction TAS (Test and Set) de test et de positionnement qui permet, comme indiqué à la Fig.6 de s'assurer qu'un seul processeur utilise la mémoire 15 (ou zone de mémoire) au même instant.
ROM de programme 11 et une mémoire RAM locale 12. Le processeur de protocole 6 comporte lui aussi, une mémoire
ROM de programme 13 et une mémoire RAM locale 14. Les mémoires RAM locales 12 et 14 du DSP 5 et du processeur 6 sont reliées par une mémoire DPRAM 15 commune à double port. La synchronisation des processus P1 et P2 s'effectue par une instruction TAS (Test and Set) de test et de positionnement qui permet, comme indiqué à la Fig.6 de s'assurer qu'un seul processeur utilise la mémoire 15 (ou zone de mémoire) au même instant.
Il existe aussi d'autres mécanismes de synchronisation de processus. Par exemple avec l'instruction TAS de la Fig.6, le programme Pi écrit dans la mémoire DPRAM 15 des paramètres pour le programme P2.
Les paramètres étant liés,si P2 accède à la mémoire 15 durant la modification par P1, il y a risque d'erreur.
Le programme Pi teste avec l'instruction TAS si la mémoire 15 est disponible et génère un signal d'occupation. Durant la modification des paramètres a,b,c,d qui se trouvent dans la mémoire 15, si le programme P2 demande un accès à cette zone de mémoire, son instruction TAS lui retourne un signal d'occupation. Le programme Pi libère la mémoire 15 en fin d'accès et le programme P2 peut accéder alors à la mémoire s'il fait une nouvelle demande.
Comme le montre la Fig.5, chaque processeur a sa propre mémoire programme ROM 11,13 respectivement, une mémoire locale de travail 12,14 et un coeur de processeur 8,9. Les moyens de synchronisation 10 et la DPRAM 15 sont communs aux deux processeurs.
Sur la Fig.7, on a représenté le schéma synoptique d'un processeur de protocole.
Le processeur comporte un processeur proprement dit 16 relié à une mémoire programme 17 par un bus d'adresses 18 et un bus d'instructions 19. Il est relié au niveau du flux de données à un processeur principal 20 à travers une mémoire RAM 21 de communication reliée à chacun des processeurs par un bus de données 22, 23 et d'adresse 24, 25 correspondant.
Le processeur 16 peut aussi être relié par des bus de données et de sélection et d'adresse 27, 28 à un bloc de logique câblé 26 permettant la mise en forme de signaux ou un traitement particulier qu'il serait trop coûteux de réaliser au moyen du processeur de protocole 16. Le bloc logique 26 est de plus connecté au processeur 16 par une ligne d'interruption 29.
La Fig.8 montre de façon plus détaillée le processeur de protocole suivant l'invention.
Ce processeur comporte en fait trois parties.
Une partie de programme désignée par le numéro général de référence 30 contient un registre dtincrémen- tation 31 qui est incrémenté à chaque cycle sauf si une valeur immédiate PMA est chargée par l'intermédiaire d'un bus 32. Le registre 31 génère l'adresse d'une mémoire en forme de programme 33 qui génère elle-même une instruction sur un bus 34. Le processeur comporte en outre une partie décodeur désigné par le numéro de référence général 35 qui reçoit le code de l'instruction de la mémoire ROM de programme 33. Cette instruction est exécutée en deux cycles en mode Pipe-line comme le montre le diagramme de la Fig.9.
Durant le cycle 1 indiqué sur cette figure, la mémoire programme 33 est lue à l'adresse PC1 du registre d'incrémentation 31. En fin de cycle, l'instruction Il délivrée par la mémoire de programme 33 est décodée.
Durant le cycle 2, les opérateurs de l'instruction sont lus aux adresses spécifiées par le code et la partie de données 36 qui complète le processeur et qui sera décrite par la suite exécute l'instruction. Le résultat est stocké à l'adresse spécifiée par le code de l'instruction en fin de cycle 2.
Durant le cycle 2, le décodeur 37 de la partie de décodage, exécute le même processus sur l'instruction I2 située à l'adresse PC2 du registre 31.
Le décodeur génère à chaque cycle, sur le bus 38 l'adresse du registre utilisé dans l'instruction et/ou une adresse de mémoire RAM sur le bus 39. Le décodeur 37 qui joue également le rôle de dispositif de contrôle reçoit de part et d'autre des signaux d'interruption et des signaux
TAS de test et de positionnement qui sont destinés à la synchronisation. La partie données 36 du processeur est constituée d'un banc de registres 40 relié à deux multiplexeurs MUX A et MUX B 41 et 42, destinés à sélectionner les différents registres ou les mémoires RAM à l'entrée d'une unité arithmétique et logique et de décalage 43.
TAS de test et de positionnement qui sont destinés à la synchronisation. La partie données 36 du processeur est constituée d'un banc de registres 40 relié à deux multiplexeurs MUX A et MUX B 41 et 42, destinés à sélectionner les différents registres ou les mémoires RAM à l'entrée d'une unité arithmétique et logique et de décalage 43.
L'opération définie dans le champ de l'instruction est exécutée entre les deux valeurs aux entrées A et B de l'unité arithmétique et logique et de décalage 43 et le résultat est porté dans le même cycle à l'adresse de destination.
Cette adresse de destination est matérialisée sur le schéma de la Fig.8 par une mémoire à double port 44 qui est commune au processeur de protocole et à l'unité de traitement principale CPU 45 à laquelle il est associé. La mémoire 44 est reliée à la CPU 45 au moyen de bus de données et d'adresses 46, 47.
Sur la Fig.10, on a représenté un jeu d'instructions destiné aux processeurs de protocole suivant l'invention.
Il comprend trois classes d'instructions
- Entiers : Opérations arithmétiques et logiques sur les nombres entiers.
- Entiers : Opérations arithmétiques et logiques sur les nombres entiers.
- Transfert : entre registre et registre/mémoire.
- Contrôle : toutes les opérations modifiant la valeur du registre d'incrémentation ou PC 31 (Fig.8).
On va maintenant décrire les champs de l'instruction du processeur de protocole représentés à la
Fig.lO. On désigne par 50, un champ de 5 bits réservé au code de l'instruction. Il définit l'opération exécutée entre les opérateurs Srcl-2.
Fig.lO. On désigne par 50, un champ de 5 bits réservé au code de l'instruction. Il définit l'opération exécutée entre les opérateurs Srcl-2.
51 désigne un champ de conditions qui définit sous quelles conditions cette instruction est exécutée.
Les conditions correspondantes sont définies dans les tableaux 10-1 et 10-2 de la Fig.10. Cette partie sera décrite en détail par la suite.
52 définit une instruction W établissant si l'opération est exécutée entre des mots de 16 bits ou des octets.
53 indique un champ @ + décalage dans lequel @ indique que les registres X ou B contiennent l'adresse d'accès à la mémoire DPRAM commune 44 de la Fig.8.
+ désigne les registres X ou B incrémentés par l'accès à la mémoire.
Décalage désigne le résultat de l'opération décalé sur le tableau 10-3 de la Fig.lO avant l'écriture dans le registre de destination.
54 désigne les instructions SRC1 dans lesquelles:
K : constante
- DMA : valeur contenue dans la DPRAM 44 à 1'a- dresse DMA
- Rn : registre
55 SRC2/DEST Rm : registre source et destination dans le cas des opérations sur " Entiers " et registre de destination dans les autres cas.
K : constante
- DMA : valeur contenue dans la DPRAM 44 à 1'a- dresse DMA
- Rn : registre
55 SRC2/DEST Rm : registre source et destination dans le cas des opérations sur " Entiers " et registre de destination dans les autres cas.
L'affectation des bits de l'instruction est définie selon cinq types comme représenté à la Fig. 11.
Les différents champs sont définis en détail à la Fig.12.
Comme le montre le jeu d'instructions de la Fig.10, certaines instructions très utilisées dans la manipulation de bits, ne sont pas disponibles directement.
On va voir que les instructions telles que
CMP Comparer
BITC test de bit
BSET Réglage de bit
CSIF Comparer et sauter sont construites par l'adjonction du champ de conditions
Cc représenté à la Fig.12 à celui du code ou de l'opération effectuée dans l'unité arithmétique et logique.
CMP Comparer
BITC test de bit
BSET Réglage de bit
CSIF Comparer et sauter sont construites par l'adjonction du champ de conditions
Cc représenté à la Fig.12 à celui du code ou de l'opération effectuée dans l'unité arithmétique et logique.
La Fig. 13 montre la manière dont un bloc de contrôle de conditions 60 est connecté dans le processeur de protocole suivant l'invention entre le dispositif de contrôle et de décodage 37 et la pile de registres 40.
Ce bloc de contrôle de conditions reçoit d'une part les informations du registre d'état SW 40d de la pile de registres 40 et du champ de conditions de l'instruction.
Comme le montre avec plus de détails la Fig.14, les signaux " ECRITURE REG " ou " ECRITURE MEMOIRE génèrent une impulsion d'écriture si l'entrée d'un multiplexeur 61 sélectionné par le code de condition présent sur ses entrées 62 est au niveau haut. Dans ce cas, le résultat de l'opération effectuée par l'unité arithmétique et logique 43 est écrit dans l'opérateur destination.
Dans le cas contraire, il n'y a pas de modification de la destination.
Le registre d'état SW 40d est affecté par le résultat de l'opération en cours.
La Fig.15 montre un exemple de code d'instructions. Le code utilisateur est : CMP (X)+, A. Le contenu du registre A 40c est composé avec le contenu de l'adresse mémoire définie par le registre X 40a. Le résultat affecte les bits d'état suivants
C = 1 si A 2 (X)
z = 1 si A = (X)
N signe du résultat
Après accès, l'adresse contenue dans X est incrémentée.
C = 1 si A 2 (X)
z = 1 si A = (X)
N signe du résultat
Après accès, l'adresse contenue dans X est incrémentée.
En réalité, en sélectionnant le code de condition O = Jamais avec le code d'ALU SUB (soustrat), le résultat est atteint puisque la comparaison est une soustraction sans modification de la destination. Un autre exemple est
Etiquette Sous, A, U
Si le bit utilisateur U a été positionné à 1, le résultat de la soustraction : A - Etiquette est placé dans
A, et l'état est modifié. Si U = O, le résultat n'est pas sauve.
Etiquette Sous, A, U
Si le bit utilisateur U a été positionné à 1, le résultat de la soustraction : A - Etiquette est placé dans
A, et l'état est modifié. Si U = O, le résultat n'est pas sauve.
Sur la Fig. 16, on a représenté en vue partielle, le multiplexeur 61 connecté à la pile de regitres 40 du processeur de protocole représenté à la Fig.13. On voit sur cette figure, que CMP (X)+, A est équivalent à SOUS (X)+, A, Jamais. Le code condition Jamais sélectionne l'entrée du multiplexeur 61 qui est au niveau "0" et l'impulsion WE reste sans effet sur le signal ECRITURE
REG. qui transfère le résultat de l'unité arithmétique et logique 43 dans le registre A 40c.
REG. qui transfère le résultat de l'unité arithmétique et logique 43 dans le registre A 40c.
L'exemple ci-dessus montre l'avantage d'une telle structure par rapport à un DSP TMS320 C25 dans la génération d'un code CRC.
Code C25 Nombre de cycles
LAC R, 15 1
XOR CRC 1
ET M.8000 1
Bz BCRl 2
LAC POLYGEN 1
XOR CRC 1
SACL CRC 1
BCR1 LAC CRC,1 1
SACL CRC 1
10
Code PP. Nombre de cycles
1) ET x, A, Jamais 1
2) ET 8000, B, Jamais 1
3) XOR POLYGEN, B, Zd I
4) SLL B 1
4
Les quatre opérations obtenues à l'aide du processeur de protocole suivant l'invention sont détaillées en référence à la Fig.17.
LAC R, 15 1
XOR CRC 1
ET M.8000 1
Bz BCRl 2
LAC POLYGEN 1
XOR CRC 1
SACL CRC 1
BCR1 LAC CRC,1 1
SACL CRC 1
10
Code PP. Nombre de cycles
1) ET x, A, Jamais 1
2) ET 8000, B, Jamais 1
3) XOR POLYGEN, B, Zd I
4) SLL B 1
4
Les quatre opérations obtenues à l'aide du processeur de protocole suivant l'invention sont détaillées en référence à la Fig.17.
OPERATION 1
C'est une opération ET du bit 0040 avec le registre A 40c (Fig.13). Le résultat n'est pas écrit dans le registre A. tes bits Z, C, Zd sont positionnés de la manière indiquée à droite de l'unité arithmétique et logique 43 (Fig.17).
C'est une opération ET du bit 0040 avec le registre A 40c (Fig.13). Le résultat n'est pas écrit dans le registre A. tes bits Z, C, Zd sont positionnés de la manière indiquée à droite de l'unité arithmétique et logique 43 (Fig.17).
OPERATION 2
C'est une fonction logique ET du code 8000, B,
Ne.
C'est une fonction logique ET du code 8000, B,
Ne.
Le code CRC se trouve dans le registre B 40b, le bit MSB le plus significatif, c'est à dire le bit 8000 est testé.
Z = 1 si le bit le plus significatif du registre
B est zéro.
B est zéro.
Le Z du cycle précédent est transmis à Z-1.
OPERATION 3
XOR POLYGEN, B, Zd.
XOR POLYGEN, B, Zd.
L'opération logique XOR entre le polynome générateur et le code CRC est ensuite réalisée dans l'unité arithmétique et logique 43. Le résultat est écrit dans le registre B 40b si le bit Zd est égal à 1, Zd étant défini par la condition Z O Z-1.
OPERATION 4 : SLL B
Le registre B 40b (code CRC) est décalé d'une position vers la gauche.
Le registre B 40b (code CRC) est décalé d'une position vers la gauche.
L'architecture du processeur orienté vers le traitement du protocole qui vient d'être décrit est une structure très simple et peu coûteuse en nombre de transistors. Elle permet de décharger le processeur principal de tâches simples qui sont mal adaptées à sa complexité.
Le processeur de protocole et le processeur principal travaillant en parallèle, des moyens de synchronisation des tâches sont prévus.
Le jeu d'instructions est limité dans le présent exemple à 15 afin de simplifier la structure. Les instructions sont divisées en trois groupes " Entier, Transfert, et Contrôle ". Dans chacune de ces instructions, un champ conditionnel permet de sélectionner une condition de sauvegarde du résultat dans le registre de destination.
Les conditions utilisent les bits du registre d'état qui ont été modifiés par les résultats de la ou des instructions précédentes.
Un bit de validation de modification de l'état permet le fonctionnement facile en mode protégé.
Claims (5)
1. Processeur de protocole destiné à être associé à au moins un processus principal d'un système en vue de l'exécution de tâches auxquelles le processeur principal n'est pas adapté, caractérisé en ce qu'il comporte une partie de programme (30) comprenant un registre d'incrémentation (31), une mémoire programme (33) reliée au registre d'incrémentation (31) pour en recevoir des adresses, une partie de décodage (35) destinée à recevoir des instructions de la mémoire programme (33) de la partie de programme (30) en vue d'exécuter ladite instruction en deux cycles, et une partie de données (36) d'exécution de l'instruction.
2. Processeur de protocole suivant la revendication 1, caractérisé en ce que la partie de décodage (35) comporte un décodeur (37) destiné à générer à chaque cycle l'adresse d'un registre utilisé dans l'instruction et/ou une adresse de mémoire RAM, le décodeur (37) assurant également la fonction de dispositif de contrôle recevant des signaux d'interruption et des signaux (TAS) de test et de positionnement destinés à la synchronisation du système.
3. Processeur de protocole suivant l'une des revendications 1 et 2, caractérisé en ce que la partie de données (36) est constituée d'un banc de registres (40) relié à des multiplexeurs A et B (41,42) destinés à sélectionner les différents registres ou les mémoires RAM à l'entrée d'une unité arithmétique et logique (43), une opération définie dans le champ d'une instruction étant exécutée entre deux valeurs aux entrées de l'unité arithmétique et logique et de décalage (43) et le résultat de cette opération étant porté dans le même cycle à l'adresse de destination contenue dans une mémoire (44) commune au processeur de protocole et à une unité de traitement principale (45) à laquelle il est associé,
4.Processeur de protocole suivant l'une des revendications 1 à 3, caractérisé en ce qu'un jeu d'instructions composé d'au moins un champ de conditions d'exécution (Fig. 10) qui lui est destiné comprend trois classes d'instructions
- entiers correspondant aux opérations arithmétiques et logiques sur les nombres entiers,
- transfert correspondant aux opérations de transfert entre registre et mémoire,
- contrôle, correspondant au contrôle de toutes les opérations modifiant la valeur du registre d'incrémentation (31).
5. Processeur de protocole suivant l'une des revendications 3 et 4, caractérisé en ce qu'il comporte en outre un bloc (60) de contrôle de conditions connecté entre le dispositif de contrôle et de décodage (37) et la pile de registres (40), le bloc de contrôle de conditions (60) recevant les informations du registre SW (40d) de la pile de registres (40) et du champ de conditions d'une instruction à exécuter.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9107985A FR2678400B1 (fr) | 1991-06-27 | 1991-06-27 | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. |
US07/902,191 US5740458A (en) | 1991-06-27 | 1992-06-22 | Protocol processor intended for the execution of a collection of instructions in a reduced number of operations |
US08/890,894 US7028145B1 (en) | 1991-06-27 | 1997-07-10 | Protocol processor intended for the execution of a collection of instructions in a reduced number of operations |
US08/989,387 US6085308A (en) | 1991-06-27 | 1997-12-12 | Protocol processor for the execution of a collection of instructions in a reduced number of operations |
US09/606,057 US7197623B1 (en) | 1991-06-27 | 2000-06-28 | Multiple processor cellular radio |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9107985A FR2678400B1 (fr) | 1991-06-27 | 1991-06-27 | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2678400A1 true FR2678400A1 (fr) | 1992-12-31 |
FR2678400B1 FR2678400B1 (fr) | 1995-08-04 |
Family
ID=9414394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9107985A Expired - Fee Related FR2678400B1 (fr) | 1991-06-27 | 1991-06-27 | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. |
Country Status (2)
Country | Link |
---|---|
US (3) | US5740458A (fr) |
FR (1) | FR2678400B1 (fr) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5483554A (en) * | 1991-11-14 | 1996-01-09 | Texas Instruments Incorporated | Modulator especially for digital cellular telephone system |
EP0710907A3 (fr) * | 1994-11-01 | 1998-04-22 | Motorola, Inc. | Circuit intégré effectuant des tâches multiples de communication |
EP0710908A3 (fr) * | 1994-11-01 | 1998-04-29 | Motorola, Inc. | Processeur auxiliaire dans un circuit intégré réalisant des fonctions multiples de communication |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197623B1 (en) | 1991-06-27 | 2007-03-27 | Texas Instruments Incorporated | Multiple processor cellular radio |
FR2678400B1 (fr) * | 1991-06-27 | 1995-08-04 | Texas Instruments France | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. |
US5867726A (en) * | 1995-05-02 | 1999-02-02 | Hitachi, Ltd. | Microcomputer |
JP3505266B2 (ja) * | 1995-06-15 | 2004-03-08 | 三洋電機株式会社 | プログラム実行装置 |
US6807155B1 (en) * | 1999-05-07 | 2004-10-19 | Infineon Technologies Ag | Method of profiling disparate communications and signal processing standards and services |
JP2003527768A (ja) * | 1999-05-07 | 2003-09-16 | モーフィックス テクノロジー インコーポレイテッド | 異種の通信、信号処理規格およびサービスをプロファイリングする方法 |
US8090928B2 (en) * | 2002-06-28 | 2012-01-03 | Intellectual Ventures I Llc | Methods and apparatus for processing scalar and vector instructions |
US20070143579A1 (en) * | 2005-12-19 | 2007-06-21 | King Billion Electronics Co. Ltd. | Integrated data processor |
US7748409B2 (en) * | 2007-01-31 | 2010-07-06 | Masco Corporation Of Indiana | Overmold interface for fluid carrying system |
CN114546495B (zh) * | 2021-09-03 | 2022-12-20 | 北京睿芯众核科技有限公司 | 适用于risc-v架构处理器的地址属性检查的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0157306A2 (fr) * | 1984-04-02 | 1985-10-09 | International Business Machines Corporation | Unité de traitement ultra-rapide |
EP0334627A2 (fr) * | 1988-03-23 | 1989-09-27 | Du Pont Pixel Systems Limited | Architecture de multiprocesseur |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4212057A (en) * | 1976-04-22 | 1980-07-08 | General Electric Company | Shared memory multi-microprocessor computer system |
US4101960A (en) * | 1977-03-29 | 1978-07-18 | Burroughs Corporation | Scientific processor |
US4338661A (en) * | 1979-05-21 | 1982-07-06 | Motorola, Inc. | Conditional branch unit for microprogrammed data processor |
US4450525A (en) * | 1981-12-07 | 1984-05-22 | Ibm Corporation | Control unit for a functional processor |
US4591977A (en) * | 1983-03-23 | 1986-05-27 | The United States Of America As Represented By The Secretary Of The Air Force | Plurality of processors where access to the common memory requires only a single clock interval |
JPS6224366A (ja) * | 1985-07-03 | 1987-02-02 | Hitachi Ltd | ベクトル処理装置 |
US4945479A (en) * | 1985-07-31 | 1990-07-31 | Unisys Corporation | Tightly coupled scientific processing system |
US5021945A (en) * | 1985-10-31 | 1991-06-04 | Mcc Development, Ltd. | Parallel processor system for processing natural concurrencies and method therefor |
US4783778A (en) * | 1986-09-16 | 1988-11-08 | Gte Communication Systems Corporation | Synchronous packet manager |
JPS63253468A (ja) * | 1987-04-10 | 1988-10-20 | Hitachi Ltd | ベクトル処理装置 |
US6085336A (en) * | 1987-06-02 | 2000-07-04 | Texas Instruments Incorporated | Data processing devices, systems and methods with mode driven stops |
DE3856219T2 (de) * | 1987-06-05 | 1998-11-19 | Mitsubishi Electric Corp | Digitaler Signalprozessor mit Adress-Generator für den Zugriff von Daten aus einem Zweidirektionalen Bereich eines Datenspeichers |
US5291581A (en) * | 1987-07-01 | 1994-03-01 | Digital Equipment Corporation | Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system |
US5187796A (en) * | 1988-03-29 | 1993-02-16 | Computer Motion, Inc. | Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units |
US5210834A (en) * | 1988-06-01 | 1993-05-11 | Digital Equipment Corporation | High speed transfer of instructions from a master to a slave processor |
JPH02103656A (ja) * | 1988-10-12 | 1990-04-16 | Fujitsu Ltd | 主記憶参照の遂次化制御方式 |
US5237686A (en) * | 1989-05-10 | 1993-08-17 | Mitsubishi Denki Kabushiki Kaisha | Multiprocessor type time varying image encoding system and image processor with memory bus control table for arbitration priority |
JP2519798B2 (ja) * | 1989-05-30 | 1996-07-31 | 富士通株式会社 | 多重プロセッサシステムにおけるシリアライズ機能の検証方式 |
US5179530A (en) * | 1989-11-03 | 1993-01-12 | Zoran Corporation | Architecture for integrated concurrent vector signal processor |
US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
JP2825906B2 (ja) * | 1990-02-01 | 1998-11-18 | 株式会社日立製作所 | 計算機システム |
US5289588A (en) * | 1990-04-24 | 1994-02-22 | Advanced Micro Devices, Inc. | Interlock acquisition for critical code section execution in a shared memory common-bus individually cached multiprocessor system |
US5155843A (en) * | 1990-06-29 | 1992-10-13 | Digital Equipment Corporation | Error transition mode for multi-processor system |
US6108755A (en) * | 1990-09-18 | 2000-08-22 | Fujitsu Limited | Asynchronous access system to a shared storage |
FR2678400B1 (fr) * | 1991-06-27 | 1995-08-04 | Texas Instruments France | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. |
US6000026A (en) * | 1992-06-22 | 1999-12-07 | Texas Instrument Incorporated | Multiple processor apparatus having a protocol processor intended for the execution of a collection of instructions in a reduced number of operations |
-
1991
- 1991-06-27 FR FR9107985A patent/FR2678400B1/fr not_active Expired - Fee Related
-
1992
- 1992-06-22 US US07/902,191 patent/US5740458A/en not_active Expired - Lifetime
-
1997
- 1997-07-10 US US08/890,894 patent/US7028145B1/en not_active Expired - Fee Related
- 1997-12-12 US US08/989,387 patent/US6085308A/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0157306A2 (fr) * | 1984-04-02 | 1985-10-09 | International Business Machines Corporation | Unité de traitement ultra-rapide |
EP0334627A2 (fr) * | 1988-03-23 | 1989-09-27 | Du Pont Pixel Systems Limited | Architecture de multiprocesseur |
Non-Patent Citations (3)
Title |
---|
ELECTRONIC DESIGN vol. 33, no. 5, 7 Mars 1985, HASBROUCK HEIGHTS, NJ, US pages 189 - 198; S. MAGAR ET AL: 'Interface arrangement suits digital processor to multiprocessing' * |
NEW ELECTRONICS vol. 18, no. 17, 3 Septembre 1985, LONDON, GB pages 30 - 37; C. MARVEN: 'Second generation DSP expands into new domains' * |
WESCON TECHNICAL PAPERS 30 Octobre - 2 Novembre 1984, ANAHEIM, CA, US pages 1 - 6; D. B. KRELLE: 'Increasing system performance using coprocessors' * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5483554A (en) * | 1991-11-14 | 1996-01-09 | Texas Instruments Incorporated | Modulator especially for digital cellular telephone system |
EP0710907A3 (fr) * | 1994-11-01 | 1998-04-22 | Motorola, Inc. | Circuit intégré effectuant des tâches multiples de communication |
EP0710908A3 (fr) * | 1994-11-01 | 1998-04-29 | Motorola, Inc. | Processeur auxiliaire dans un circuit intégré réalisant des fonctions multiples de communication |
Also Published As
Publication number | Publication date |
---|---|
US5740458A (en) | 1998-04-14 |
FR2678400B1 (fr) | 1995-08-04 |
US7028145B1 (en) | 2006-04-11 |
US6085308A (en) | 2000-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6754805B1 (en) | Method and apparatus for configurable multi-cell digital signal processing employing global parallel configuration | |
FR2752630A1 (fr) | Traitement de donnees multiples a une seule instruction dans un processeur de signaux multisupport | |
FR2678400A1 (fr) | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. | |
FR2752965A1 (fr) | Traitement de donnees multiples a une seule instruction utilisant des rangees multiples de registres vectoriels | |
EP2490144B1 (fr) | Circuit intégré programmable de cryptographie | |
EP0315529A1 (fr) | Machine multiprocesseur reconfigurable pour traitement du signal | |
JP2011123882A (ja) | 固定の特定用途向け計算要素を有する適応集積回路の構成及び動作のためのシステム | |
EP0913765A1 (fr) | Processeur avec commande d'instructions répétables ou multicycles | |
FR2605818A1 (fr) | Codeur-decodeur algebrique de codes en blocs reed solomon et bch, applicable aux telecommunications numeriques | |
US5742621A (en) | Method for implementing an add-compare-select butterfly operation in a data processing system and instruction therefor | |
EP0171856B1 (fr) | Processeur pour le traitement de signal et structure de multitraitement hiérarchisée comportant au moins un tel processeur | |
WO1998048518A1 (fr) | Systeme et procede pour calculer le resultat d'une equation de viterbi dans un seul cycle | |
FR2752629A1 (fr) | Traitement de donnees multiples a une seule instruction avec operations scalaires/vectorielles combinees | |
FR2796736A1 (fr) | Procede pour effectuer une multiplication avec accumulation dans un corps de galois | |
US5832257A (en) | Digital signal processing method and system employing separate program and data memories to store data | |
US20040153494A1 (en) | Method and apparatus for a pipeline architecture | |
EP3814893A1 (fr) | Accès mémoire de processeurs | |
FR2809835A1 (fr) | Systeme et procede d'arrondissement base sur une selection pour des operations a virgule flottante | |
FR2475763A1 (fr) | Processeur numerique a structure pipeline | |
EP1027643B1 (fr) | Microprocesseur pipeline a saut conditionnel en un cycle d'horloge | |
EP0927928A1 (fr) | Procédé de production amélioré d'un paramètre JO associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery | |
Tsao et al. | Parameterized and low power DSP core for embedded systems | |
EP0254628B1 (fr) | Circuit de traitement numérique de signal réalisant une transformation cosinus | |
FR2693571A1 (fr) | Système de traitement de données dont le programme de commande comporte des instructions dépendant de paramètres d'état. | |
FR2544524A1 (fr) | Processeur de signaux numeriques et multicalculateur |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20100226 |