FR 2694825 A1 19940218 FR 9106404 A 19910626 SOMPILAIRE I - INTRODUCTION Il - DESORIPTION 2.1 Elément de registre 2.1.1 Fonctionnement en écriture 2.1.2 Fonctionnement en lecture 2.2 Circuit d'entrée d'un opérateur 2.3 Additionneur élémentaire 2.4 Multiplieur élémentaire 2.5 Diviseur élémentaire III - REVENDICATIONS IV - LISTE DES LIGURES V - LISTE DES COMPOSANTS REFERENCES SUR LES FIGURES ANNEXE 1 - Technique de calcul envisagée en ce qui concerne la multiplication par exemple ANNEXE 2 - Choix des comparateurs INTRODUCTION Les capacités des ordinateurs actuels sont limitées par le fait que ceux-ci ne savent compter que jusqu a 2.Il est frustrant de constater que ces machines sont incapables, à l'inverse de 1'homme, d'effectuer des calculs dans une autre base que la base binaire. Il était donc tentant de s'efforcer d'imaginer une technologie nouvelle capable de conférer aux ordinateurs l'agilité arithmétique qui leur faisait défaut en dépit de leur rapidité constitutive. C'est l'objet du présent document. L'idée essentielle est donc de ne pas fonctionner en "tout ou rien" (un signal est présent ou absent) mais de disposer de signaux variables par modifications discrètes d'une grandeur physique dont chaque valeur correspond, par convention, à un chiffre de la base choisie. Pour un ordinateur électronique, cette grandeur physique sera la tension électrique aux bornes d'un composant. A priori, la base de numération choisie peut-être quelconque. Puisque c'est celle qui nous est la plus familière, nous choisirons la base dix pour notre exposé, mais pour des raisons de sim plicité de conversions binaire / non binaire et inversement, il serait préférable, en ce qui concerne les réalisations pratiques, de choisir une base octale ou, mieux, hexadécimale. Les avantages attendus de cette technique sont une augmentation significative de la rapidité de calcul (c.f. annexe i) et de la capacité de stockage des données en mémoire vive. Afin d'être en mesure de réaliser ce type d'ordinateur, il est nécessaire de pouvoir disposer d'organes élémentaires de calcul électronique non binaire permettant d'effectuer les tables d'addition, de multiplication et de division dans la base choisie (ici la base 10). La conception de ces organes de calcul fait l'objet de la présente demande de brevet. DESCRIPTION 2.1 ELEMENT DE REGISTRE Il s'agît du constituant élémentaire fondamental de la nouvelle technologie envisagée. La figure 1 représente un tel élément. Voici comment il fonctionne. A chaque chiffre de la base est associée une tension Vi qui le représente. Contrairement à ce qui se passe en logique binaire, les lignes d'un BUS ne comportent pas que 2 états (O ou 5 VI, mais autant d'états qu'il existe de chiffres dans la base choisie, par exemple : 1, 2, 3 .... jusqu'à 8 volts (8 x 1) pour un BUS octal et 10 volts (10 x i) pour un BUS décimal. L'idée est donc d'utiliser ces tensions en les appliquant à un ensemble de bascules bistables par l'intermédiaire de comparateurs de tension de telle sorte que l'état de ces bascules représente un chiffre dans la base choisie. Dans la figure 1, les composants (1) sont des bascules bistables qui basculent lorsqu'elles reçoivent une impulsion en entrée, c'est à dire lorsque les comparateurs (3) sont soumis à des tensions égales sur chacune de leurs deux entrées. Ce faisant, elles autorisent la conduction des transistors (2) à condition que les transistors (4) ne soient pas bloqués. Les portes d'autorisation d'écriture (5) ou d'autorisation de lecture (6) fonctionnent en logique à 3 états ("Tristate") et sont à l'etat haute impédance lorsqu'elles sont inactivées, isolant ainsi l'élément de registre par rapport au BUS. Les bascules (1) disposent d'une entrée de remise à zéro (RAZ) et d'une entrée horloge (CP = clock pulse"). Les portes (5) et (6) sont respectivement activées par les signaux d'autorisation d'écriture (AUT E) et d'autorisation de lecture (AUT L). 2.1.1 Fonctionnement en écriture Chacune des bascules (i) représente un chiffre de O à 9 dans la base décimale que nous avons choisie pour notre exemple. Supposons que circule sur le fil du BUS connecté à notre élément de registre un signal de tension vs (6 Volts) correspondant au chiffre 5. Le signal d'autorisation d'écriture (AUT E) rend la porte d'écriture (5) conductrice. La tension d'entrée est distribuée à tous les comparateurs (3) qui ne feront basculer que les bascules 30 (1) à B5 (1), les bascules B6 (1) à B9 (1) restant en ltétat puisqu'il faut une tension supérieure ou égale à 7 volts pour les faire basculer. Chacune des sorties Q des bascules (1) est reliée à la sortie Q des bascules (i) de rang immédiatement inférieur par l1in- termédiaire d'un transistor (4) de telle sorte que chaque bascule de rang n ayant basculé interdit la conduction de la sortie Q de la bascule de rang n-1. Le chiffre 5 est ainsi mémorisé puisque seule la sortie Q de la bascule P5 (i) sera en mesure de transmettre un signal 5V au transistor 25 (2) correspondant du circuit de lecture. Les résistances du circuit d'écriture ont une valeur de 500 Ohms. Le courant maximum qui circule dans ce circuit est donc de 20 mA. 2.1.2 Fonctionnement en lecture Le signal d'autorisation de lecture (#UT L) rend la porte de lecture (6) conductrice. Seul le transistor 25 (i) conduit et par conséquent seul le signal 6V représentant le chiffre 5 sera émis sur le BUS. 2.2 CIRCUIT D'ENTREZ D'UN OPéRATEUR Un opérateur (additionneur, multiplieur ou diviseur élémentaires) possède une structure globale en forme de matrice de fils conducteurs, le rang de chacun de ces fils, en ligne ou en colonne, correspondant au chiffre à représenter. Dans ce cas, la seule information utile est constituée de l'information "présence ou abscence de signal" sur un fil conducteur de rang donné. Dès lors, il n'est pas nécessaire de différencier les tensions appliquées à ces fils et seul le 5 volts est utilisé. Un circuit d'entrée d'un opérateur est donc dérivé d'un élé \en ment de registre mais il''diffère d'une part par ce qui vient d'être signalé et d'autre part par le fait que ce circuit est démuni de bascules bistables (i) qui ne sont en effet pas nécessaires puisqu'il n'y a lieu de mémoriser que le résultat d'une çération et non les opérandes de celle-ci. Il faut toutefois substituer des inverseurs (26) aux bascules (i) afin d'assurer la coupure des transistors (4) en tant qu#esoin. Ce circuit est représenté en figure 2. La porte d'entrée (25) de ce circuit est activée par le signal AUT OP (autorisation d'opération). 2.3 ADDITIONNEUR ELEiVIENTAIRE Le schéma d'un additionneur est donné en figure 3. Il s'agit d'une matrice carrée donnant le résultat de l'addition de 2 chiffres décimaux, l'un entré en ligne, l'autre en colonne. Lorsqu'une retenue est nécessaire, celle-ci est repérée par un petit i en bas et à droite de la case intéressée. Chaque case de cette matrice est reliée à une source de tension dont la valeur de la tension correspond au chiffre contenu dans cette case. Chaque case à retenue est en outre reliée à une seconde source systématiquement égale à 5 volts. Chacun des 2 circuits d'entrée (9) comporte une porte d'autorisation d'addition (8). Lorsque ces portes sont ouvertes (signal AUT AD actif), les 2 signaux d'entrée en ligne et colonne sont véhiculés par l'ensemble des 10 fils issus des circuits ligne et colonne. Supposons que l'on veuille ajouter 2 et 4. Considérons la figure 4 et admettons que 2 arrive en colonne et 4 en ligne. Des fils verticaux (colonnes), seul le fil "2" sera à 5 volts et des fils horizontaux (lignes), seul le fil "4" sera à 5 volts. Chaque case de la matrice est reliée à une source de tension par l'intermédiaire de 2 transistors (2) dont l'un est commandé par un fil ligne et l'autre par un fil colonne comme indiqué en figure 5. Ainsi, comme le montre la figure 6, tous les 10 transistors de la colonne 2 seront ouverts de même que tous les 10 transistors de la ligne 4. ais seuls les 2 transistors de la case "ligne 4 / colonne 2" seront simultanément ouverts. Par conséquent, seule cette case émettra un signal de tension correspondant au chiffre 6, somme des chiffres ligne et colonne. Si en outre la case comporte une retenue C (O pour carry en anglais), par le même mécanisme de double transistor, le signal correspondant à la retenue (5 Volts) sera émis en même temps que le signal représentant le 1er chiffre du résultat de l'addition. Par exemple, si la case de la matrice interessée est "colonne 7 / ligne 6", cette case émettra simultanément "3" en résultat et "1" en retenue. La figure 7 montre comment sont effectuées les connexions d'un additionneur elementaire. D'après cette figure, il apparait qu'un additionneur élémentaire est constitué de 2 circuits d'entrée lignes ou colonnes (9) identiques, d'une matrice de calcul (10) et de borniers d'alimentation (11). 2.4 #UtTIFtIEUR ELEMENIIAIBE Un multiplieur est construit sur le même principe qu'un additionneur hormis le fait que la matrice (12 - c.f. figure 8) contient le résultat de la multiplication des 2 chiffres en entrées ligne et colonne au lieu de contenir le résultat de leur addition. Toutefois, la différence essentielle entre un additionneur et un multiplieur est que ce dernier peut produire des retenues non toujours égales à 1 mais comprises entre 1 et 8 (dans le cas de la base 10). La multiplication est autorisée lorsque le signal AUT #Ut est actif. Le schéma des connexions d'un multiplieur élémentaire est donné en figure 9. Cette figure fait apparaitre qu'un multiplieur élémentaire est composé de 2 circuits d'entrée lignes / colonnes (9) identiques, d'une matrice de calcul (12) et de borniers d'alimentation (11). 2.5 DIVISEUR EtEj#iENTAIRE Un diviseur élémentaire est un dispositif câblé qui donne le résultat de la division d'un nombre compris entre 1 et 89 par un chiffre compris entre 1 et 9. La structure d'un tel diviseur est décrite en figure 10. Ce dispositif est constitué de 2 matrices disposées en cascade. La 1ère est une matrice carrée (10 x 10) MD (13) qui décode le nombre à diviser (42 par exemple). La seconde est une matrice de calcul (14) rectangulaire (89 x 9) qui fournit le quotient entier de la division (ici 8 si l'on souhaite diviser 42 par 5). La division est autorisée lorsque le signal AUT DIV est actif. Le rôle de la matrice de décodage I D (13) est de transmettre à la matrice de calcul (14) un signal de 5 V vers la borne d'entrée correspondant au rang du nombre décodé. te schéma des connexions d'une matrice de décodage (13) est donné en figure 11. Le rôle de la matrice de calcul est de fournir le quotient entier de la division du nombre en entrée colonnes issu de la matrice de décodage (13) par le chiffre en entrée ligne issu du circuit d'entrée ligne (9). La matrice de calcul (14) peut-être décomposée en sous-matrices M1 (15 - Fig 12), M2 (16 - Fig 13), M3 (17 - Fig 14), M4 (18 Fig 15), M5 (19 - Fig 16), M6 (20 - Fig 17), M7 (21 - Fig 18), M8 (22 - Fig 19), M9 (23 - Fig 20). Les figures 12 à 20 montrent le résultat des calculs de chacune des cases de ces sous-matrices. L'indication "NC" signifie "Non Connectée. te schéma des connexions d'une sous-matrice, par exemple M4 (18), est donné en figure 21. Le schema des connexions de l'ensemble de la matrice de calcul (14) est fourni en figure 22. D'après les figures 11, 21 et 22, il apparait qu'un diviseur élémentaire est composé des éléments suivants - Une matrice de décodage (13) avec ses 2 circuits d'entrée lignes / colonnes (9) et son bornier d'alimentation 5 Volts (11). - Une matrice de calcul (14) constituée des sous-matrices Ml (15), M2 (16), M3 (17), M4 (18), M5 (19), M6 (20), M7 (21), MS (22), S9 (23), d'un circuit d'entrée lignes (9), de borniers d'alimentation (11) et de borniers de jonctions (24). LISTE DES FIGURES Figure 1 : Elément de registre Figure 2 : Circuit d'entrée d'un opérateur Figure 3 : Principe de l'additionneur élémentaire Figure 4 : Emplacement des transistors dans un additionneur élé mentaire Figure 5 : Fontionnement des transistors lors d'une addition de 2 chiffres Figure 6 : Mécanisme d'ouverture d'une paire de transistors à l'intersection de 2 fils ligne et colonne Figure 7 : Schéma des connexions d'un additionneur élémentaire Figure 8 : Principe du multiplieur élémentaire Figure 9 : Schéma des connexions d'un multiplieur élémentaire Figure 10 : Principe du diviseur Figure 11 : Schéma des connexions de la matrice de décodage d'un diviseur élémentaire Figure 12 : Sous-matrice Ml de la matrice de calcul du diviseur élémentaire Figure 13 :Sous-matrice M2 de la matrice de calcul du diviseur élémentaire Figure 14 : Sous-matrice M3 de la matrice de calcul du diviseur élémentaire Figure 15 : Sous-matrice M4 de la matrice de calcul du diviseur élémentaire Figure 16 : Sous-matrice M5 de la matrice de calcul du diviseur élémentaire Figure 17 : Sous-matrice M6 de la matrice de calcul du diviseur élémentaire Figure 18 : Sous-matrice M7 de la matrice de calcul du diviseur élémentaire Figure 19 : Sous-matrice M8 de la matrice de calcul du diviseur élémentaire Figure 20 : Sous-matrice M9 de la matrice de calcul du diviseur élémentaire Figure 21 : Schéma des connexions d'une sous-matrice de calcul d'un diviseur élémentaire (exemple de M4) Figure 22 :Schéma des connexions de l'ensemble de la matrice de calcul d'un diviseur élémentaire LISTE DES COMPOSANTS REFERENCES SUR LES FIGURES 1 : Bascule bis table 2 : Transistor du circuit de lecture 3 : Comparateur 4 : Transistor du circuit d'écriture 5 : Porte d'écriture 6 : Porte de lecture 7 : Résistance du circuit d'écriture 8 : Porte d'autorisation d'addition 9 : Circuit d'entrée lignes / colonnes 10 : Matrice de calcul de l'additionneur élémentaire 1 : Borniers d'alimentation électrique 12 : Matrice de calcul du multiplieur élémentaire 13 : Matrice de décodage du diviseur élémentaire 14 : Matrice de calcul du diviseur élémentaire 15 : Sous-matrice de calcul M1 du diviseur élémentaire 16 : Sous-matrice de calcul M2 du diviseur élémentaire 17 : Sous-atrice de calcul M3 du diviseur élémentaire 18 :Sous-matrice de calcul M4 du diviseur élémentaire 19 : Sous-matrice de calcul 5 du diviseur élémentaire 20 : Sous-matrice de calcul M6 du diviseur élémentaire 21 : Sous-matrice de calcul M7 du diviseur élémentaire 22 : Sous-matrice de calcul M8 du diviseur élémentaire 23 : Sous-matrice de calcul M9 du diviseur élémentaire 24 : Bornier de jonctions 25 : Porte d'autorisation d'opération 26 :Inverseur ANNEXE 1 TECHNIQUE DE CALCUL ENVISAGE EN CE QUI CONCERTE LA MULTIPLICATION PAR EXEMPLE Afin de simplifier l'exposé, considérons une multiplication de 2 nombres A et B de 3 chiffres décimaux chacun A = a.102 + b.10 + c B = d.102 + e.10 + f Effectuons la multiplication A x B A x B = (a.102 + b.10 + c) (d.102 + e.1O + f) A x B = ad.104 + ae.103 + af.102 + bd.103 + be.10 + bf.10 + cd.102 + ce.10 + cf Les multiplications du type a.d, a.e, etc..., seront effectuées en parallèle par autant de multiplieurs élémentaires qu'il existe de tels produits (ici 3 x 3 = 9). Les résultats des multiplications effectuées par ces multiplieurs élémentaires sont listés ci-dessous fc = c1 + 10 r1 fb = c2 + 10 r2 fa = 03 + 10 r3 ec = c4 + 10 r4 eb = c5 + 10 r5 ea = c6 + 10 r6 dc = c7 + 10 r7 db = c8 + 10 r8 da = c 9 + 10 r9 Dans ces expressions, ciest le chiffre résultat et ri est la retenue qui est multipliée par 10 puisqu'elle interesse la décade de rang immédiatement supérieur au rang sous lequel s'effectue la multiplication. Dans l'expression de A x B, remplaçons les produits de type ad, ae, etc..., par leurs valeurs sous la forme ci + 10 ri. Après regroupement, il vient A x B = r9 105 + (c9 + r6 + r ) 104 + 8 ( 6 + C8 + r3 + r5 + r ) 103 + 7 (c3 + c5 + c7 + r2 + r4) 102 + (e2 + c4 + r1) 10 + ci1 Pour chaque décade, ilsuffit alors d'effectuer la somme des expressions entre parenthèses pour obtenir le résultat de la multiplication. En vue d'optimiser le temps de calcul,cette sommation pourra s'effectuer en grappe ou arborescence comme indiqué dans la figure Al où les composants A sont des additionneurs élémentaires, les composants Ci des compteurs de retenues, les composants Ei des éléments de registres contenant le résultat de la multiplication et enfin les composants R des lignes à retard destinées à éviter que les retenues d'additionneurs d'un même étage d'addition soient générées en même temps. Ainsi, dans lSesemple proposé, une multiplication pourrait s'effectuer en 5 coups d'horloge sans qu'il ne soit procédé à aucun décalage, ce qui constitue une originalité de la méthode envisagée. Dans un cas réel et en base de numération hexadécimale, les registres pourraient comporter 10 éléments de registres ce qui autoriserait une capacité de stockage d'un nombre maximum égal à 161 -1, soit une performance supérieure à celle des processeurs binaires de 32 bits puisque 1610 = (24)10 = 24 > 232. Un tel type de processeur hexdécimal exigerait donc 100 multiplieurs élémentaires (10 x 10), ce qui n'est pas un problème dans l'hypothèse d'une production en série. ANNEXE 2 CHOIX DES COMPARATEURS Au cas où les comparateurs classiques auraient un temps de réponse trop grand ou seraient d'un coût trop élevé, on utilisera le comparateur optoélectronique décrit dans la figure A2 ci-après. Pi et P2 sont des photocoupleurs. Tî et T2 sont des phototransistors. D1 et D2 sont des diodes émettrices de lumière (LED). V1 est la tension de référence. V2 est la tension d'entrée qui n'est appliquée que si le signal AUT OP (autorisation d'opération) est actif. Les états des entrées El et E2 de la porte NOR seront les suivants (1 = 5 Volts, O = O Volt) El E2 Signal AUT OP inactif 1 0 Signal AUT OP actif Vi > V2 1 0 Vi V1 = V2 0 0 La sortie de la porte NOR ne sera donc active que lorsque V1 = V2. REVENDICATIONS 1) Dispositif pour effectuer des calculs arithmétiques non booléens, permettant d'effectuer les tables d'addition, de multiplication et de division dans un système de numération à base supérieure à 2, caractérisé en ce qu'il est constitué d'éléments fondamentaux tels qu'éléments de registres, circuits d'entrée et opérateurs de type additionneur, de ty pe multiplieur et de type diviseur, chaque élément de registre compre nant (a) un circuit d'écriture composé: de bascules bistables (1), cha chacune des sorties Q des bascules (1) étant reliée à la sortie Q des bascules (1) de rang immédiatement inférieur par l'intermédiaire d'un transistor (4), chaque bascule (1) de rang n ayant basculé interdisant la conduction de la sortie Q de la bascule de rang n - 1; de compara- teurs de tension (3) par l'intermédiaire desquels les tensions issues des lignes de BUS sont appliquées sur lesdites bascules bistables (1) de telle sorte que l'état de ces bascules bistables représente un chiffre dans la base choisie; une porte d'écriture (5) fonctionnant en logique à 3 états et rendue conductrice au moyen d'un signal d'autorisation d'é criture (AUT E), pour distribuer une tension d'entrée à tous les compa rateurs (3), et (b) un circuit de lecture composé de transistors (2) com mandés par lesdits transistors (4) du circuit d'écriture et la Porte de lecture (6) fonctionnant en logique à 3 états rendue conductrice au moyen d'un signal d'autorisation de lecture (AUT L); chaque circuit d'entrée d'opérateur ayant une structure globale en forme de matrice de fils conducteurs, le rang de chacun de ces fils, en ligne ou en co lonne, correspondant au chiffre à représenter dans la base choisie, ledit circuit d'entrée étant constitué comme un élément de registre à l'exception des bascules (1) de ce dernier, substituées par des inverseurs (26), chaque additionneur étant constitué de 2 circuits d'en trée lianes et colonnes (9) identiques, d'une matrice de calcul (10) et de borniers d'alimentation (11); chaque multiplieur étant composé de 2 circuits d'entrée lianes et colonnes (9) identiques, d'une matrice de calcul (12) et de borniers d'alimentation (11); chaque diviseur étant composé de deux matrices disposées en cascade, la première étant une matrice de décodage (13) associée à 2 circuits d'entrée lianes et colonnes (9) et à un bornier d'alimentations (11), la seconde étant une matrice de calcul (14) constituée de sous-matrices (M1, M2, M3, M4, MS, M6, M7, M8, M9) et associée à un circuit d'entrée lianes (9), de borniers d'alimentation (11) et de borniers de ionctions (24). 2) Dispositif selon la revendication 1 caractérisé en ce que la matrice de calcul (10) de chaque additionneur est une matrice de fils conducteurs recevant l'un des opérandes de l'opération issu d'un circuit d'entrée (9) sur l'un de ses fils lignes et l'autre issu d'un même circuit d'entrée (9) sur l'un de ses fils colonnes, chaque case de la matrice étant reliée à une source de tension par l'intermédiaire de 2 transistors (2) dont l'un est commandé par un fil ligne et l'autre par un fil colonne, afin de véhiculer vers l'élément de registre associé une tension issue d'un bornier d'alimentation (11) et dont la valeur correspond au chiffre résultat ou au chiffre de retenue s'il en existe une. 3) Dispositif selon la revendication 1 caractérisé en ce que la matrice de calcul (12) de chaque multiplieur est une matrice de fils conducteurs recevant l'un des opérandes de l'opération issu d'un circuit d'entrée (9) sur l'un de ses fils lignes et l'autre issu d'un même circuit d'entrée (9) sur l'un de ses fils colonnes, chaque case de la matrice étant reliée à 2 sources de tension par l'intermédiaire de 2 Paires de transistors (2), le premier transistor d'une paire étant commandé par un fil ligne, le second par un fil colonne, afin de véhiculer vers les éléments de registres associés 2 tensions issues d'un bornier d'alimentation (11) et dont les valeurs correspondent respectivement au chiffre résultat et au chiffre de retenue s'il en existe une. 4) Dispositif selon la revendication 1 caractérisé en ce que la matrice de décodage (13) de chaque diviseur est une matrice de fils conducteurs recevant le premier chiffre du dividende de l'opération issu d'un circuit d'entrée (9) sur l'un de ses fils lignes et le second issu d'un même circuit d'entrée (9) sur l'un de ses fils colonnes, chaque case de la matrice étant reliée à une source de tension de 5 volts par l'intermédiaire de 2 transistors (2) dont l'un est commandé par un fil ligne et l'autre par un fil colonne, afin de véhiculer cette tension de 5 volts issue d'un bornier d'alimentation (11) vers la borne d'entrée de la matrice de calcul (14) qui correspond au rang du dividende ainsi décodé. La matrice de calcul (14) de chaque diviseur est une matrice de fils conducteurs recevant le dividende de l'opération issu de la matrice de décodage (13) sur l'un de ses fils colonnes et le diviseur de cette opération issu d'un circuit d'entrée (9) sur l'un de ses fils lignes, chaque case de la matrice étant reliée à une source de tension par l'intermédiaire de 2 transistors (2) dont l'un est commandé par un fil ligne, l'autre par un fil colonne, afin de véhiculer, via un bornier de jonctions (24), une tension issue d'un bornier d'alimentation (11) vers l'élément de registre associé, la valeur de cette tension correspondant au chiffre résultat (quotient entier de la division du dividende par le diviseur). La matrice de calcul (14) est constituée de 9 sous-matrices (M1 à M9) dont les borniers de jonctions (24) sont reliés à un même bornier de jonctions (24) de sortie du résultat.