Bonjour, j'apporte ma petite contribution sur la version qui est actuellement en bêta en espérant ne pas faire de redondances (je n'ai pas lu toutes les corrections) :
I.1
manipuler divers formes ==> diverses
rien d 'autre ==> problème espace
127éme ==> 127ème
les fichiers Jpeg, GIF, PNG ==> JPEG
microphone à intervalle réguliers ==> intervalles ?
A chaque mesure ==> À
plus il y a de chiffre ==> chiffres
C'est du au fait ==> dû
pour des raisons de résistance au perturbations ==> aux
I.2
c'est qu'une opération entre deux grand nombres ==> grands
lors d'un débordement, on arrondi ==> arrondit
avec 3 bits, voir 5 ==> voire
une fois pour toute ==> toutes
tel la soustraction ou la multiplication ==> telles
deux nombres de même signe ==> mêmes signes
Les nombres à virgule fixe ont aujourd'hui étés ==> été
nombre de chiffre ==> chiffres
à nombre de bit égal ==> bits
Cependant, nous n'allons par parler de ces méthodes ==> paS
un pile donne 1, tandis qu'un face donne 0 ==> les "un" sont bizarres, peut être mettre "une" à la place non ?
Si le nombre à convertir est supérieur au nombre fournit ==> fourni
gérer des nombre signés ==> nombres
deux générateurs pseudo-aléatoire ==> aléatoires
un pour chacune des deux ligne ==> lignes
Nous ne parlerons pas de cette méthode, ni des circuits ==> pas de ","
Je continuerai surement demain. Désolé si des fautes signalées sont correctes :), bon courage
L'architecture de base/Encodage, traitement, décodage/Introduction
Un ordinateur peut manipuler divers formes
diverses
correspondance entre ces nombres et du son, du texte, etc
etc.
L'architecture de base/Encodage, traitement, décodage/Tout est nombre
la vidéo, qui n'est rien d 'autre
d'autre
(lettre, pixel, etc)
etc.
Pour montrer à quoi peut ressembler un encodage
Tu as parlé de codage, pas d'encodage.
du texte, une image, du son
du texte, une image puis du son
Texte : Standard ASCII
Tu as mis un accent dans le texte de l’abréviation.
On code du texte en assemblant plusieurs lettres les unes à la suite des autres.
Je parlerais plutôt de caractères.
par une table de correspondance
correspondances ?
Table ASCII
La colonne "Hex" me gêne un peu, sachant qu'on n'a pas encore vu ce dont il s'agissait. D'ailleurs, si tu as l'occasion, il serait peut-être préférable de l'intégrer sous forme d'un tableau Markdown, ce qui nous permettrait de copier des informations. Je peux m'en charger si tu veux.
D'ailleurs, les symboles 0 à 31
les symboles numérotés de 0 à 31
Ces symboles présents dans ce standard ASCII ne peuvent pas être tapés au clavier
Euh, je peux bien appuyer sur "Escape" ou "Del", non ?
De nos jours, on utilise des codages de texte plus complexe
complexes
Les nouveaux encodages comme l'Unicode peuvent ainsi gérer les caractères chinois, japonais, grecs, etc.
Je ferais remarquer plus haut que ASCII ne gère que l'alphabet anglais.
Pixel d'une image
Pixels
notamment coder une image en utilisant moins de nombres
Moins de nombres que quoi ?
Mais dans les fichiers Jpeg, GIF, PNG
Je ne comprends pas le "mais".
et autres; les
et autres, les
par un microphone à intervalle
intervalles
A chaque mesure, l'intensité
À
L'architecture de base/Encodage, traitement, décodage/Analogique, numérique et binaire
Cet extrait n'apparaître pas très clair aux débutants. Alors que tu détailles très bien la notion de codage, tu passes très vite sur celles de numérique et d'analogique.
De plus, on ne comprend pas trop ce que vient faire la tension ici. Je pense que tu prends le problème à l'envers. Il serait plus judicieux de commencer par dire qu'on code les informations avec et 0 et des 1 et que pour représenter ces deux chiffres, on utilise la tension (ou le courant, j'en sais rien). Je procéderais ainsi :
On code tout avec des nombres
On code cela électroniquement parce que c'est rapide (il me semble très important que le lecteur comprenne qu'on peut faire ça autrement, mécaniquement par exemple)
On code tout avec des 0 et des 1
On le fait avec la tension (ou le courant, j'en sais rien)
Personnellement, j'imposerais des bases minimales en électronique (uniquement connaître les notions de tension et de courant).
L'architecture de base/Codage des nombres/Introduction
RAS.
L'architecture de base/Codage des nombres/Nombres entiers positifs
Prenons un nombre entier
positif ?
1337 = 1 × 1000 + 3 × 100 + 3 × 10 + 7 × 1
Ca rendrait mieux en LaTeX, sans trop ralentir la page. Ca vaut pour le reste.
Lorsque c'est le cas, on dit qu'ils sont en base 10.
Le "Lorsque c'est le cas" semble se rapporter à "tout nombre peut s'écrire". Or tout nombre peut s'écrire en base 10.
Mais je suis un peu gêné par ce passage, parce que la notion de base mériterait un tutoriel entier, ce sur quoi travaille d'ailleurs Dominus. Ici, ce n'est pas assez complet pour être rigoureux je pense. Par exemple, tu dis que lorsqu'un un nombre est écrit comme une somme de multiples de puissances de 10, il est en décimal. Mais tu écris plus bas $25$ comme somme de multiples de puissances de 2 ($25 = 2^4 + 2^3 + 2^0$), et pourtant $25$ n'est pas du binaire.
Une base c'est un mode d'emploi pour lire la suite de symboles qu'est un nombre.
n'importe quel nombre entier peut servir de base
N'importe quel entier strictement supérieur à 1, non ?
La base 2 ayant une meilleure résistance aux perturbations électromagnétiques, elle est utilisée dans tous les ordinateurs actuels.
N'est-ce pas aussi parce qu'il est facile de représenter 0 et 1 en électronique (allumé ou éteint) ?
Le bit de poids faible est celui qui est le plus à droite du nombre, celui dont le poids est 0
Le bit de poids fort c'est l'inverse : c'est celui qui est placé le plus à gauche.
Pas dans l'écriture "(a0 × 1) + (a1 × 2) + … + (an × 2n)" que tu donnes.
Voici le tableau des 16 premiers nombres en base 2 :
Je rajouterais une colonne pour préciser que $100$ en binaire, c'est $1 \times 2^2 + 0 \times 2^1 + 0 \times 2^0$ en décimal.
Exemple d'illustration de la méthode de conversion décimal vers binaire
Un tableau me semble plus judicieux :
Nombre
Quotient
Reste
34
17
0
17
8
1
8
4
0
4
2
0
2
1
0
1
0
1
Ainsi, un ordinateur manipule des entiers de taille fixe
Je ne comprends pas le "ainsi". Plutôt :
Or un ordinateur manipule des entiers de taille fixe, donc ne peut représenter des nombres que dans un intervalle déterminé.
Certains processeurs ne conservent que les bits de poids faibles du résultat.
Tu n'as pas expliqué ce qu'étaient les bits de poids faibles.
Le passage n'est pas très clair :
Te places-tu dans le cas d'un débordement d'entier ?
Tu devrais détailler l'exemple.
on arrondit le résultat au plus grand entier supporté par l'ordinateur
dans ce cas, on arrondit au plus petit entier possible.
Je chipote, mais ce n'est pas vraiment un arrondi.
Gestion des débordements d'entiers
Tout plein de termes techniques que tu n'as pas introduits…
symétriser les nombres déjà obtenus
symétriser verticalement
Je croyais que tu disais que transformer $001$ en $100$.
Celle-ci permet de connaitre le codage du nombre n à partir du codage du nombre n-1, comme la méthode du dessus.
Euh, je crois qu'au-dessus, n désigne le nombre de bits sur lequel on code, et non le nombre décimal que l'on code.
avec 3 bits, voir 5
voire
c'est le cas des suites de bit qui correspondent à
bits
qui correspondent aux entiers décimaux
Généralement, ces solutions modifient la signification des bits et n'utilisent pas de binaire normal.
Je ne comprends pas trop cette phrase.
L'architecture de base/Codage des nombres/Nombres entiers négatifs
on peut donc coder tous les nombres compris dans l'intervalle
Tu devrais remplacer $\frac{2^n}{2}$ par $2^{n-1}$ et utiliser les crochets pour représenter l'intervalle.
On remarque que l'intervalle des entiers représentables sur N bits
Un coup tu utilises n, un coup N. Je pense que tu devrais choisir. D'ailleurs, je pense que tu voulais dire n ici, puisque c'est ce que tu utilises dans la phrase suivante.
Avec 4 bits, cela donne ceci :
Autant représenter ça avec un tableau Markdown, non ?
Cela pose des problèmes lorsqu'on demande à notre ordinateur d'effectuer des calculs ou des comparaisons avec zéro.
Je ne comprends pas pourquoi. Il suffit de dire qu'on n'utilise que +0 par exemple, non ?
Avec cette méthode, on peut remarquer que le bit de poids fort (le bit le plus à gauche) vaut 1 si le nombre est négatif et 0 si le nombre représenté est positif.
Euh… 8 est positif et vaut en binaire 1000, non ?
De même, -8 serait 0111.
Je pense que tu as oublié de dire qu'on ne codait la valeur absolue que sur n-1 bits.
Celui-ci se comporte comme un bit de signe
se comporte donc
En utilisant n bits, un nombre représenté en complément à un
à 1
on ne gardera que les N bits de poids faible
de poids les plus faibles
Maintenant, regardons ce que donne cette opération en binaire.
Tu n'as pas expliqué comment additionner deux nombres en binaire.
pour les autres opérations, tel la soustraction ou la multiplication
telles
un débordement a lieu quand le bit du signe
de signe
Il faut bien que çà serve
ça
convertit le nombre en complément à un
convertir
L'extension de signe des nombres positif
positifs
'est la même chose qu'en décimal : rajouter des zéros à gauche d'un nombre ne changera pas sa valeur
d'un nombre positif
Mais du coup, l'analogie avec le décimal ne marche pas trop.
les 8bits les plus à gauche
8 bits
L'architecture de base/Codage des nombres/Nombres à virgule
On sait donc comment sont stockés nos nombres entiers dans un ordinateur.
Pas trop justement (voir remarque tout en bas).
il est lui aussi capable de manipuler des nombres à virgule sans trop de problèmes (même si de ce point de vue, certains ordinateurs se débrouillent mieux que d'autres). Notre ordinateur va parfaitement pouvoir manipuler des nombres à virgule.
J'enlèverais la dernière phrase.
où le nombre de chiffre après la virgule est variable
chiffres
à nombre de bit égal
bits
ainsi que les résultats de 5 opérations
cinq
le chiffre de a situé à gauche de la virgule est donc soit un zéro ou un 1.
Le "donc" répète le "Vu que".
la partie fractionnaire du nombre a
Tu devrais préciser que c'est la partie après la virgule.
Seule la partie fractionnaire est stockée dans la mantisse
Tu as dit juste au-dessus que la partie fractionnaire était la mantisse.
et ne vaut 0 que dans quelques rares exceptions
Si et seulement si le nombre de départ est nul, non ?
Il peut se déduire en fonction de l'exposant, ce qui permet d'économiser un bit.
J'expliquerais cela.
Commençons notre revue des flottants spéciaux par les dénormaux
Pourquoi les avoir mis en dernier dans la liste alors ?
qui signifie "je ne sais pas quel est le résultat de ton calcul pourri"
Guillemets français ?
est l'abréviation de Not A Number
Not A Number ?
L'architecture de base/Codage des nombres/Codage stochastique
correction d'erreur de type LPDC
La légende ne correspond pas avec le sigle.
Cependant, nous n'allons par parler de ces méthodes, et nous allons d'abord voir
pas parler
Mais tu dis que ne va pas parler de A puis qu'on va commencer par B. Plutôt : on ne va pas parler de A, mais de B.
Statistiquement, plus la suite de bits est grande, plus le nombre de 1 et de 0 aura de chance d'être quasiment le même.
Je chipote, mais tu devrais préciser plus haut qu'on a une pièce équilibrée.
dans ce cas, la chance d'obtenir un pile à chaque tirage est supérieure à la chance d'obtenir un face.
Ou inversement.
Plus précisément, c'est la probabilité d'obtenir un 1 à chaque tirage qui permettra de coder un nombre.
Plutôt : Plus précisément, la probabilité d'obtenir un 1 à chaque tirage représente le nombre à coder.
De même, le nombre 0 sera encodé par une probabilité de 0
de 0 d'obtenir 1
En clair, les nombres sont mémorisés dans une suite de bits produits par le générateur aléatoire.
Ca fait beaucoup de bits pour représenter un bête nombre, non ?
du générateur aléatoire qui produit la suite de bit
bits
cette probabilité à partir de la suite de bit
bits
Avec cette représentation, le nombre peut être fabriqué de la même manière quelque soit
manière, quelque soit
Et oui; le générateur
Eh oui, le
Mais comment faire pour déduire le nombre stochastique de même valeur qu'un autre nombre ?
C'est quoi le nombre stochastique ?
Je n'ai pas compris grand chose à la réponse.
On peut répondre facilement pour les nombres de la première représentation
Je ne crois pas que tu aies dit qu'il y avait plusieurs représentations.
A chaque cycle
À
Il est possible de gérer des nombre
nombres
Ce bit de signe est transmis par un fil
Un fil ?
elle a besoin de deux générateurs pseudo-aléatoire
pseudo-aléatoires
un pour chacune des deux ligne
lignes
Nous ne parlerons pas de cette méthode, ni des circuits qui manipulent des nombres codés ainsi dans la suite de ce tutoriel.
Nous ne parlerons pas de cette méthode dans la suite de ce tutoriel, ni des circuits qui manipulent des nombres codés ainsi.
Représentation pseudo-bipolaire
Tu vas un peu vite là-dessus.
C'est dommage, tu restes un peu en surface : tu n'expliques pas ce qu'est une base exactement, tu ne détailles pas trop les méthodes pour les nombres négatifs ("on remarque", "on généralise"…). Bon, ce n'est peut-être pas le but de ce chapitre que de donner un cours sur le binaire, et ce ne serait probablement pas judicieux de le faire dans un tel tutoriel, mais j'indiquerais en introduction qu'il s'agit d'un chapitre "pratique" : le but n'est pas de comprendre les aspects mathématiques mais d'apprendre à utiliser le binaire.
Peut-être le dis-tu dans la suite du tutoriel, mais quand utilise-t-on telle représentation ? Tu nous dis par exemple qu'on peut représenter les entiers négatifs de quatre manières, mais pas trop quels sont leurs avantages et défauts (sauf pour l'histoire du +-0) ni quand on les emploie.
C'est un cours d'architecture des ordinateurs, pas un cours de mathématique. Et dans ces conditions, je ne vois pas pourquoi je devrais prévenir dans l'introduction que j'utilise une approche non-formaliste, alors qu'il n'y a aucune raison de penser que je pourrais utiliser une approche formaliste du fait même du but du cours.
Le problème, c'est que présenter les inconvénients et avantages autres que le +/-0 demande quelques bases en électronique. Je le faisais avant : il y avait un paragraphe qui expliquait que telle représentation donnait des circuits plus complexes, telle autre avait le problème du double zéro, etc. Au final, le paragraphe était très vague et pas franchement utile.
C'est un cours d'architecture des ordinateurs, pas un cours de mathématique. Et dans ces conditions, je ne vois pas pourquoi je devrais prévenir dans l'introduction que j'utilise une approche non-formaliste, alors qu'il n'y a aucune raison de penser que je pourrais utiliser une approche formaliste du fait même du but du cours.
Certes, mais on pourrait attendre d'un informaticien qu'il connaisse le binaire de manière formelle. Quoiqu'il en soit, ça ne coûte pas grand chose de l'indiquer en introduction. Du moins, j'aurais personnellement aimé que ce soit précisé, parce que je m'attendais à un cours approfondi sur le binaire.
Le problème, c'est que présenter les inconvénients et avantages autres que le +/-0 demande quelques bases en électronique. Je le faisais avant : il y avait un paragraphe qui expliquait que telle représentation donnait des circuits plus complexes, telle autre avait le problème du double zéro, etc. Au final, le paragraphe était très vague et pas franchement utile.
D'accord pour ne pas détailler pourquoi certaines sont meilleures que d'autres. Mais ce serait bien de dire si on les utilise toutes, seulement certaines ou une seule. Là, on ne sait pas trop si tu les introduis toutes pour la culture générale ou parce qu'elles servent.
On peut très bien créer des circuits du genre avec un peu n'importe quoi : des dispositifs hydrauliques, ou électriques, magnétiques, voire à air comprimé. Mais les ordinateurs actuels sont fabriqués avec des dispositifs électroniques binaires, comme des portes logiques ou des montages à base de transistors et de condensateurs.
Ce point mériterait d'être développé. Mais peut-être plutôt dans le premier chapitre.
Transistors
On peut appliquer une tension électrique sur ces broches (et non un courant), qui peut représenter soit 0 soit 1 en fonction du transistor utilisé.
Ce n'est pas très clair. Vu que tu donnes des détails par la suite, je dirais :
Nous allons représenter 0 et 1 en appliquant une tension (et non un courant) à certaines de ces broches.
D'ailleurs, tu parles ensuite d'appliquer une tension uniquement à la grille.
Ces trois broches ont des utilités différentes et on leur a donné un nom pour mieux les repérer :
Je mettrais cette phrase et la liste avant l'image.
et se ferment si la tension placée sur cette même grille représente un 1
Ce n'est pas très clair pour deux raisons :
Que signifie "la tension représente un 1" ? Est-ce équivalent à "tension strictement positive", "tension supérieure à 2V"… ?
Tu n'as pas explicitement dit que "état bloqué" = 0 et "état passant" = 1 (ou inversement).
Tu devrais plutôt dire :
les transistors NMOS, qui s'ouvrent lorsqu'on place une tension égale à zéro sur la grille (ce qui correspond à un bit 0) et et se ferment dans le cas contraire, ce qui représente un 1 ;
Je ne suis pas sûr du "dans le cas contraire". Tu peux corriger au besoin :
les transistors NMOS, qui s'ouvrent lorsqu'on place une tension égale à zéro sur la grille (ce qui correspond à un bit 0) et et se ferment quand la tension vaut 1.15780V, ce qui représente un 1 ;
Portes logiques
mais j'aimerais savoir comment on fait pour triturer des bits avec des transistors ?
Ce n'est pas une question.
possèdent des sorties et des entrées sur lesquelles on va placer ou récupérer
Je chipote, mais l'ordre des mots ne coïncide pas :
possèdent des entrées et des sorties sur lesquelles on va placer ou récupérer
rien d'autre que des morceaux de "fil" conducteur
Ce n'est pas la première fois que tu mets le mot "fil" entre guillemets. Ca donne une impression d'approximation pas très souhaitable.
Sur chaque entrée du composant
"composant" = "circuit logique" ?
A partir de là
À
Sur les schémas qui vont suivre, les entrées des portes logiques seront à gauche et les sorties à droite !
Plutôt une balise information.
la porte NON, qui agit sur un seul bit
Sur une seule entrée plutôt, non ? Tu n'as d'ailleurs pas précisé ce que prenait une entrée : un seul bit ? Un mot binaire ? De taille fixe ?
Comment créer une porte NON avec des transistors
Tu devrais expliciter "Tension d'alimentation". Si j'ai bien compris, elle sert à faire fonctionner le transistor (à faire en sorte qu'il change d'état selon la tension appliquée à sa grille). A ne pas confondre avec les tension d'entrée.
Si on met un 1 en entrée de ce petit montage électronique, le transistor du haut va fonctionner comme un interrupteur ouvert, et celui du bas comme un interrupteur fermé
Tu devrais indiquer le type de chaque transistor (NMOS ou PMOS), ainsi que donner leur schéma dans l'extrait précédent (lequel a un cercle au niveau de sa grille ?). Cela permettrait de lire sur le schéma tout ce que tu dis dans le texte.
La porte ET possède 2 entrées
deux
Cette porte logique met sa sortie à 1 quand toutes ses entrées valent 1.
C'est même une équivalence. Il faut le préciser, parce que cette phrase ne caractérise pas la porte ET (la porte OU aussi met sa sortie à 1 quand toutes ses entrées valent 1).
On n'a pas de montage ? S'il y a une raison, tu devrais la préciser.
Même remarque pour OR.
La porte NAND est l'exact inverse de la sortie d'une porte ET.
Pourquoi ne pas simplement mettre une porte NON à la suite d'une porte ET ?
seul le petit rond ajouté sur la sortie de la porte a été rajouté
seul le petit rond sur la sortie de la porte a été rajouté
À titre d'exercice, tentez de recréer les portes ET, OU
On n'a pas encore parlé de la porte OU.
Câblage d'une porte NAND
Tu devrais relier les deux entrées A, qu'on comprenne bien qu'on applique la même tension. De même pour B.
Même remarque pour NOR.
Fonctionnement interne d'une porte NAND
Tu devrais indiquer la valeur de la sortie pour chaque cas de figure.
Même remarque pour NOR.
La porte OU possède 2 entrées
deux
Apollo étaient intégralement conçus uniquement avec des portes NOR
"uniquement" répète "intégralement".
Cette porte est équivalente à une porte XOR suivie d'une porte NON.
Pourquoi on ne fait pas comme ça du coup ?
Tu devrais le préciser aussi pour les portes NAND et NOR.
Circuits combinatoires
Pour commencer, nous allons parler
Commencer quoi ?
Cela peut sembler être évident
Cela peut sembler évident
lister la valeur de chaque sortie pour toute valeur possible en entrée
lister la valeur de la sortie pour toute valeur possible en entrée
Le premier exemple sera très simple. Le circuit que l'on va créer sera un inverseur commandable. Celui-ci va prendre un bit en entrée.
Il y a beaucoup de points :
Le premier exemple sera très simple. Le circuit que l'on va créer sera un inverseur commandable, qui va prendre un bit en entrée.
Il fonctionnera soit comme un inverseur
Je ne crois pas que tu aies expliqué ce qu'est un inverseur ? C'est un NON ?
un bit d'entrée dira s'il faut que le circuit inverse ou non l'autre bit d'entrée
Je croyais que notre circuit ne prenait qu'un seul bit en entrée.
La table de vérité est donc celle-ci :
C'est quoi le tiret dans le tableau ?
Je remplacerais "Résultat" par "Sortie".
S'il est impair, on sait qu'au moins un bit à été modifié.
Si un nombre pair de zéros deviennent des uns (ou inversement), on l'a dans le trou, non ?
Voici donc le tableau de ce circuit, réalisé ci-dessous.
Voici donc le tableau de ce circuit.
Sinon on croit qu'on va réaliser le circuit plus bas. A moins que ce soit le cas.
Sinon, s0, e0, e1 et e2 rendent mieux je trouve.
Nous allons enfin aborder un quatrième exemple
Je ne comprends pas le "enfin".
prendre en entrée d'un nombre de trois bits
un
et sinon, c'est un 0
ce sera
une bonne partie du travail à déjà été fait
a
Par exemple, l'équation (a¯¯¯.b)+(a.b¯¯)
Cela pourrait embrouiller le lecteur. Plutôt :
(NON a ET b) OU (a ET NON b)
Puis tu dis après qu'en pratique on utilise une autre notation, parce que c'est plus clair.
Symbole
Plutôt : Équation logique
écrire une équation logique…enfin presque
écrire une équation logique… enfin presque
Et oui, il faudra bien éviter
Eh
Reste à savoir comment transformer une table de vérité en équations logiques
Tu devrais expliquer pourquoi on fait ça. Là, on te suit un peu à l'aveuglette : on comprend ce qu'on fait, mais pas pourquoi on le fait.
de toutes les entrées du circuits
circuit
lister les lignes de la table de vérité pour lesquelles la sortie vaut 1 ;
On ne comprend pas pourquoi on vire les autres. De manière plus générale, on ne comprend pas pourquoi on fait une équation logique. Autant l'utilité de la table de vérité est évidente, autant là ça l'est moins. Tu dis que c'est pour modéliser un circuit, mais ce n'est pas très naturel de passer par là.
en n'oubliant pas de les entourer par des parenthèses
Point.
Par exemple, prenons la première ligne dont la sortie vaut 1, à savoir la deuxième.
Vu que tu as déjà listé les listes ayant une telle sortie, je ne préciserais pas "la deuxième", parce qu'on pourrait s'embrouiller dans les tableaux.
Reste à faire un bon gros OUentre
Il est tellement gros qu'il empiète sur le mot suivant.
Cela donne
Cela donne : (
Simplifications de circuits
un gros paquet de ETet
un gros paquet de ET et
; peut se simplifier en :
, peut
Ou alors :
obtenue auparavant :
$$
blablabla
$$
peut se
Element
Élément
Loi de De Morgan
Tu as mis un point-virgule et un point dans la cellule de droite, mais c'est la seule où tu as fait ça.
On peut aussi rajouter que la porte XORa ses propres règles.
XOR a
J'enlèverais la première colonne, qui ne sert à rien.
comme on le ferait avec une équation normale
comme on le ferait avec une équation mathématique normale
Premier exemple
La présentation pourrait être clarifiée en centrant les formules.
On remarque rapidement que l'on peut factoriser e0
$e0$
Les curieux se demandent surement
sûrement
des termes équivalant donnent
équivalents
alors que des termes différents
différents != pas équivalents
Les plus connues étant les tableaux de Karnaugh. Les tableaux de Karnaugh se basent sur un tableau (comme son nom l'indique).
Les plus connues étant les tableaux de Karnaugh, qui se basent sur un tableau (comme le nom l'indique).
Le tableau de karnaugh
Karnaugh
D'abord, il faut d'abord créer
D'abord, il faut créer
on doit créer un tableau pour chaque bit de sortie. Ensuite, il faut construire ce tableau.
tableau = table de vérité ou tableau de Karnaugh
on crée deux paquets en plaçant ces variables les unes à la suite des autres
Ce n'est pas très clair. Plutôt :
on crée deux paquets avec le même nombre de variables (sauf quand il est impair : dans ce cas, il y a aura un paquet qui aura une variable de plus)
Bref… Le but de cette étape
Bref, le but de cette étape
Mais cette phrase n'aide pas trop parce que tu n'as pas dit comment on construisait le tableau, donc on ignore en quoi équilibrer les paquets le rend carré.
on place les valeurs que peut prendre ce paquet sur la première ligne
ligne, avec une valeur par colonne
Pour faire simple, considérez ce paquet de variables comme un nombre, et écrivez toutes les valeurs que peut prendre ce paquet en binaire. N'oubliez pas que ce paquet est un rassemblement de variables de 1 bit, qui peuvent uniquement valoir zéro ou un.
Ca n'aide pas trop. Je l'enlèverais complètement, la phrase précédente étant plutôt claire et les exemples s'assurant de la compréhension du lecteur.
Pour le second paquet, faite
faites
Et avec quatre variables :
Tu devrais donner un exemple où le nombre de variables est impair.
De plus, il serait préférable d'utiliser un tableau Markdown.
Chaque ligne va indiquer quelle est la valeur des variables choisies pour concevoir le paquet. Même chose pour les colonnes.
Pas compris.
et on le place à l'intersection de la ligne et de la colonne
colonne dans le tableau de Karnaugh
On fait cela pour chaque case du tableau, et on le remplit totalement.
Exemple ?
Ensuite, ces regroupements doivent former des rectangles dans le tableau de karnaugh.
Karnaugh
Mais la phrase vient un peu tard. Je ferais plutôt :
Par regroupement, on veut dire que les 1 dans le tableau doivent être regroupés en paquets rectangulaires dont le nombre de cases est une puissance de 2 : 1, 2, 4, 8, 16, etc. De manière générale, il vaut mieux faire des paquets les plus gros possible, afin de simplifier l'équation au maximum.
Par exemple, voici un regroupement valide :
Autre exemple :
Tu ne respectes pas la règle de faire des paquets les plus gros possibles.
Bords et coins du tableau
Hein ?
Regroupements par les bords du tableau de Karnaugh
Là aussi, tu peux faire un regroupement plus gros.
Encore une fois, cela permet d'obtenir des regroupements plus gros. Et croyez-moi, il ne faut pas chipoter avec cette méthode.
Là aussi. A moins qu'on ne puisse que regrouper les bords, et ne pas faire :
11 0 1 11 0 1 11 0 1
Mais même, tu pourrais englober le vert (ou jaune ?) dans le rouge :
Le même principe peut s'appliquer aux coins :
Juste les coins, où je peux poursuivre dans la diagonale ?
mais il faut s'entrainer à faire des regroupements pour obtenir des résultats les plus simplifiés possibles.
à faire des regroupements les plus gros possibles
Regardez les deux premières colonnes
de la première ligne
plus petits qu'on relie ensemble
ensembles
Quelques circuits communs
Maintenant que nous savons coment créer et simplifier des circuits, nous allons donner quelques exemples de circuits assez fréquents.
On ne sait pas trop créer de circuits : seulement trouver une équation logique.
le nombre de ses bits qui sont à 1
le nombre de ses bits à 1
Cette population count est aussi appelé
appelée
Il est à la base d'un grand nombre de code de détection ou de correction d'erreurs usuels
Il est à la base d'un grand nombre de codes usuels de détection ou de correction d'erreurs
vérité de 256 lignes…A la place
vérité de 256 lignes… À la place
nous allons donc découper notre circuit en plusieurs sous circuits
Le "donc" me semble de trop.
Supposons que j'ai un nombre
aie
somme des population count des deux morceaux
somme des populations count de chacun des morceaux
Au final, je finirais
En fin de compte, je finirai
jusqu'à obtenir des morceaux de 1 bit
jusqu'à en obtenir de un bit
d'un morceau de 1 bit vaut
un
et zéro s'il vaut zéro
et zéro s'il vaut 0
…le bit en question
… le bit en question
Le circuit de calcul de population count est donc composé de couches d'additionneurs, reliées en série.
Je chipote, mais on n'a de mémoire jamais parlé d'additionneurs.
et peut être crée avec la méthode des minterms
créé
Circuit de calcul de la Population Count d'un nombre de 8 bits
population count
Je ne comprends les "additionneurs X bits".
Ce décodeur est un composant qui contient :
Seule la premire puce suit logiquement cette phrase.
deux nombres différents placées sur son entrée
placés
il prend sur son entrée un nombre entier x
$x$
positionne à 1 la sortie numéroté x
numérotée $x$
nous allons montrer l'exemple d'un décodeur 2 vers 4
Tu n'as pas expliqué ce que signifie ce "2 vers 4". Je mettrais plus haut qu'un décodeur prenant n entrées est dit "n vers 2n".
on obtient alors le circuit suivant :
Le "alors" me semble de trop.
un 0 sur cette entrée, celle-ci voit toutes ses sorties passer à 0
C'est le décodeur qui voit ses sorties passer à 0, pas l'entrée.
Construire un décodeur demande suffisamment de décodeurs pour combler toutes les sorties.
Je ne crois pas que tu aies parlé de combler des sorties. Du coup, on ne comprend pas ce que tu veux dire ici.
Il faut alors relier les entrées des décodeurs aux bits de poids faible de l'entrée du décodeur final.
Qu'est-ce que le décodeur final ? Cela signifie qu'on les ordonne ?
Première ébauche de décodeur concu à partir de décodeurs plus simples
Tu devrais indiquer les entrées de chaque décodeur.
Conclusion
tout circuit peut être crée
créé
on peut créer un circuit en créant une table de vérité
on peut créer un circuit en construisant une table de vérité
Franchement chapeau. Je suis une nouille en électronique et pourtant j'ai bien compris. Ce chapitre est très clair.
Il faut par contre que je revienne sur les tableaux de Karnaugh.
De plus, tu devrais expliquer rapidement à quoi servent les circuits abordés dans "Quelques circuits communs". Je n'ai pas réussi à terminer cet extrait : il n'est pas simple à assimiler et ne m'intéresse pas particulièrement puisqu'est purement technique.
Ca permet d'expliquer visuellement pourquoi il faut faire des groupes de la taille d'une puissance de 2, et de pourquoi on utilise le binaire réfléchi.
La méthode Karnaugh s'applique sur un tableau en 2D, je ne vois pas ce qu'apporterait une représentation 3D si ce n'est ajouter de la confusion. Déjà que quand tu la vois en cours tu as un peu de mal (c'est normal), si tu rajoute une dimension, je pense que tu perds la plupart des personnes qui suivent le cours
De plus, je n'ai pas compris pourquoi il faut faire des groupes de la taille d'une puissance 2. Y a une bien belle équation, mais pour un cours d'introduction ("de zéro") c'est too much
zeqL : le but n'est pas de faire des maths en effet, mais dans la représentation en 3D (pour 3 variables), on peut voir assez facilement que pour que ça marche, il faut qu'on prenne un point, une arête, une face, ou un volume, mais que ça n'a pas de sens de prendre une arête + un point quelconque non déjà pris, puisque le but est d'avoir des termes adjacents.
Je ne parlais que de l'image, tout le reste, c'est ce que j'ai présenté cette année, c'est clairement too much en effet, mais la méthode de Karnaugh revient à chercher une couverture d'hypercube minimale, et la version cube permet de mettre en évidence des difficultés qu'on peut rencontrer et le principe de la méthode (présenté et approuvé à mes amis qui m'ont aidé à améliorer mon TIPE, ainsi que mon jury, alors qu'ils ne connaissent pas grand chose à l'informatique).
En plus, je sais pas vraiment si on peut parler de dimension pour la méthode de Karnaugh, étant donné que tu peux créer un bloc en prenant les 4 coins sans le reste, et c'est complètement contre-intuitif sans cette représentation des éléments adjacents.
Je pense que ça peut aider des gens de savoir qu'en fait un tableau de Karnaugh est un tore. Le haut et le bas se touchent, ainsi que la gauche et la droite. Du coup, les coins se touchent aussi.
Quand j'ai appris les tableaux de Karnaugh, on m'a dit ça immédiatement, et mine de rien, ça m'a aidé à comprendre pourquoi ces regroupements étranges sur les bords sont possibles.
@unidan : le truc c'est qu'il faut simplifier. Là tu commence à parler de couverture d'hypercube minimale et tout, ton raisonnement est trop mathématique (dans le sens un peu trop théorique).
Aabu résume peut-être ta pensée en disant que les coins, bords et tout se touchent et donc qu'on peut "replier" le tableau. C'est peut-être ce que tu dis depuis le début mais je ne l'ai pas compris comme ça
zeqL : euh, je n'ai pas dit qu'il fallait parler de couverture d'hypercube minimale et tout, j'ai dit que ça revenait à ça, justement sur le point de vue mathématiques.
Mais mettre un tableau de Karnaugh à trois ou quatre variables et le cube qui correspond à coté permet de visualiser d'une autre façon ce qu'il se passe, autrement que sur un tableau avec des règles obscures.
Je valide complètement ce que dis Aabu, c'est une autre façon de le penser (même si un tore est un objet beaucoup trop compliqué par rapport à un cube pour moi), mais plus que sur le repliement, c'est sur l'adjacence des termes qu'il faut insister (autant au niveau du cube, où l'adjacence est représenté par une arête, que sur le tableau), et utiliser le cube comme outil de visualisation de pourquoi, par exemple, il faut grouper par puissance de deux, simplement par l'exemple, ça me parait donner une meilleure intuition que seulement le tableau et ses règles.
Mais je reste d'accord qu'il ne s'agit pas de faire un cours de minimisation d'expression logique, c'est juste beaucoup trop complexe comme domaine pour un cours sur les PC, et en pratique ça permet même pas de vraiment toucher du doigt les problèmes qu'on a sur la réalisation de circuit. Simplement, c'est plus complexe de présenter une technique avec un point de vue formel (les règles du tableau) que de présenter une technique, la règle, et l'illustrer de plusieurs façons intuitives différentes.
Le tableau est clairement plus clair lorsque l'on fait des groupes facile à faire, et qu'on se bande les yeux sur la règle de combinaison, mais il n'est pas du tout intuitif pour les autres règles.
Après, de mon point de vue, je ne comprend pas pourquoi c'est la méthode de Karnaugh qu'on enseigne en SI, sans expliquer ce qu'il y a derrière, alors que la méthode de Quine-McCluskey est bien plus systématique et s'y prête bien mieux, en plus d'être généralisable pour $n$ variables.
Son rôle est donc de retenir que des -> allègement de la phrase ? "Son rôle est donc de retenir des données stockées sous la forme de suites de bits, afin de (pouvoir) les récupérer si nécessaire et les traiter." ?
il en existe différents types, chacun ayant ses avantages -> chacune ?
en revue les différences entre mémoires les plus importantes -> entre les mémoires
pas égales : elle n'ont pas la même capacité. -> elles
appelées Bytes. -> bytes (sans majuscule)
plus petites, contenant A, 2, 3, 4 -> 1, 2, 3, 4
Pour se faciliter la tache, on utilise -> tâche
certain temps que la mémoire aie finie -> ait finie
mais pas les modifier : -> ":" au lieu de "."
FROM, PROM, EPROM, EEPROM, RAM, SRAM, DRAM, etc -> donner l'explication de l'acronyme au moins 1 fois.
SRAM ou ram statiques et les DRAM ou RAMs dynamiques. -> RAM/RAMs statiques // RAM/RAMs dynamiques
Les mémoires actuelles utilisent l'adressage, l'accès aléatoire : -> phrase bizarre "l'adressage, l'accès aléatoire", rajouter au moins un "c'est l'accès aléatoire" ?
Les mémoires à accès séquentielles ne sont -> séquentiel
sont triées par ordre d'écriture, par ordre d'arrivée. -> comme précédemment, bizarre, plutôt qu'une virgule reformuler ? ("qui est aussi")
Une lecture renvoi la donnée la plus ancienne -> renvoie
la plus récente sont mémorisés dans des registres. -> mémorisées
nommées les Content Adressables Memories, -> donner l'acronyme (CAM)
encore mémoire adressables par contenu -> mémoires
qui implémente ce mode d'accès -> implémentent
on fait à peu-prêt la même -> à peu près (ou à-peu-près)
dans un ensemble de donnée -> données
Certaines circuits internes au processeur -> certains
on utilise un bit du bus de commande nommé R/W. -> rappeller que R = Read (lecture) et W = Write (écriture)
sur ce qu'on s'appelle un port. -> ce qu'on appelle
Pourquoi utiliser des puissances de 1024, et ne pas utiliser des puissances un peu plus communes ?
Je ne comprend pas pourquoi tu parles de puissances de 1024 alors que dans le tableau juste au-dessus il n'y a qu'une colonne avec les puissances de deux. C'est sûrement en rapport avec 1 Kio = 1024 mais la question mériterait d'être reformulée pour être plus claire.
Mémoire LIFO -> pourquoi ne pas faire de schéma comme la FIFO ?
les mémoires à correspondance. -> tu parle de mémoire à correspondance mais ensuite les deux images ont pour légende mémoire associative. D'autre part tu met le titre "Hash table", une petite précision pour les personnes ne parlant pas anglais serait utile.
bus multiplexé :
ALE = ?
Sinon le bit ALE n'est pas toujours présent, il suffit de voir avec le bus I2C par exemple, le R/W est déterminé par un bit qui est envoyé sur le bus.
Après tu parles peut-être de bus parallèles vu qu'il y a plusieurs broches de data.
I.2 Mémoriser un bit
acronymes SRAM, DRAM !
et c'est lui qui est l'objet de ce chapitre. -> c'est l'objet du chapitre
nos propres bits de mémoires -> mémoire
Ces bascules peuvent être crées -> créées
es mémoires MLC a obtenir une grande capacité. -> à obtenir
I.3 Contrôleur interne et plan mémoire
fonctionne un contrôleur mémoire. Mais je parlerais du fonctionnement -> le "mais" est inutile.
stockant le i-éme bit du contenu d'une case mémoire (le bit de poids i) est reliée au i-éme fil du bus -> i-ème. Il faudrait peut-être mettre "i-ème" bit en italique pour indiquer qu'on parle d'un "nombre" ?
bonne ligne sur les btilines, -> bitlines
Ainsi, diminuer le nombre de lignes dans notre mémoire tient de la légitime défense. -> que vient faire la légitime défense ???
La dernière partie "interfaçage avec le bus" me paraît absolument pas claire. Je ne suis pas du tout novice et pour le coup je comprend que tu veuille simplifier, mais réussir à parler du 3e état sans donner son nom (Haute impédance / Z) ni vraiment expliquer ce que c'est exactement, je doute que ce soit la solution.
Tu évite de parler de l'état Z en utilisant le bit Chip Select, sauf que celui-ci n'est pas présent sur tous les bus. Je reprend le bus I2C : il n'y a pas de CS ni de R/W.
Le but du tuto n'est pas de faire de l'électronique, mais là je trouve que c'est assez confus.
J'ai corrigé les typos et fautes d’orthographe mentionnées dans les messages précédents. J'ai aussi tenté de simplifier un peu les explications du dernier extrait du chapitre trois (partie 1) : la partie sur le circuit de population count a tout simplement disparue (ce circuit ne sera pas utilisé dans le tutoriel, contrairement aux autres circuits), et les autres explications de l'extrait sont un petit peu reformulées. A part cela, les modifications sont mineures : je n'ai notamment pas touché aux explications sur le tableau de Karnaugh, notamment (le chapitre est déjà suffisamment long). Je vais voir ce que je peux faire pour ce qui est des explications de l'extrait "interfaçage avec le bus".
on peut envoyer un accès mémoire à la mémoire sans attendre -> à reformuler, par exemple : "on peut réaliser un accès mémoire/sur la mémoire, sans attendre…"
plus petite sur la mémoire pipélinée. -> pas de é
ce qui surcompense exactement l'augmentation du nombre d'étapes. -> surcompense ? compense tout court suffit
" la durée d'un cycle d'horloge est plus petite sur la mémoire pipélinée." -> bah non à fréquence égale le cycle d'horloge est le même sur mémoire pipelinée et non pipelinée. Je pense que tu veux plutôt parler du temps d'accès qui est réduit sur une mémoire pipelinée.
conserver la commande conflictuelle ne attente. -> en attente
Mais des lectures et écritures consécutives accèdent à la même adresse, -> il manque un si ? "Mais si des lectures … "
mémoire et câbler plus de fils : Le prix de la mémoire -> "le" sans majuscule
Mémoire dual et quad data rate
DDR : Double Data Rate : on utilise les deux fronts d'horloge
QDR : Quad Data Rate : on utilise un deuxième signal d'horloge déphasé de 90°, ce qui permet d'avoir 4 fronts sur un cycle d'horloge.
Mais les RAM DDR ne fonctionnent qu'en DDR
Le QDR a été utilisé par Intel sur des bus interne, il y a aussi des mémoires QDR utilisant ce principe (entre autres)
Le schéma présent ici : http://electronics.stackexchange.com/questions/111602/how-does-ddr-sdram-work me semble plus clair (j'ai d'ailleurs répondu à la question) par rapport au tien. C'est peut-être de là que vient mon incompréhension.
par le résultat du XORbit à bit.-> manque un espace après XOR
La seconde méthode utilise remplace -> utilisée ? ou supprime "utilise" ?
Quelle est la différenc entre stream buffer et mémoire cache ? Pour moi c'est quasi-équivalent.
II.6 Mémoires DDR, SDRAM et leurs cousines
se démarquent des autres et sont que des améliorations des mémoires vues -> ne sont que
Ces mémoires pas synchronisées avec le processeur -> n'étaient pas
Quand ces mémoires ont étés crées, cela -> ont été créées
simplifier, le Signal RAS permettait sélectionner -> "signal", permettait de sélectionner.
Sur le schéma : Selection / sélèctionnée -> Sélection / sélectionnée
register mode contient un bit qui permettra de préciser -> qui permet de
dans un registre de 20 bits, le registre de mode -> il y a que 10 bits dans le tableau qui suit
le signe - servira à dire que la valeur du bit -> on utilise plutôt X pour le "don't care"
sans que cela aie la moindre influence -> ait
doit gérer d'autres temps de d'attente -> "de" en trop
Partie DDR : c'est la même que l'extrait DDR et QDR de la partie précédente, autant supprimer la précédente et laisser cette partie qui est plus développée ?
plusieurs versions : DDR1, DDR2, DDR3 -> DDR(1), on voit très rarement DDR1
Dans le principe, es mémoires DDR2 transfèrent -> les
Dans le principe, es mémoires DDR3 transfèrent -> les
Cf le lien stack exchange précédent pour les schémas, qui me paraissent pas très clairs.
les mémoires GDDR, utilisées presque exclusivement sur les cartes graphiques. -> normal puisque le G veut dire Graphics
Et puis quitte à les évoquer autant en dire un peu plus : bit masking, ouverture de 2 pages pour simuler le dual-port, etc.
II.7 Barettes de mémoire SIMM, DIMM, et FB-DIMM
Les broches sont les trucs jaunes situées en bas -> situés / si on pouvait éviter les "trucs" et "machins"…
Les bus ont reliés aux modules de mémoire -> sont reliés
Cela est du à de sombres raisons tenant à l'intégrité des signaux électriques. -> pourquoi sous-entendre que l'intégrité du signal c'est négatif
Mais dans certaines conditions, cela pose des problèmes d'intégrité du signal : ce qui est envoyé sur le bus n'est pas ce qui est reçu par la barrette de mémoire. -> il est reçu mais trop altéré pour être exploitable. En fait il ne respecte plus les caractéristiques minimum.
ette réponse étant aussi propagées jusqu'au contrôleur mémoire. -> propagée
Je ne relève pas l'introduction FB-DIMM sur les résistances de terminaison (bouchon) et l'intégrité du signal, c'est pas facile à expliquer
On peut voir un stream buffer comme un cache à une ligne, la ligne en question étant de même taille que le byte de la RAM interne. Mas il faut ajouter que les transferts entre ports de lecture/écriture et stream buffer se font en burst : on transfère le contenu du stream buffer byte par byte sur les ports de lecture/écriture.
J'ai retravaillé le tout, histoire d'éviter les redondances. Mais je n'ai pas effectué la fusion, vu que ce qui est vrai pour les mémoires DDR version DRAM ne l'est pas pour les DDR et QDR version SRAM. Tout ce qui a rapport à la standardisation du JEDEC et autres, c'est spécifique aux DDR version DRAM, donc je laisse dans ce chapitre.
Pourquoi pas, mais je connais assez mal ces mémoires. Il faudrait que je fasse quelques recherches.
C'est-à-dire ?
Pour moi le DDR c'est l'utilisation des deux fronts d'horloge de la clock, le QDR on ne peut pas utiliser 4 fronts sur un seul signal de clock, il en faut donc deux.
De plus pour moi tu ne fais pas de différentiation claire de DRAM et SRAM entre les deux parties (cf commentaires suivant) car j'ai l'impression que tu parle d'organisation générale des mémoires.
J'ai retravaillé le tout, histoire d'éviter les redondances. Mais je n'ai pas effectué la fusion, vu que ce qui est vrai pour les mémoires DDR version DRAM ne l'est pas pour les DDR et QDR version SRAM. Tout ce qui a rapport à la standardisation du JEDEC et autres, c'est spécifique aux DDR version DRAM, donc je laisse dans ce chapitre.
-
Pourquoi pas, mais je connais assez mal ces mémoires. Il faudrait que je fasse quelques recherches.
Peut-être pas faire 2 pages de commentaires, mais l'article wikipédia semble évoquer ces deux caractéristiques en plus de celles que tu cites
Il me semble que sur certaines SRAM DDR assez rares (et anciennes), ce n'est pas le cas : il y a bien doublement de la fréquence du bus mémoire (seul le front montant compte) et non utilisation des deux fronts d'horloge. Mais dans tous les cas, la fréquence effective double, même si la fréquence réelle n'a pas changé avec l'utilisation des deux fronts.