FR 2740578 A1 19970430 FR 9512966 A 19951030 Microprocesseur ultrafiltre a) domaine technique de l'invention Le terme de microprocesseur renvoie usuellement à un composant employant une mémoire externe pour le stockage de programme(s) et de données, tandis que le terme de microordinateur renvoie à un composant avec on-chip, ROM et RAM qui contiennent son programme(s) à exécuter. A cet égard, I'invention est un processeur spécialisé, plus spécialement destinée aux microprocesseurs à espace mémoire prédiflùsé et coercible, c'est-àdire pouvant être contraint ou comprimé lors d'une application déterminée, pouvant donner lieu à production grande série pour des mises en oeuvre petites, moyennes séries par pro gradation ou production de mémoires ROM personnalisées. b) état de la technique antérieure L'évolution et les enjeux industriels sur les composants RAM et ROM conduit naturellement à resserrer les liens entre le microprocesseur et son unité mémoire. En effet, les objectifs affichés sur les mémoires (256 méga*l bit), ouvrent de larges brêches de réflexion dans le domaine des systèmes prédiffusés. Ainsi, on se souviendra que pour resserrer les liens entre microprocesseur et language, le passage de la logique câblée au profit de la logique programmée devait permettre de développer les microprocesseurs au sein d'une abstraction de language, et ce, pour un gain de productivité concidérable. En poursuivant dans ce sens, le language devient générateur d'un espace topologiquement fermé, et donc prédiffusable. De fait, un des problèmes que l'on rencontre dans la réalisation à base de microprocesseur réside dans le nombre d'étapes et de métiers intervenants, pour lesquels l'encapsulation des systèmes est une exigence naturelle,ceci afin de libérer les utilisateurs d'un savoir technique, d'un champ de connaissance requis,et de réduire autant d'étapes de développement, de mises en oeuvre et de maintenances. En effet, I'état de la technique antérieure conduit à cette observation manifeste: les micro processeurs sont construits pour gérer un espace non organisé, ouvert, fini, principe général qui s'avère à l'usage, accessoire: bon nombre de programmes sont entièrement définis au départ et organisent par eux-même l'espace selon une méthodologie quasi-normalisée. Par ailleurs,pour nombre d'applications industrielles, son rôle se trouve d'autant plus réduit, qu'à performence égale, tout autre microprocesseur est susceptible de convenir. Les différents niveaux d'abstraction -depuis la conception jusqu'à la maintenance--, constituent alors les grands points à prendre en compte: si le microprocesseur n'est pas l'enjeu, il peut dispa raitre de la sphère de décision derrière un concept plus général.Pour cette raison, on peut voir à y introduire des éléments constitutifs des assembleurs de language. La réponse offerte par l'invention consiste donc à intégrer une sphère de connaissance issue des assembleurs de language, qui, grâce à une démarche plus globale, se sont pourvus des outils d'encapsulation afin de pouvoir répondre à l'évolution très rapide du support logiciel et du contexte matériel des microprocesseurs. L'invention est donc la traduction matérielle des groupes, structures, modèles mémoire et classes d'objets (Annexe A): 1) Divers GROUPEs d'objets tels que EGROUP (système d'exploitation), IGROUP(code group), DGROUP (data group), SGROUP (static data group). 2) Diverses CLASSEs d'objets qui composent les groupes, sur lesquels elles sont dirigées: code, constantes, variables, etc.. 3) Divers FORMATs d'objets tels que le bit, octet, mot, double-mot, quad-mot . . qui composent les données. 4) Diverses PORTEEs d'objets, tels que static' lorsque une variable doit être stockée dans une mémoire sauvegardée. 5) Divers MODELEs mémoire exploités par les assembleurs pour reconnaître le volume mémoire utilisé. Aussi, le concept de processeur ultrafiltre a-t-il été développé en vue de distribuer sur l'espace adressable, les différents composants mémoire que l'on trouve sur le marché, et ce, tout en disposant d'un mécanisme de reconnaissance interne emprunté à l'assembleur, mécanisme qui, par ailleurs, permet d'inclure des systèmes plus typiques tel que convertisseurs A/N, N/A, modem, drivers . Le résultat se veut alors comparable aux barettes mémoires SIM que l'on trouve à insérer dans les ordinateurs, le microprocesseur étant installé sur un module de base auquel diverses extensions peuvent être jointes: espace mémoire, système d'exploitation et logiciel, pouvant de ce fait etre facilement prédiffusés (figure 7). Ainsi, la philosophie mise en oeuvre ici, résulte de l'idée qu'il est souvent plus intéressant d'additionner les choses plutôt que de chercher à les confondre en une seule: 'Entia non sunt multiplicanda praeter necessitatem' William of Occam. c) exposé de l'invention Dans une topologie à fermeture d'espace, c'est évidemment le système de voisinage le plus petit que l'on cherche à produire. Aussi, pour concrétiser matériellement la fermeture de l'unité d'espace, I'invention améliore l'adressage d'un processeur par l'introduction au niveau matériel de la notion de classes d'objets. La présente invention est un processeur caracterisé en ce que les adresses mémorisées sur l'unité de traitement sont constituées d'un ensemble relatio-fonctionnel de champs de bits composant deux partitions non vides de champs, telles que: # la partition dite 'offset d'adresse' est purement fonctionnelle, opérable sur l'unité de traitement du processeur et constituée du champ de bits le moins signifiant; la partition dite 'sélecteur de classe' est relationnelle, non opérable sur l'unité de traitement, et constituée d'un ensemble relatio-fonctionnel de champs de bits destiné à distribuer l'espace selon un ensemble d'unités fonctionnelles. telles que unité mémoire, unité d'entrée/ sortie,ou pour la réunion distributive de sous-unités existantes en des unités nouvelles,teHes que unités de format. Pour construire ce mécanisme de fermeture d'espace, un bus d'adresse Ebus (en-1@ .,e0) est partitionné en deux sous-bus,un bus de poids faible (ep-1, ,e0) pour le transport des offsets d'adresse, et un bus de poids fort Wbus(en-1 1 sep) lui-même constitué d'un ensemble de sous-bus wbusj,fonctionnels pour la production d'espace,ou relationnels pour la distribution ou réunion distributive d'espace.La base d'un tel Ebus peut alors être réécrite: (en-1, .,e0)=(Wx,#-1, .Wx,0. ,Wi, &gamma;-1,. ,Wi, 0, ., W1,&alpha;1, , w1,0, ep-1, .,e0) De façon générale on définit un bus ultrafiltre, Eb(#,... ..&gamma;... ...&alpha;.p-1), avec son peigne d'adressage associé, Wbp(G) Y o::), comme étant un b-bus relatio-fonctionnel dont le sous-bus d'ultra-puissance 0 est le fonctionnel 'offset' Ex0=E(O)-(ep-1, ,e0) On note le bus ultrafiltre Eb(0- > x) constitué d'un sous-bus offset d'ultra-puissance 0 et d'un ensemble de sous-bus d'ultra-puissance de I a x Son peigne d'adressage associé est noté W(E), constitué des sous-bus d'ultra-puissance de I à x D'où la notation d'adresse: On définit un sous-bus d'ultra-puissance 'i', ebusi, du bus ultrafiltre Eb. et,conséquemment, on déduit l'indice de champ 'i' sur une adresse,comme étant la valeur de l'ultra-puissance qui lui correspondant sur le bus ultrafiltre. Tel que: wU Ei E 111- ebus' (YI := st-t 0, avec pour le sous-bus offset, Abus: 1 Abus ru E(O]=ebu-sU(p]i= 'o L'invention étend ce mécanisme relatio-fonctionnel à l'ensemble des paramètres que rassemble un assembleur de language (annexe .X > , chaque paramètre, détient un indice de champ relativement à un wbus1(-y) du peigne d'adressage W(E), et il est mémorisable sur les registres du processeur à hauteur de leur partition correspondante.L'ensemble des champs destinés au peigne d'adressage composent alors le 'sélecteur de classe' d'une adresse, qui peut être mémorisée sur un registre a part entiers ou bien sur une partition signifiante d'un registre général. On obtient alors sur W(E), une information qui réunit l'ensemble des caractéristiques de l'objet à atteindre, de sorte que, le processeur devenu conducteur de classes d'objets, son espace mémoire est totalement organisé Processeur et espace mémoire réalisent ainsi une entité unique de classement d'objets dont le bus ultrafiltre est à l'initiative (figure 1). Aussi, cette co-occurence processeur-memoire succitée par une topologie à fermeture d'espace, conduit à cet avantage remarquable, qui est la possibilité de pouvoir réviser l'évolution du système au cours du temps, et ce, sans qu'il soit nécessaire de prévoir aucune stratégie sur des critères familiaux, car l'univers du processeur est totalement lié à des applications fixes et donc non transportables. Signalons enfin qu'un élement de W(E) peut parfaitement etre un fonctionnel (producteur d'espace). En effet, pour exemple, si un relationnel wbus1 (i) de W(E) distribue l'espace selon une unité ROM et une unité RAM, un fonctionnel wbusi-ll) permettra d'étendre les possibilités de classement en générant deux partitions sur l'unité ROM et deux partitions sur l'unité RAM. En définitive, on distingue sur un peigne d'adressage W(E): -- les sous-bus fonctionnels qui ne sont pas attribués, leur seule fonction étant de produire l'espace adressable -- les sous-bus relationnels qui sont attribués.Ils se caractérisent en ce qu'ils distri buent l'espace selon un ensemble d'unités fonctionnelles; certains d'entre eux pouvant par ailleurs être des 'relationnels purs' car il ne produisent pas d'espace: ils réalisent de nouvelles unités fonctionnelles par réunion distributive de sous-unités existantes. On définit le sous-bus d'ultra-puissance 'i', ebusi sur Eb, et on déduit l'attribut d'un champ 'i' d'une adresse, comme étant celui de l'ultra-puissance qui lui correspond, attribut qui est nul pour une production, et non nul pour une distribution. Ainsi, un ultrafiltre Eb peut se définir comme un système à fermeture d'espace, le peigne d'adressage étant considéré comme ensemble de production ou de distribution d'espace.Ainsi, nous déduisons quelques champs relationnels que l'on peut voir à introduire sur les adresses: -- [SV] un champ service, qui distribue sa production en une unité fonctionnelle (UF), I'unité de travail du processeur, pour le programme(s), les unités spécialisées.., et une unité relationnelle (UR) ou 'unité de service' attribuée au processeur pour ses relations avec les unités fonctionnelles, pour le contrôle d'interfaces par exemple. -- ISPt un champ espace, qui distribue sa production selon une unité d'entrée/sortie, et une unité mémoire. -- IPLI un champ plantaire, qui distribue sa production selon une unité ROM et une unité RAM. -- [T] un champ temporel qui distribue une partition d'espace selon une unité à mé moire sauvegardée (SRM) et une unité à mémoire non sauvegardée (RAM); ce que l'on peut également appliquer à une unité ROM pour distinguer ROM programmable et non programmable, dans ce cas ITI et tPLI sont reunis. -- [F] un champ formatif, relationnel pur, qui opère une réunion distributive de sous unités existantes, afin de répartir les données selon une unité de format. Il génére une relation d'espace selon le format des donnees que l'on souhaite atteindre. On notera ainsi l'option naturelle d'un code opératoire au format mot, accédé sur un seul cycle. Remarque: On remarquera que la place des champs relationnels purs est indifférente, il importe seulement que le champ offset d'adresse soit toujours le moins signifiant. De même, on peut voir à définir sur une adresse, un ensemble de champs fonctionnels: -- ICPJ un champ coplatiaire, qui sert à augmenter la production de PLI. -- lSGl un champ de segment, qui ne se distingue du coplanaire que par l'existence d'un champ relationnel intermédiaire. auquels s'ajoute le champ offset, pour réaliser l'adresse ultrafiltrée sélecteur-offset: -- [A] un champ ogsef, fonctionnel, qui sert à la production des offsets d'adresse, et complete les adresses transportées par le bus ultrafiltre Eb Eb ([SV],[SP],[PL],[CP],[T],[SG],[F],[A]) (F1) Pour ne pas augmenter inconcidérement la taille du bus ultrafiltre, certains relationnels peuvent être implantés classiquement,par interfaçage. Ainsi,pour de petites réalisations,il parait raisonnable de se passer du champ 'service', voir du temporel' dans la mesure où il s'agit généralement d'une zone de sauvegarde très réduite:on peut prévoir à les installer sur l'unité d'entrée/sortie par exemple. Ainsi, à l'exception des relationels purs, les champs réalisent un partitionnement ordonné du bus ultrafiltre. Il devient alors possible de définir les distributions d'espace.Lorsque celles-ci ne sont pas implicites, comme c'est le cas du planaire' qui distribue l'espace entre compte sants ROM et RAM, celles-ci peuvent etre décrites au sein d'un ensemble de relations dit, 'groupe de relations' . Le 'groupe de relation' est un ensemble de règles à appliquer entre champs relationnels et fonctionnels pour assurer l'ouverture d'une unité concernée et ce, en accord avec son principe distributeur. Ainsi, une donnée située sur l'unité ROM sera accessible durant un cycle de lecture; elle ne le sera pas durant un cycle d'écriture. Sur le système de voisinage, chaque relationnel est susceptible d'ajouter une régle au groupe de relation > ss. Ainsi, bien qu'une solution minimaliste puisse être envisagée en laissant à l'assembleur de language le contrôle des règles, celle-ci peuvent etre prises en compte par le système afin de garantir son intégrité.Au sein d'un microprocesseur composé d'un processeur ultrafiltre (uP) et d'une unité d'interruption (@T), elles peuvent donner lieu à des interruptions particulières, dites (au-delå de la chose demandée). La réalisation mettra en oeuvre quelques règles. d) description des dessins En référence de l'invention,nous présentons un mode de réalisation possible,une variante 16 bits et une variante 32 bits, en conjonction avec ses dessins d'accompagnements. figure 1: est une vue schématique d'une entité processeur-mémoire pour le transport d'adresses ultrafiltrées. figure 2:est une vue schématique d'un microprocesseur composé d'un processeur ultrafiltre, d'une unité d'interruption et d'une unité d'interfaces pour la gestion du groupe de relation. figure 3: est le 'datapath' d'un processeur 16 bits disposant, pour la production d'une adresse, d'un registre adressable 'sélecteurs de classe' et d'un registre adressable général. figure 4: est le 'datapath' d'un processeur 32 bits disposant d'un registre adressable pour la production d'une adresse ultrafiltrée ou d'une donnée. figure 5: est le schéma-bloc d'une unité arithmétique et logique itérative (ALUA), à 4 variables de sélection, pour le traitement d'une adresse ultrafiltrée. figure 6:décrit une application possible d'un microprocesseur 16 bits à processeur ultrafiltre pour gérer 1M octets de mémoire programme selon 4 partitions de plans. Selon le modèle SMALL, deux partitions sont représentées. Il dispose d'une unité d'interfaces génératrice d'interruption ULTpetita figure 7: décrit, depuis la réalisation de la figure .6, une mise en oeuvre possible selon les différents modèles mémoire issus des assembleurs de language. e) mode de réalisation de l'invention Le microprocesseur décrit ici est principalement destiné à la gestion de classes d'objets situées en mémoire ROM ou RAM, mais le concept peut être étendu à des systèmes plus spécialisés pourvus qu'on puisse les adaptér à un espace prédiffusé. Ainsi, I'invention réalise une variante de microprocesseur à processeur ultrafiltre, de type 'little-endian' afin de mémoriser octets, mot, double-mots en prévision du champ 'formatif (la donnée la moins signifiante est toujours contenue dans l'adresse mémoire la plus basse, ce qui s'applique aux bits dans les octets, aux octets dans les mots, et aux mots dans les double-mots .) Pour application du peigne d'adressage, la présente réalisation devra prendre en compte la largeur du bus de données pour bien dimensionner le microprocesseur.A cet égard, on peut voir à distinguer une machine 16 bits, d'une machine 32 bits. La première variante suppose un espace adressable de 64K qu'il faut voir à augmenter pour l'installation des classes,tandis que la seconde variante dispose d'un espace d'adressable suffisant de 4 giga octets. Ainsi, il convient pour une machine 16 bits, que les registres comprenant l'offset d'adresse soient accompagnés d'un registre 'sélecteur de classe, tandis que pour une machine 32 bits, un même registre pourra contenir le selecteur et l'offset d'adresse (figure 3 et 4). Donc, pour application de w(E)linvention développera deux variantes de microprocesseur à processeur ultra-filtre, une variante 16 bits destinée à offrir une capacité mémoire de 1M octets,modulable, à mémoire organisée; et une variante 32 bits pour une mémoire organisée selon un offset d'adresse de 223 = 8 méga octets. Dans les deux cas, les champs relationnels généreront un 'groupe de relation' qui sera pris en compte, soit directement au niveau du processeur, soit au niveau de l'interface de l'unité en question. Ainsi, pour répondre aux règles de relation (figure 2), le système général peut composer, pour la variante 16 bits (resp. 32 bits), un microprocesseur 91P) comportant: o:) une unité processeur (UP), composée d'une unité de commande pour le traitement de microprogrammes, et d'une unité de traitement spécialisée pour traiter les adresses ultrafiltrées; une unité d'interruption (@T), pour les demandes d'interruptions consécutives aux violations de règle sur le groupe de relation. y) un bus ultrafiltre (EDbus22)(resp.(EDbu532))multiplexé adresses/données, composant d'une ressource Dbus16 (resp. Dbus32) pour les donnée, et d'une ressource ultrafiltre Ebus22 réalisant un sous-bus offset E(() > de 16 bits (resp. 23 bits), et un peigne d'adressage W(E) de 6 bits (resp. 9 bits) b) d'une unité d'interfaces (ul) sélectionnées par w(Edisposant d'un service pour le controle du groupe de relation. La fonction première d'un peigne d'adressage est celui de driver d'interface. L'ensemble des partitions adresses transportées par le bus de peigne W'bus, constitue autant de sélecteurs possibles qui produisent. à fortiori, autant d'interfaces, chaque adresse devant sélectionner une interface et une seule. Conséquemment, on peut voir à définir cet ensemble comme une unité ultrafiltre d'interfaces dont le rôle est de permettre au processeur d'accéder à la partition d'espace de la classe recherchée.Le microprocesseur dispose donc tout naturellement d'une unité d'interfaces dont une fonction manifeste est de gérer les situations d'exception @Ltpetita On déduit alors quelques exemples de relations possibles: temporel # spacial La disparition de T de la réalisation 16 bits résulte d'une volonté de réduction de son peigne d'adressage W(E). Pour répondre à la nécessité de sauvegarde des variables statiques, on peut cependant voir à introduire une mémoire à données sauvegardées (SRM) sur l'unité d'entrée/sortie (figurel), de sorte que T@ soit conservée au niveau des sélecteurs d'objets. II va de soi que la disparition de ITI a également pour conséquence la disparition d'un controle sur l'accès à la mémoire sauvegardee. Enfin il faut encore noter que la mémoire sauvegardée devra être distribuées sur deux plans ou quatre plans (en raison du champ formatif) et leur accès devra donc être géré par le logiciel au niveau des classes d'objets:une classe 'SDATA' étant alors partitionnée entre 'SDATAX', 'SDATA16' et 'SDATA32'. --format 2 plan -le 'formatif est un relationnel pur,autrement dit. il ne participe pas à la production d'espace. L'espace mémoire étant à topologie fermée, celui-ci peut aisément donner lieu à une implantation transplanaire. Pour un microprocesseur 32 bits par exemple, I'existence du champ formatif sur le bus ultrafiltre permet l'accès aux données 8,16,32. bits sur un seul cycle machine.Ainsi, pour exemple, le tableau ci-dessous représente la manière dont le bus ultrafiltre répartit les données, dans le cas ou il dispose de 2 coplanaires, cp I ,cp0 sur W(E), et qu'il tient compte de la relation format X plan: FFFFh planaire nombre nombre formais + de de plans supportés formatif coplanaire plans data par l'actressage double-mol 1 2 1 @@@@ - octet [1] 0 bit bit @@@@@ 2 4 2 bit-octet [2] 1 bits mot [2] bit 0000h octet 3 8 4 bit-octet [1] 2 bits mot [2] bits &num;11 &num;10 &num;01 &num;00 double [4] coplanaire cp1,cp0 La question qui intéresse alors un ultrafiltre qui dispose du champ formatif porte bien évidemment sur les violations de régles de relation. On reconnait ici la possibilité d'une interruption de type ULTpctita consécutive à l'introduction de ITI. En effet, si le microprocesseur dispose d'un espace capable de gérer des multiplets octet, mot, double-mot, I'écriture d'un double-mot devra débuter sur le coplanaire&num;00, ainsi que le montre le tableau t dessous. Sinon,son écriture sera incomplète et, à défaut d'étire parfaitement contrôlée par le logiciel d'exploitation, elle devra être signifiée au processeur par l'interfan;;e de l'unité format en question au moyen d'une interruption de type ULTpetita coplanaires 00 01 10 11 bit 00 1 1 1 1 octet 01 1 1 1 1 format mot 10 1 0 1 0 double 11 1 0 0 0 --spacial # modèle De même, une ULTpetj,a peut survenir en cas de contradiction avec le modèle mémoire mis en oeuvre. Par exemple,dans le cas où Ic modèle mémoire est déclaré TINT, on ne pourra pas écrire ou lire sur son segment &num;3.Une interruption pourra être générée par l'unité d'interfaces en accord avec le signal de configuration (MemConfig) située sur une des broches de l'ultrafiltre d'interfaces du microprocesseur. -- planaire 2 planaire - Enfin, il y a un ensemble de relations matérielles, concidérées comme réflexives. En effet, il faut penser à la possibilité d'accéder à une unite RAM ou ROM pendant un cycle de lecture ou un cycle d'écriture. Placée sur l'unité ROM, la classe 'const' ne pourra être adressée pendant un cycle d'écriture, ce qui n'est pas le cas si elle se trouve placée sur l'unité RAM. Cette exception, si elle peut avoir lieu, doit donc être prise en compte au niveau de l'unité interface (U1) afin de retenir tous les cas de figure, et ce, contrairement la classe 'stack' par exemple, qui se trouve nécessairement sur l'unité RAM. Dans ce cas, on peut voir à forcer son sélecteur assigné à hauteur du champ planaire, et donc au niveau du processeur.Quoi qu'il en soit,les solutions du contrôle logiciel ou interfaçial subsistent dans tous les cas. remarque. si le champ de service [5v] n'est pas défini sur le peigne d'adressage,comme c'est le cas pour la variante 16 bits, celui-ci peut néanmoins être prise en compte au niveau de l'unité d'entrée/sortie (ES). De même, pour gérer le groupe de relation décrit ci-dessus, il est toujours possible de ne prévoir qu'une seule interruption ULTpeta sur (IT). En effet, on peut voir à implanter sur l'interface de l'unité d'entrée/sortie (au niveau de [SV]), un registre de signalisation des exceptions de règle, noté 'Matquage' sur la figure 2, que le programme d'interruption de ULTpetita ira lire pour reconnaitre l'exception survenue. PROCESSEUR Comme c'est la production et la transmission d'une adresse qui génèrent les changements à apporter à un processeur ultrafiltre, à la base. est donc constitué le bus (EDbus), multiplexé adresses/données,qui réalise une ressource de bus de données (Dhus). bidirectionnel,pour la transmission des données entre le processeur et l'ensemble de ses unités, et une ressource de bus ultrafiltre d'adresse (Ehus), uni-directionnel.partitionné selon l'invention,qui permet d'adresser les données transportée par Dbus.Pour la variante 16 bits (figure 3), les adresses circulant sur le processeur (UP) sont obtenues par réunion d'un sélecteur de classe issu du registre adressable (CF) et d'un offset d'adresse qui est issu de l'unité (UP - CF). La taille d'un sélecteur et la taille de l'offset déterminent la largeur des bus ultrafiltres: pour une machine 16 bits, données et adresses ont des largeurs différentes. Pour la variante 32 bits (figure 4), un registre peut contenir à la fois le 'sélecteur' et l'offset, ce qui conduit à autant de simplifications: données et adresses seront de meme largeur. Comme on peut le remarquer sur les figures 3 et 4. les échanges entre le bus de données et l'UP sont conduits par une interface,Dface.Elle dispose d'un ensemble de registres d'instruction et d'affectation qui servent l'unité de commande (UC).C'est elle qui contrôle Dface pour répartir les données sur le registre(s) adressable(s). sur l'unité(s) arithmétique(s), sur la ressource de registres (datin, datout), et qui contrôle le renvoie des résultats sur le bus de données.Pour ce faire, le processeur met à sa disposition un bus bi-directionnel (din,dout) sur lequel circulent les données, ainsi que des ressources en bus pour adresser GF et CF (adrin I) et (adrin2), chaque registre adressable disposant par ailleurs d'une sortie sur le bus uni-directionnel (xbus), ainsi que d'une entréelsortie sur le bi-directionnel (Ybus.zbus) dont la fonction principale est d'alimenter l'unité(s) arithmétique(s) (ALU). Dface renvoie sur le bus de données les résultats fournis par l'unité de calcul et transportés par le bus (din,dout).A cet effet,le processeur dispose également d'une ressource de registre (datin, datout) utilisé pour les opérations qui requièrent de multiples chemins d'accès, ceci afin de faciliter la lecture ou l'écriture de la mémoire. Elle peut etre chargé ou déchargé sur (din,dout), chargé ou déchargé sur (Ybus.Zbus), ou déchargé sur (Xbus). Ainsi, puisqu'ils servent également au transport des adresses, xbus et (Ybus.Zbus) doivent etre ultrafiltres: Xbus22/32 et (Ybus22132, Zbus22 32) selon la variante réalisée. Ils sont donc constitués d'un peigne d'adressage w(x) et W(Y,Z) et d'un sous-bus offset x(o) et (Y(0),Z(0)), de sorte qu'une adresse qui circule sur le processeur sera une toujours adresse ultrafiltrée: sélecteur+offset. Enfin, notons,en sortie du processeur 16 ou 32 bits,la ressource Eface qui offre,pour le cas, deux registres dont l'écriture sur Ebus22132 perrnet de transporter une adresse ultrafiltrée: -- fetch register' qui est un registre principalement utilisé pour aller chercher dans la mémoire les opérandes source et destination d'une instruction pour le chargement des résultats dans la mémoire; --'data address' est principalement utilisé pour aller chercher la destination mémoire des opérandes. Remarque:sur le schéma-bloc de la figure 5 chaque tranche de unité arithmétique itérative est constituée d'une cellule de report, d'une cellule de résultat et de deux cellules de génération et propagation relatives aux variables auxiliaires Gi et Pi. La commande d'une tranche est ainsi assurée par les variables de selection S0 1 et S2 3 ainsi que par la variable M0 chaque groupe réalisant habituellement une fonction logique universelle M0 définit ici le mode arithmétique ou le mode logique. Pour l'exemple, on peut s'appuyer sur le tableau d équations donné ci-dessous: M0= 0 mode anthmétique M0= 1 mode logique G1 = S3 A1 B1 + S2 A1 B1 P1 = S1 B1 + S0 B1 + A1 R1 = G1#P1#(C1+M) Ci+1=G1 + P1 C1 (53,52,52,50)=(1,1,0,0) transmission A@ (53,52,51,50)=(1,0,1,0) transmission bi variante 16 bits L'ultrafiltre Ebus sera constitué d'un peigne d'adressage Wbus de 6 bits et d'un sous-bus offset d'adresse Abus, de 16 bits (64K octets): E22 ([SV=0]. [SP=1].[PL=1].[CP]1].[T=0].[SG=2]. [F=1].[A=16]) W6(0,1,1,1,0,2,1) E22(0,1,1,1,0,2,1,16) (F2) relationnel espace planaire coplanaire ~ ~ ~ ~siegf5meetnl 1' ~~ f.l... ~ 1 . ~ ~ fonctionnel b Les changements concernent principalement la mémorisation des adresses qui suit la régie du partitionnement du bus. La ressource de calcul, elle, n'est soumise au partitionnement que dans la mesure où elle ne travaille que sur l'offset d'une adresse: le sélecteur d'adresse destiné au peigne d'adressage,et l'offset adresse sont alors mémorisés séparément, mais leur exploitation se fait de manière conjointe,ceci afin de constituer une adresse ultrafiltrée.Ainsi que le montre le 'datapath' de la figure 3, on obtient un processeur (MP) à unité de traitement (UT) spécialisée, dont les blocs fonctionnels les plus caractéristiques sont: a) un registre adressable dit, 'sélecteur de classe' (CF). de 8 registres.Le contenu de chaque registre est l'adresse sur le peigne d'adressage d'une classe d'objets Pour la réalisation, on obtient des sélecteurs de largeur 6 bits: 5 u |sp|pl|cp|f|sg1|sg0@| un un registre adressable pour 8 registres ( de largeur 16 bits, comprenant des registres pointeurs d'offset d'adresse ainsi que des registres de données générales. y) un décaleur 22 bits (BF) pour fournir aux données un chemin d'accès jusqu'a (CF). #)une unité arithmétique et logique 22 bits IALU) aménagée sur ALU16-21 afin de traiter les seuls offsets d'adresse s) une interface d'adresse (Eface),constituée d'une ressource de registres disposée entre le processeur et Ebus22. On retient ainsi que la partie la plus signifiante d'un registre de Eface est alimentée par le fichier sélecteur (CF), tandis que la partie la moins signifiante est alimentée par l'unité (UP - CF), particulièrement par le fichier général (GF). L'unité (ALU) n'opère qu'au niveau des sous-bus offset, X(0) ou Y(0) alimentés notamment par le fichier général,ou par la ressource (datin,datout) forcée à 0 sur les tranches 16 à 21 La partition sélecteur d'une adresse n'étant pas soumise au calcul, il s'agit tout de meme d'assurer le synchronisme des signaux.Ainsi, par exemple, sur une ALU simple à quatre variables de sélection S0-3 3 (figure5). on peut choisir de transmettre purement et simplement la retenue à hauteur du sélecteur; de mème, pour assurer la transmission du sélecteur à travers l'ALU, les variables de sélections SO-3 des tranches de 16 à 21 peuvent être forçées pour la transmission de l'une ou l'autre de ses opérandes A ou B transportés par w(x) ou W(Y): (S3,S2,S1,S0)=(1 10.0) pour la transmission de A.De fait, il convient également de modifier les cellules de report sur les tranches de l'ALL16-21 ainsi que les cellules de résultat qui, pour le cas, seront forçées pour le mode logique (M0=1) Enfin, on note que par Z(0), l'ALU renvoie le résultat R sur le processeur (CF. GF. EFACE...): sélreur offset L t C In x )i E 7 I O A + 13 A O 8 5 E3 x | y | R F7c out Un autre point concerne l'accessibilité du fichier sélecteurs, car elle conduit à introduire des intructions particulières pour la gestion de CF: au moins une instruction d'écriture des sélecteurs de classes,et un jeu de sauvegarde/restauration sur 'stack' des sélecteurs de classe. II faut donc offrir aux données un chemin entre Dface et le fichier sélecteurs (CF). Pour une opération de sauvegarde, il faut pouvoir décaler les bus ultrafiltres vers la droite,depuis la partition 'sélecteur' sur la partition 'offset' Pour cette opération, il faut donc introduire dans lire un décaleur (barrel shifter) qui pennette de décaler l'information sélecteur sur la partition offset d'un bus, ceci afin de pouvoir l'amender sur l'interface de données (DFACE). De la même façon, pour une opération de restauration ou d'écriture d'un registre sélecteur de CF, une donnée issue de Dbus doit pouvoir être décalée vers la gauche, sur la partition 'sélecteur' de l'un des deux bus ultrafiltres. Ainsi,le décaleur doit couvrir l'ensemble des 22 bits des bus Xbus22 et (Ybus22, Zbus22), et ce, contrairement à L'ALE qui n'opère que sur les données et offsets transitant sur les sous-bus d'offset x(o) ou Y(()). On note par ailleurs que l'introduction de sélecteurs de classe au sein de lY? a conduit à la formulation des adresses physiques selon deux mode de fenêtrage d'adresse: le mode libre et le mode assigné: selon le cas, on distinguera deux types de fenêtres: -- fenêtre statique pour le mode assigné Elle est constituée d'un registre pointeur d'offset adresse tel que le compteur programme(PC), le pointeur de pile (SP) et des sélecteurs de classe qui leurs sont assignés, 'code' ou 'stack': ils ont même adresse dans leur fichier respectif, l'assignation d'adresse étant le fait du microprogramme de l'unité de commande (uc).Ainsi, pour exemple, on retiendra: i) la fenêtre 'code' ('code', pc) à l'adresse 0 ii) la fenêtre 'stack' ('stack', sp), à l'adresse I iii) une fenêtre 'emulFPu' qui peut correspondre au cas d'une gestion par le magiciel des formats de donnée supérieurs (double-mot, quad-mot) à la capacité de l'UP. -- fenêtre dynamique pour le mode libre. Elle est constituée d'un registre général, Areg; Breg, Creg, Dreg, 'extra data' et de tout sélecteur de son choix, ce qui correspond au cas 'explicite', leur désignation se faisant au niveau d'une ligne de commande du programme. Parmi celles-ci, on peut encore distinguer une fenêtre 'usual data' (data', registre general) qui répond à un cas 'implicite'. la fréquence d'utilisation de la classe 'data' étant trés élevée, il convient d'en améliorer l'accessibilité. Enfin, on note encore que l'adresse du registre à accéder sur les fichiers CF et GF sera la même pour une fenêtre statique. Pour une fenêtre dynamique, I'interface adressera CF et GF en fonction de la ligne de commande. Par exemple, celle-ci devra pourra offrir l'adresse du sélecteur de classe par préfixage, et l'adresse du registre général sur le code opératoire. variante 32 bits L'ultrafiltre Ebus sera constitué d'un peigne d'adressage Wbus de 9 bits et d'un sous-bus offset, Abus de 23 bits (8 méga octets): E32 (|SV=1|,|SP=1|,|PL=1|,|CP=2|,|T=1|,|SG=1|,|F=2|,|A=23|) W9(1,1,1,2,1,1,2) E32(1,1,1,2,1,1,2,23) (F3) relationnel service espace planaire planaire coplanaire I !rl temporel C==- B = fonctiionnel Dans ce cas, les changements à apporter au processeur ne concernent plus le registre adressable, c'est alors la ressource de calcul qui est soumise au partitionnement puisque les composantes opérables, données et offsets d'adresse, ne sont plus de même largeur.Ainsi, faut-il prévoir deux ressources de calcul distinctes (UOD) et (UOA). Comme le montre le 'datapath' de la figure 4, on obtient un processeur à unité de traitement (Ur) spécialisée, dont on retient les blocs fonctionnels caractéristiques: (i) un registre adressable de 16 registres 32 bits (GF), comprenant douze registres pointeurs d'adresse ultrafiltrée, tels que ostream,(DS) et (ES) pour la classe 'data'. ,ainsi que quatre registres généraux, A.B.C.D pour les données Les adresses mémorisées par les registres pointeurs sont constituées d'une partition moins signifiante 'offset' et d'une partition 'sélecteur de classe' plus signifiante.Pour la réalisation, on retient des sélecteurs de largeur 9 bits: 8 o sv sp pl cp1 cp0 @ sg f1 f0 ss) une unité arithmétique et logique (ALUD) 32 bits, pour les opérations sur les don nées générales. y) une unité arithmétique et logique (ALUA) 32 bits, aménagée sur ALUA23-31 afin de traiter les seuls offsets d'adresse. une interface de bus d'adresse (Eface) constituée d'une ressource de registres disposée entre le processeur (vP) et Ebus32. Un processeur ultrafiltre 32 bits, conduit à exploiter la largeur les registres.Pour le pointeur de la classe 'stack' (SP) par exemple, il convient de remarquer qu'une opération d'incré mentation ou de décrémentation sur SP ne s'applique que sur les 23 bits de l'offset, et non sur le registre tout entier. Pour obtenir un tel contrôle, la machine doit disposer de deux ressources de calcul: une premiére unité arithmétique et logique PALUD de 32 bits pour opérer sur les données, une seconde unité arithmétique et logique ALUA, 32 bits également mais qui, elle, opérera sur les seuls offsets d'adresse. ALUA et ALUD sont donc alimentées par les bus ultrafiltre Xbus32 et (Ybus32,Zbus32), chargés principalement depuis le fichier général,ou depuis la ressource (datin,datout). La partie sélecteur d'une adresse n'étant pas soumise au calcul, ALUA n'opère véritablement qu'au niveau des sous-bus offset X(0) et Y(0); au niveau du sélecteur, il s'agit de conserver le synchronisme des signaux. Ainsi, de même que pour la variante 16 bits (figure 5), on peut choisir de transmettre purement et simplement la retenue à hauteur du sélecteur. De même, pour assurer la transmission du sélecteur, les variables de sélection S0-3 3 des tranches de (ALUA 23-31) sont forçées pour la transmission de l'une ou l'autre des opérandes A ou B transportées par W(X) ou W(Y):(S3.S2.S1.S0)=(1.1.0.0) pour la transmission de A.Il convient donc de modifier les cellules de report des tranches de l'ALU23 31,ainsi que les cellules de résultat qui,pour le cas,seront forçées pour le mode logique (M0=1)Ainsi,pour une addition de type (adresse+ donnée), la valeur de la donnée à hauteur des bits 23 à 31 n'interviendra pas dans le calcul. Enfin, on note également que par Zbus.ALUD et ALLA renvoient le résultat R sur le processeur (GF. EFACE .): électeur offset Cin x 4 3 E i O A L-LU + I irdif ' indic 7 1 2 | A | O | 3 s L g x &verbar; Y ' 3 1 6 1 8 &verbar; 5 I R ,,.,,.." Fj 3 s s 7 s s Pi court jeu d'instructions L'invention conduit naturellement à estimer le jeu d'instruction en vue d'introduire la notion de classe d'objets.De fait,on retiendra que le format des instructions sera très dépendant du nombre de registres réservés aux sélecteurs de classe. Si ce nombre est limité (#16),on peut voir à utiliser le préfixage, ce qui conduit à la réservation d'octets (par exemple O()h à OCh pour la variante 32 bits). tx)OO 'code' oom 'stack.' 00w dS' am 'extradata' MOO 'sta6çdata' 0101 christ Ola 'bss' préfixe de dssse code opératoire De même, il convient de signaler que l'introduction du champ 'formatif sur le peigne d'adressage conduit à sa prise en compte au niveau du format d'instruction. Cette remarque conduit naturellement à produire un code opératoire dont la largeur est le mot.En effet, un seul octet ne permet des lors plus de contenir l'ensemble des informations nécessaires au décodage d'une instruction (en conjonction avec le peigne d'adressage W(E)). Dans le cadre d'un processeur ultrafiltre, I'accès aux deux octets étant simultané, I'ensemble du jeu d'instructions peut etre accédé sur un seul cycle machine, et ce tout en ayant la possibilité de disposer de plusieurs modes d'adressage.Aussi, le tableau ci-joint donne un exemple de format général qui retient un premier champ correspondant à la classe (préfixage interne), ainsi qu'un champ pour gérer 23 formats de données pour une exploitation des données par un FPL ou par son émulateur sur EGROUP (float, long, tbyte .): o classe F rode A B C D E mem i) le champ 'classe' permet le préfixage interne, le code opératoire pouvant par exemple restituer l'ordre des classes sur le jeu d'instruction: -- les instructions de saut, call, jmp, ret, s'appuyent sur la classe 'code' 0000 -- les instructions push et pop de gestion de la classe 'stack': 0001 -- les instructions d'arithmétique flottantes, toutes les instructions du FPU: 1111 ii) le champ 'mode' pour les modes d'adressage: iii) le champ reg/mem qui décrit le sens de transfert; iv) le champ format décrit le format de la donnée transférée (bit, mot, double-mot, ..); v) le champ signitiant.P1B.C,D.E. constituant les bits signifiants pour la reconnaissance d'une instruction. application industrielles de l'invention Dans le cadre d'une topologie à espace fermé, microprocesseur et language d'exploitation doivent etre concidérés conjointement. Si l'on veut tenir compte des différents modèles mémoire pris en compte, le language exploitant le microprocesseur pourra prévoir, dans sa bibliothèque, à intégrer l'ensemble des routines du groupe Egroup (système d'exploitation), ceci afin d'augmenter la modularité du systeme. Dans ce cas, Egroup sera chargé en mémoire en meme temps que le programme(s) d'application ('IGROUP' et 'DGROUP' . .). Un dernier point concernant l'application industrielle d'un processeur ultrafiltre est l'intégration du système, microprocesseur et ultrafiltre interfaces composant alors chacun un circuit intégré encapsulée dans un boitier: le circuit d'interface aura donc comme fonction première de gérer les situations d'exception ULTpetita Clest donc, I'interface que I'on reliera à la broche(s) ULTpetita du microprocesseur (figure 6 > . Pour exemple de réalisation on peut prévoir sur l'interface, cinq services particuliers: -- un service de marquage (à fortiori sur l'unité ES), pour mémoriser les exceptions ainsi que pour la configuration de la mémoire. -- un service de sélection qui reçoit les adresses du peigne d'adressage pour la sélection de l'unité à accéder. -- un service de contrôle destiné à controler les régies de relation (. -- un service général d'interface, destine notamment au verouillage des adresses. -- un service de rafraichissement de la memoire dynamique (figure2), lequel doit pouvoir disposer des signaux de controle (memory control) tel que le signal d'horloge read/writeb,adresse latch enable,resetb pour la sélection du mode opératoire et la production des signaux de rafraichissement (RAsh. CASb, Memory SELectionb...) La figure 6 donne une réalisation du modèle mémoire SMALL appliqué à la variante 16 bits, d'une capacité de I méga octets répartis en 2 unités de composants, ROM et RAN1 Le peigne d'adressage W(E) conduit l'ultrafiltre d'interfaces comprenant: : -- une interface pour l'unité (ES), sur laquelle se trouve de la mémoire à données sauvegardées (SRM) alimentée par exemple par une tension de standby (stby); -- une interface RAM et une interface ROM sur (UM), la ROM étant programmable (PGM&num;). Figure 7, on retiendra sur la variante 16 bits,les modèles usuels de répartition de la mémoire employés par les assembleurs de languages. De la mème manière, sur la variante 32 bits, l'évolution des composants mémoire permet d'entrevoir des réalisations à base de processeur ultrafiltre 32 bits, capablent de gérer 64 Méga octet de mémoire, de sorte qu'il est d'ors et déjà envisageable de diffuser sur le marché des modules utilitaires disposant de larges programmes 'prédiffusés'. REVENDICATIONS 1) Processeur spécialise (UP) compose dune unite de commande (UC) pour la traitement de microprogrammes et d'une unite de traitement specialisée (UT) pour la gestion d'une mémoire organisee, caractérisé en ce qu'une adresse de l'espace adressable du processeur est constituée d'un ensemble relatio-tonctionnel de champs de bits, composant deux partitions non vides de champs telles que: la partition dite offset d'adresse e est non attribue opérable sur l'unité de traitement, et constituée du champ de bits le moins signifiant; la partition dite sélecteur de classe est attribue. non operable sur l'unité de traitement, et constituée d'un ensemble relatio-fionctionnel de champs de bits. 2) Processeur selon la revendication I. caracterise en ce qu'un champ du sélecteur de classe est attribue pour permettre la transmission des données entre le processeur et, soit une unite relationnelle (UR), soit une unité fonctionnelle (UF) 3) Processeur selon l'une des revendications I a 2,caracterise en ce qu'un champ du 'sélecteur de classe' est attribué pour permettre la transmission des données entre le processeur et, soit, une unité mémoire (@M) soit une unite d'entree/sortie (ES) 4) Processeur selon l'une des revendications I a 3, caracterisé en ce qu'un champ du 'sélecteur de classe' est attribué pour permettre la transmission des données entre le processeur et, soit une unité me moire morte (ROM). soit une unite memoire vive (RAM). r) Processeur selon l'une des revendications I a 4.caractérisé en ce qu'un champ du 'sélecteur de classe' est attribue pour permettre la transmission des données de divers formats entre le processeur et un ensemble d'unités provenant de la redistribution de sous-unités fonctionnelles. 6) Processeur selon l'une des revendications I a 5, caractérisé en ce qu'un champ du 'sélecteur de classe' est attribue pour permettre la transmission des données sur une unité de mémoire sauvegardée (SRM). 7) Processeur selon l'une des revendications de I a 6, caractérisé en ce que l'unité de traitement (UT) dispose de deux ressources de calcul: une ressource de calcul (UOD) pour opérations sur les donnees genérales: une ressource de calcul (UoA) pour les opei-atioilt sur les offsets J'adresse. 8) Processeur selon l'une des revendications de I a 6. caracterise ce que qu'il comporte un registre adressable pour la mémorisation des 'sélecteurs de classe' (CF), et un registre adressable (GF) pour la mémorisation d'un ensemble d"offsets d'adresse' et de données générales, la réunion d'un 'sélecteur de classe' et d'un 'offset d'adresse' formant une fenêtre d'adressage, telle que:: les fenêtres, dites 'statiques', sont définies au niveau du microprogramme de l'unité de commande (toc) et elles sont constituées d'un couple de registres (sel, ger) ou 'sel' est un registre adressé 'i' de (CF), et ou 'ger' est un registre adressé 'i' de (GF);; les fenêtres, dites 'dynamiques'. sont définies au niveau du programme, et elles sont constituées de deux registres sel. et gerk ou 'sel' est un registre adressé 'j' de (CE), et 'ger' est un registre adressé 'k' de (GF), 'k' différent de 'i' 9) Microprocesseur (MP) composé d'un processeur (UP) selon l'une des revendications 7 ou 8, et d'une unité d'interruption (IT) disposant d'un service d'interruptions dites ULTpetita caractérisé en ce que que, I'un ou l'autre des champs du 'sélecteur de classe' d'une adresse produit au moins une règle de relation (t telle que.à l'ouverture de l'une ou l'autre des unités fonctionnelles qui sont attribuées à ce champ. au moins une violation de règle de relation # est prise en compte par une interruption ULTpetita du service d'interruptions.