Licence CC BY-NC

De la logique aux processeurs

Ou « comment passe-t-on des maths à un ordinateur ? »

Publié :
Auteur :
Catégories :
Temps de lecture estimé : 6 heures

Amis de Zeste de Savoir, bonjour !

Est-ce que vous vous êtes un jour demandé comment un ordinateur fonctionne, à son plus bas niveau ? Comment avec quelques composants très simples, on peut réaliser des choses aussi complexes que l’appareil sur lequel vous êtes en train de lire ce tutoriel ? Si oui, alors soyez les bienvenues. :)

Prérequis
Ce tutoriel se veut accessible au plus grand nombre. Normalement, pas besoin de maths poussées ou de connaissances complexes en électronique pour l’aborder :pirate:

Objectifs
Appréhender la logique formelle et le binaire.
Expliquer comment on passe d’une expression mathématique à un circuit électrique qui fait la même chose.
Voir quelques circuits intéressants, qui entre dans la composition d’un ordinateur.

La logique des propositions et des prédicats

  1. C'est quoi, une proposition ?
  2. Assembler des propositions avec les connecteurs
  3. C'est toujours utile: les prédicats et les quantificateurs

L'algèbre de Boole

  1. Propriétés de l'algèbre de Boole
  2. Fonctions booléennes
  3. Simplifier une forme normale : la méthode de Karnaugh
  4. Simplifier une forme normale : la méthode de Quine-Mc Cluskey

Des maths à l'électronique

  1. La version « interrupteurs »
  2. Semi-conducteurs et diodes
  3. Jonctions et transistors à effet de champ
  4. Des portes, des portes et des portes !

Un détour nécessaire : le binaire

  1. C'est la base !
  2. Addition, soustraction et nombres négatifs en binaire
  3. Multiplication et divison binaire

Vers la pratique: un gros paquet de portes

  1. Multiplexeurs et démultiplexeurs
  2. Unité arithmétique et logique (ALU)
  3. La mémoire (et l'horloge)


J’espère que vous avez appris plein de choses, et que vous avez ressenti qu’il suffit en fait d’outils très simples et d’un peu d’ingéniosité pour faire des choses très complexes, telles que le support que vous êtes en train d’utiliser pour me lire.

Dans tous les cas, je vous remercie de m’avoir suivi. Merci également à @Taurre pour la validation, ainsi que tous les gens qui m’ont fait part de retours lors de la bêta d’une manière ou d’une autre: @Aabu, @d3m0t3p, @Ksass`Peuk, @unidan et @Vayel.

Sources et notes:

  • Le livre computer organization and design de M. Patterson et J.L. Hennessy, qui, en plus de réexpliquer tout ce que je fais dans ce tutoriel, va plus loin et tente d’expliquer comment fonctionne vraiment un ordinateur (incluant le célèbre processeur MIPS32). Merci donc à mon prof de m’avoir indiqué ce bouquin. Nombre des schémas du dernier chapitres en sont directement inspirés.
  • Wikipédia, surtout dans sa version anglaise, reste une source inépuisable de savoir, même s’il est parfois nécessaire de jongler entre les onglets. En particulier, ça m’a bien aidé pour écrire toute la partie liée aux semi-conducteurs (en), aux transistor bipolaires (en) mais aussi les CMOS (en), et donc les MOSFETs (en).
  • Pour l’algorithme de Quine-Mc Cluskey, outre la page Wikipédia (en), je me suis également aidé de cette présentation (en) et de celle-ci (en). La méthode de Petrick est en outre expliquée ici (mais également dans les deux documents précédents).
  • De manière générale, ce textbook (en) de « All About Circuits » est une mine d’information géniale. Si le sujet vous intéresse, foncez.
  • Par ailleurs, cette présentation de F. Anceau, qui m’a été indiquée par Aabu lors de la bêta, retrace très bien l’historique du développement des transistors, et mentionne deux ou trois choses que je n’ai pas eu le temps et la place de développer.
  • En l’absence de mieux, les schémas électriques ont été réalisés à l’aide de circuitikz (en) (ça fonctionne vraiment pas mal, en fait !), les tables de Karnaugh sont issues d’une réécriture en Tikz des fonctionnalités de ce package (en), tandis que l’afficheur 7 segments est une réécriture des fonctionnalités de ce package (mais avec des segments un peu plus réalistes et modulables à mon gout). L’ensemble de ces schémas est distribué sous la même licence que le tutoriel sur un dépôt Github dédié.

À bientôt ! :pirate:

6 commentaires

Merci pour ce tutoriel, et merci pour cette belle icône (j’aime bien quand elles sont aux couleurs du site, si vous n’aviez pas remarqué).

« La sottise, l’erreur, le péché, la lésine occupent nos esprits et travaillent nos corps » – Charles Baudelaire, Les Fleurs du Mal

+2 -0

Salut !

J’ai commencé la lecture, ça me rappelle ma première année d’étude ça fait plaisir :p

Toute petite précision :

Le principe du tiers-exclu : une proposition est vraie ou fausse, pas autre chose ;

En fait, l’axiome/principe du tiers exclus dit simplement "la négation de la négation d’une proposition est équivalente à la proposition initiale" (aka pˉˉp\bar{\bar{p}} \iff p et c’est ça qui est hyper puissant. C’est grâce à cette définition qu’on peut facilement démontrer que 2\sqrt{2} n’est pas un nombre rationnel.

et c’est aussi ça qui permet de simplifier fortement les circuits de porte logique.

Édité par artragis

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte