28 Jul

La multiplication !

Publié par Nain0nain ,

La multiplication !

C'est parti pour faire plein de multiplication :

  • C'est quoi une multiplication
  • Façon facile
  • Façon rapide et pratique (presque)

1. C'est quoi la multiplication ? :

c'est tout simplement un outils mathématique pour aller plus vite :p, ce sont des additions à la suite du même nombre :

soit 2 x 4 = 2 + 2 + 2 + 2 = 8. Tout simplement c'est une opération de base mathématique, obtenue par l'opération de l’extrême base : l'addition.

Bon si vous lisez ça c'est que vous savez surement faire une multiplication, mais c'est très important pour la suite !

2. Façon facile :

Bon il faut savoir que nous avons vu deux des trois opération de base : l'addition et la soustraction, il nous manque la comparaison. Avec ces trois opération il nous est possible d'obtenir tout les calculs que nous souhaitons (multiplication, division, inverse, carré...) car ce sont toute des opération qui utilise l'addition. Donc le plus facile revient à faire un programme qui détermine toute ces fonctions :

 

public int multiplication(int a, int b){
        int c = 0;
        while(b != 0) {
            c += a;
            b --;
        }
        return c;

}

 

Faudrait encore que le processeur sache réaliser une boucle !

Donc là ce qui se passe : on va additionner a, b fois tout simplement. le problème c'est que pour avoir la multiplication qui est assez élémentaire il faut la recoder à chaque programme, et en plus il faut mettre en marche tout le processeur pour faire cette opération, au lieu de juste l'UAL.

Ou on peu faire ce type de multiplication avec des circuits logique, mais c'est gobalement la même chose, qui n'est pas très rapide, même si il y a un avantage que je préciserai plus tard !

3. Plus rapide :

1. La découverte mathématique :

bon c'est bien cool de faire tout ces programmes, mais nous on veux pas des processeurs de vieux pépé qui vont à deux à l'heure. Donc depuis un certains temps pour aller plus vite on va incruster les opérations basique, en composants, c'est plus des programmes qui réalisent les opérations de base, mais des circuits logiques directement dans le processeur ce qui est beaucoup plus rapide. C'est donc ce que nous allons faire !

Premierement il faut apprendre ses tables de multiplications : 0 × 0 = 0, 0 × 1 = 0, 1 × 0 = 0, 1 × 1 = 1

La multiplication !

Et avec nos tables de multiplications on va gentillement faire des multiplications comme on l’a appris, c’est à dire en les posants :

La multiplication !

Ici on prend 4 puis avec les tables de multiplications on fait 4 × 8, 4 × 0, et 4 × 2 à chaque fois on écrit le résultat puis on passe au 2 qui est en réalité 20 alors il suffit de changer de ligne en rajoutant un 0 au début puis faire 2 × 8, 2 × 0, 2 × 2, puis à la fin il ne faut surtout pas oublier d’additionner le tout, les deux lignes. Ben en binaire c’est exactement pareil :

La multiplication !

On multiplie avec nos tables et à la fin on addition le tout.

2. Avec des portes logiques :

Bon c'est bien beau de savoir faire tout ça en écrit mais nous on veut le faire avec des portes logiques. Déjà les tables de multiplications : [table mul]

correspondent à la porte ET, donc pour chaque calcul il faut mettre une ET. Imaginons que nous ayons à faire A0A1 × B0B1, autrement dit A0 = 1, A1 = 0, donc A = 10 (2) et B0 = B1 = 1, soit B = 11 (3) : 3 × 2 = 6. On fait donc la multiplication, B0 × A0 = 1 et B0 × A1 = 0, on doit donc mettre deux portes ET avec une des deux entrée B0, pius l'autre soit A0 ou A1 en fonction de la porte :

Deux ET !

Deux ET !

On a calculer le premier, étage soit toute les multiplication avec B0 : 10, Donc ici on va tout simplement faire le deuxième étage les multiplications avec B1, soit B1 × A0 = 1, B1 × A1 = 0 tout en n'oubliant que on ne fait pas B1 × A0 ou A1, mais B1 × 2 (ou plutot 10 en binaire) (et oui avant pour la première multiplication en décimale : 24 × 208 c'était pas 4× 208 + 2 × 208, mais + 20 × 208) donc il suffit de décaler les portes :

Là ça ressemble beaucoup à comme si on l'avait posée sur papier, S0 - 3 correspondent au sortie

Là ça ressemble beaucoup à comme si on l'avait posée sur papier, S0 - 3 correspondent au sortie

Puis maintenant on additionne le tout, bon pas très dur car pour S0 déjà comme le reste de la multiplication et décaler il suffit de le faire descendre comme résultat, ensuite il suffit d'additionner avec un semi-additionneur, car on utilise la sortie des dizaines comme retenue; si S1 et S2 = 1 alors S1 + S2 = 10, donc il y a retenue à passer : et enfin on fait bien R3 + R, dont l'unité et la dizaine compte dans le résultat

La multiplication !

Donc :

S0 : B0 ET A0 = 0 et C0 = 0,

S1 : B0 ET A1 = 1,  

S2B1 ET A0 = 0,

S3 : B1 ET A1 = 1

et : 

S1 + S2 = 01 donc r0 et R0 = 0 et C1 = 1

S3 + R0 = 01, donc C3 = 0 et C2 = 1

 

Si je reprend tout dans l'ordre : C3, C2, C1 et C0 = 0110 soit 110 = 11 × 10, 2 × 3 = 6 parce que 110 c'est bien six en binaire. Maintenant si on fait 1010 × 10 on aurra quatre colonnes (les entrées A, soit 4 A) et deux lignes (les entrées des B, soit 2 B) donc 8 portes ET, ainsi de suite en fonction du nombre d'entrées, pour l'addition ben c'est pareille elle augmentent en fonction de l'entré. 

Je disais donc tout à l'heure que la première méthode à un avantage par rapport à l'autre, c'est qu'elle nécéssite, en effet pas beaucoup de porte logique, donc c'est ce qui était préféré à l'époque. Maintenant que les technologie sont plus avancées ont peu faire tenir plus de composant dans moins d'espace (et puis les alim sont meilleures). C'est pour cela que on priviligie la deuxième méthode bien plus performante et rapide !

 

Sur ce à bientôt et portez vous bien !

La suite : ici

Nain0nain

Nain0nain

Retour au menu : fonctionnement du processeur
Commenter cet article

Suivez nous sur :