[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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 PDF

Info

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
Application number
FR9107985A
Other languages
English (en)
Other versions
FR2678400B1 (fr
Inventor
Chauvel Gerard
Aussedat Francis
Calippe Pierre
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.)
Texas Instruments France SAS
Original Assignee
Texas Instruments France SAS
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 Texas Instruments France SAS filed Critical Texas Instruments France SAS
Priority to FR9107985A priority Critical patent/FR2678400B1/fr
Priority to US07/902,191 priority patent/US5740458A/en
Publication of FR2678400A1 publication Critical patent/FR2678400A1/fr
Application granted granted Critical
Publication of FR2678400B1 publication Critical patent/FR2678400B1/fr
Priority to US08/890,894 priority patent/US7028145B1/en
Priority to US08/989,387 priority patent/US6085308A/en
Priority to US09/606,057 priority patent/US7197623B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent 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.
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.
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.
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é.
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.
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.
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.
- 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.
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.
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.
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.
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.
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.
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.
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).
OPERATION 2
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.
Le Z du cycle précédent est transmis à Z-1.
OPERATION 3
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.
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)

REVENDICATIONS
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.
FR9107985A 1991-06-27 1991-06-27 Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. Expired - Fee Related FR2678400B1 (fr)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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