Fonctionnement des ordinateurs de zéro

Fonctionnement des ordinateurs de zéro

a marqué ce sujet comme résolu.

Pour la partie minimisation de circuit logique, n'est-il pas mieux de citer rapidement Quine-McCluskey et Espresso (IIC/MV) que de simplement proposer de rendre les armes ? D'autant plus que l'un a au moins 60 ans et l'autre au moins une bonne trentaine d'année, donc c'est quand même des choses que l'on maitrise plus ou moins.

Si, presque exactement, c'est très bien décrit ici. C'est une méthode plus systématique que la méthode de Karnaugh, mais elle peut très bien être appliquée à la main : http://www.groupes.polymtl.ca/circuits-logiques/help/Chapitre04.pdf

Pour espresso, j'ai un document ici : https://github.com/alexandre-janniaux/strongcoffee/blob/master/Documentation/espresso.pdf Mais globalement, j'ai l'impression qu'il y a peu de ressource sur ce sujet (surtout qu'en cherchant espresso, on est pas mal paralysé par d'autres sujets).

De très nombreuses suppressions de redondances dans le chapitre "Il y a quoi dans un processeur ?", ainsi que des améliorations d'explications, reformulation de phrases (mon style d'écriture était vraiment…) et corrections. C'est quand même dingue de voir à quel point ce tutoriel était remplit de défauts visibles comme le nez au milieu de la figure : heureusement que je me suis mis à le retravailler…

+1 -0
I. 3. Traitements et calculs
  • CMOS -> explication de l'acronyme.
  • On peut appliquer de force une tension électrique sur ces broches -> "appliquer de force" : forcer / contraindre / imposer
  • deux types de transistors CMOS, qui différent entre autres par la -> qui se différencient entre
  • les PMOS pour qui s'est l'inverse -> c'est
  • "Pour la mémoire, le nombre de broches dépend du format utilisé pour la barrette de mémoire (il existe trois formats différents), ainsi que du type de mémoire" -> la remarque n'est pas fausse mais je ne comprend pas pourquoi l'avoir mise ici. C'est sûr que le bus mémoire est important mais il n'y a pas que ça qui compte dans les I/Os d'un processeur.
  • "Sur les schémas qui vont suivre, les entrées des portes logiques seront à gauche et les sorties à droite !" -> balise "Attention" plutôt que "information" ?
  • Je crois que çà mérite -> ça
  • suivant ce qu'on met sur sa grille. -> un peu "généraliste" : suivant la tension que l'on met sur sa grille ?
  • vous pouvez essayez de recréer les portes -> essayer
  • Cette fois, comme la porte ET, elle possède 2 entrées, mais une seule sortie. -> La tournure de phrase est bizarre. "Comme la porte ET, elle possède 2 entrées, ainsi qu'une seule sortie" ?
  • de la navigation des missions Appollo étaient -> Apollo
  • un circuit calculant la le bit de parité -> "la" en trop
  • à stocker, bit de parité inclut, et on -> inclus
  • Pinaillage mais au niveau des équations logiques, à la fin il faut mettre un " s0 = " ;)
  • Tableau XOR : Regle -> Règle

Il ne me reste plus qu'à relire la partie 6 sur les processeurs à parallélisme d'instruction, et le tutoriel sera validable. Les autres parties sont intégralement relues, et les éventuelles corrections sont déjà apportées. Je n'ai pas eu à apporter énormément de modifications sur les chapitres de la partie 4 et 5, contrairement à la partie 7.

+0 -0
I.4 Mémorisation
  • et les Automates de Mealy. -> automates (sans majuscules)
  • et reste dans la bascule, tan qu'on maintient -> tant
  • sorte que les entrées et le circuit combinatoire prévienne la mémoire -> préviennent
  • pour le circuit et ajouter une marge de sureté. -> sûreté
  • nos circuits à intervalles réguliers, ceux-ci utilise une tension -> utilisent
  • le premier microprocesseur avait une fréquence -> lequel ? Intel 4004 ?
I.5 Architecture d'un ordinateur
  • Dans les chapitres précédents, nous avons vus comment représenter -> vu
  • clavier attribue un nombre entier (scancode) à quand touche, -> à une touche
  • Ce bus de commande va permettre -> "Le bus" plutôt ? Pour être dans la continuité des deux lignes précédentes.
  • se souvienne à quel instruction du programme -> quelle
  • Ces ordres seront transmis via le bus. -> le bus de commande ? Ou alors phrase à supprimer vu que la phrase précédente dit la même chose.
  • est-ce que la suite de bit que je viens de lire -> bits
  • Par exemple, si on a accédée à une donnée récemment, -> accédé
  • Sur les ordinateurs basiques, La mémoire programme -> pas de majuscule à "La"

Salut la compagnie, Déjà un grand merci à l'auteur et à tout le staff, c'est du super boulot, ça faisait un bon moment que je cherchais un tuto qui expliquerai à un newbie comme moi le fonctionnement d'un ordi. :)

En tant que néophyte je trouve les explications très claires et accessibles. Juste une petite question, dans le chapitre "Il y a quoi dans un processeur?", serait-il possible de faire un parallèle entre les instructions et les cycles d'horloge quand tu explique les micro-instructions. Car il est question d'étapes, mais ces étapes durent autant de cycle qu'il y a de bits à lire/écrire/transmettre… ou un seul cycle par étape?

Encore merci et bonne continuation

Juste une petite question, dans le chapitre "Il y a quoi dans un processeur?", serait-il possible de faire un parallèle entre les instructions et les cycles d'horloge quand tu explique les micro-instructions. Car il est question d'étapes, mais ces étapes durent autant de cycle qu'il y a de bits à lire/écrire/transmettre… ou un seul cycle par étape?

Rémi

Ça dépend du processeur et de l'étape : il n'y a pas de règles simples

Certaines µinstructions font un cycle d'horloge si l'ALU ou la mémoire le permet : certains CPU ont une ALU qui effectue un calcul en un cycle, ou sont reliés à des mémoires capables de lire ou écrire une donnée en un cycle (des caches le plus souvent).

Sur d'autres processeurs, une µinstruction peut prendre plusieurs cycles d'horloge : un accès mémoire en RAM peut prendre 200 cycles d'horloge et ne représenter qu'une seule µmicroinstruction. Même chose pour certaines opérations de calcul, comme des divisions ou multiplication, qui correspondent à une seule µinstruction mais prennent plusieurs cycles. Comme autre exemple, sur les Intel Atom, les instructions de type LOAD-OP (lecture d'une opérande en mémoire + calcul + enregistrement dans les registres) correspondent à une seule µinstruction. En fait, le séquenceur attend juste sans rien faire tant que le circuit responsable de l'étape n'a pas terminé son travail :

  • soit le circuit met un temps fixe pour le faire, simplifiant la tâche du séquenceur ;
  • soit il met un temps variable, et doit prévenir le séquenceur quand il a terminé.

Mais le cas où le processeur effectue une étape par bit n'est réalisée effectivement que sur les processeurs où l'ALU est une ALU 1 bits, et cela ne vaut que pour les instructions arithmétiques.

Je vais faire la remarque dans le tutoriel. Merci pour le retour.

+1 -0

Salut Mewtow !

Tout d'abord, encore félicitations pour tout ce que t'écris, t'es totalement génial mais je ne suis même pas sûr qu'il faille encore le préciser…

Sinon au niveau des coquilles :

Encodage, traitement, décodage

  • pleins -> plein ;
  • lettre pixel -> lettre, pixel ;
  • 127éme -> 127ème voire encore mieux 127e ;
  • Même chose pour les mémoires : la tension d'alimentation de celle-ci diminue au court du temps. -> celles-ci ? ;
  • 0, et 1 -> 0 et 1 ;
  • pas une coquille mais il manque une illustration à "Codage d'un bit avec une tension" ;
  • l'usage des accents sur les majuscules est recommandé A tension d'alimentation égale -> À tension d'alimentation égale ;
  • Tout ordinateur représente ses données par des nombres -> tout ordinateur ;
  • ces nombres peuvent être codés sous en analogique, soit en numérique -> ces nombres peuvent être codés soit en analogique, soit en numérique.

Codage des nombres

  • il ne pas être représenté par l'ordinateur -> il ne peut pas être ;
  • une opération entre deux grand nombres-> une opération entre deux grands nombres ;
  • on arrondi le résultat -> on arrondit le résultat ;
  • La représentation en signe-valeur absolue -> la représentation ;
  • La représentation en complément à un -> idem ;
  • La représentation en complément à deux -> idem ;
  • La représentation par excès -> idem + point à la fin et pas point-virgule ;
  • il reste N-1 bits -> n-1 (n a été déclaré en minuscule) ;
  • son inverse l'est aussi -> son opposé, l'inverse c'est n-1 et pas -n ;
  • si le nombre à convertir est positif, on le convertit en binaire, sans rien faire de spécial. -> point virgule à la fin et pas un point ;
  • si le nombre est négatif, et 0 -> si le nombre est négatif et 0 ;
  • pas de changements avec la représentation -> pas de changement ;
  • L' addition ou soustraction d'un nombre réel fini à un de ces deux infinis, qui ne changera rien à l'infini de départ -> idem pour la majuscule/minuscule au début et le point/point-virgule en fin ;
  • Idem pour la multiplication par un nombre positif : 5×∞ aura pour résultat ∞. -> idem ;
  • La multiplication par un nombre négatif changera le signe de l'infini. Par exemple, −5×∞ aura pour résultat −∞. -> uniquement pour la majuscule ne minuscule ;
  • Malgré son nom explicite, on peut faire des opérations avec NAN, mais cela ne sert pas vraiment à grand chose : une opération arithmétique appliquée avec un NAN aura un résultat toujours égal à NAN. -> NaN

Traitements et calculs

  • A titre d'exercice -> À titre d'exercice ;
  • La porte OU possède 2 entrées, ainsi qu'une seule sortie -> il manque le point ;
  • On remarque que sa sortie est à 1 quand les deux bits placés sur ses entrées sont différents, et valent 0 sinon -> et vaut 0 sinon ;
  • On remarque que sa sortie est à 1 quand les deux bits placés sur ses entrées sont différents, et valent 0 sinon -> On remarque que sa sortie est à 1 quand les deux bits placés sur ses entrées sont identiques, et vaut 0 sinon ;
  • bit de parité inclut -> bit de parité inclus ;
  • L'équation logique de cette ligne sera donc : $\overline{e_2}..e_1\overline{e_0}$. -> un point est mal placé : $\overline{e_2}.e_1.\overline{e_0}$
  • Cela donne : $(e_2.e_1.\overline{e_0})+(\overline{e_2}.e_1.e_0)$ -> il manque le point ;
  • Puissances de deux -> titre ?
  • En premier lieu, on va appliquer la règle de distributivité du Et sur le OU -> du ET sur le OU ;
  • Exemple de regroupement invalide dans un tableau de Karnaugh -> Exemple de regroupements invalides dans un tableau de Karnaugh ;
  • Exemple de regroupement invalide dans un tableau de Karnaugh -> titre ? ;
  • En soit rien de bien grave -> En soi ;
  • Donc, l'équation est $\overline{a}$. -> math inline ;
  • une entrée sur laquelle on envoie un nombre de n bits, et 2^{n} sorties -> une entrée sur laquelle on envoie un nombre de n bits et $2^{n}$ sorties ;
  • la sortie de notre contrôleur qui sera mise à 1 sera différente pour deux nombres différents placées sur son entrée. -> deux nombres placés ;
  • nos sorties sont numérotées de 0 à 2^{N} - 1 -> $2^N - 1$ ;
  • c'est à dire si la sorite du décodeur est à 1 -> sortie ;
  • L'entrée, doit alors -> L'entrée doit alors ;
  • on peut créer un circuit en créant une table de vérité, et en appliquant -> on peut créer un circuit en créant une table de vérité et en appliquant

Remarque

Pour noter les opérateurs logiques, tu utilises la notation math qui est écrite en italique. Donc quand tu écris a $XOR$ b, le b est vraiment collé au nom de l'opérateur, ce qui n'est pas très propre. Pourquoi ne pas le mettre en gras totu simplement ou alors en math + \text $\text{XOR}$.

De plus, si tu traduis les opérateurs (NOT en NON, AND en ET, OR en OU), ça fait un peu bizarre de laisser XOR, non ?

J'éditerai le message plus tard, en lisant la suite. :)

+1 -0

Suite :

Mémorisation

  • ne dépend que de l'entrée, et pas de ce qui s'est passé auparavant -> pas de virgule devant le et ;
  • ils peuvent mémoriser des informations, et peuvent les utiliser -> idem ;
  • les utiliser pour déterminer quoi mettre sur leurs sorties -> que mettre ?
  • Aussi bien l'état du circuit que les valeurs présentes sur ses entrées, vont déterminer sa sortie -> pas de virgule ;
  • change d'état de tel ou tel façon -> telle ou telle façon ;
  • une ou plusieurs mémoires qui stockent l'état de notre circuit, et un ou plusieurs circuits combinatoires chargés de mettre à jour l'état du circuit, et éventuellement sa sortie -> idem, pas de virgule avant et (et peut-être mettre et éventuellement sa sortie entre parenthèses ?) ;
  • tout ce que vous avez à faire est de lister tous les états possibles, et quelles sont les transitions possibles -> tout ce que vous avez à faire est de lister tous les états et les transitions possibles ? ;
  • on représente les états possibles du circuit par des cercles, et les transitions possibles par des flèches -> idem pour la virgule ;
  • Pour mettre à jour l'état, on place un circuit combinatoire qui va prendre les entrées du circuit, ainsi que l'état actuel du circuit (fourni sur la sortie), et qui déduira le nouvel état, les nouvelles données à mémoriser. -> idem pour les virgules avant et et ainsi que ;
  • On a vu plus haut que la logique séquentielle se base sur des circuits combinatoires, auxquels on a ajouté des mémoires -> idem pour la virgule avant auxquels ;
  • Celles-ci sont des bascules qui comportent deux entrées R et S, et une sortie Q, sur laquelle on peut lire le bit stocké. -> pas de virgules ;
  • Pour vous rappeler de ceci, sachez que les entrées de la bascule ne sont nommées ainsi par hasard : R signifie Reset (qui signifie mise à zéro en anglais), et S signifie Set (qui veut dire Mise à un en anglais). -> pourquoi adapter la traduction de Reset en zéro et ne pas adapter Set en un ? Ou alors si tu veux garder Set en Mise, peut-être adapter Reset en Remise/Réinitialisation ? ;
  • En utilisant des portes NAND, le circuit change un peu. Celles-ci sont des bascules qui comportent deux entrées $\overline R$ et $\overline S$, et une sortie Q, sur laquelle on peut lire le bit stocké. -> pareil que plus haut pour les virgules ;
  • Dans ces conditions, on peut faire en sorte de créer une bascule qu'on pourrait "activer" ou "éteindre" les entrées R et S à volonté -> où l'on pourrait activer/desactiver? ;
  • Ce temps mit par le circuit -> mis ;
  • pour propager un changement sur les entrées sur sa sortie -> vers sa sortie ? ;
  • Il va de soit -> il va de soi ;
  • des montages à portes logiques un peu particuliers, qu'on n'abordera pas ici -> pas de virgule ;
  • avec un cerveau en parfait état de marche, et beaucoup de temps devant vous -> avec un cerveau en parfait état de marche et beaucoup de temps devant vous ;

Architecture d'un ordinateur

  • Tous les circuits vus précédemment sont des circuits qui se chargent de traiter des données, codées en binaire -> Tous les circuits vus précédemment sont des circuits qui se chargent de traiter des données codées en binaire ;
  • Son rôle est donc de retenir que des données -> Son rôle est donc de retenir des données ;
  • Toute machine traitant de l'information est donc composée par -> composée de ;
  • une unité de traitement, qui vont manipuler -> qui va ;
  • Ce processeur est conçu pour dérouler exécuter une suite ->le mot dérouler est un reste d'une ancienne phrase ? ;
  • ajoutant la longueur de l'instruction chargée (le nombre de case mémoire qu'elle occupe) au contenu du Program Counter -> manque le point final ;
  • et enfin, de quoi faire communiquer le tout : un Bus -> pourquoi mettre une majuscule à bus ? ;
  • et tous les systèmes embarqués en général. -> peut-être expliquer ce qu'est un système embarqué en quelques mots ;
  • Je tiens à signaler que j'ai écris -> écrit ;
  • le programme à exécuter est chargé depuis une mémoire de masse, et est copié en mémoire principale -> pas de virgule avant et ;
  • A la place de mémoire cache, on utilise à la place ce qu'on appelle un Local Store -> À la place d'une mémoire cache, on utilise ce qu'on appelle un Local Store ;
  • Ainsi, rien n’empêche le programmeur -> rien n'empêche au programmeur ;
  • elles doivent avoir une capacité énorme comparé aux autres -> comparées.

Remarque

Des fois, tu utilises la police math $$ pour noter les opérateurs logiques, les entrées/sorties des portes, etc. et des fois pas. Il serait peut-être judicieux de trouver une convention et de s'y tenir, non ?

+0 -0

Pour vous rappeler de ceci, sachez que les entrées de la bascule ne sont nommées ainsi par hasard : R signifie Reset (qui signifie mise à zéro en anglais), et S signifie Set (qui veut dire Mise à un en anglais). -> pourquoi adapter la traduction de Reset en zéro et ne pas adapter Set en un ? Ou alors si tu veux garder Set en Mise, peut-être adapter Reset en Remise/Réinitialisation ? ;

poupou9779

Traduire en "zéro"/"un" risque de porter à confusion avec les valeurs des bits envoyés sur les entrées. A la rigueur, je pourrais traduire par Mise à 0/1, mais je devrais refaire tous les schémas, et vérifier la cohérence avec la terminologie des chapitres ultérieurs. Autant dire que je préfère garder Reste et Set.

Des fois, tu utilises la police math $$ pour noter les opérateurs logiques, les entrées/sorties des portes, etc. et des fois pas. Il serait peut-être judicieux de trouver une convention et de s'y tenir, non ?

poupou9779

C'est sans doute à cause du script de migration du tutoriel depuis OC. Je vais tenter de corriger cela rapidement.

+1 -0

Traduire en "zéro"/"un" risque de porter à confusion avec les valeurs des bits envoyés sur les entrées. A la rigueur, je pourrais traduire par Mise à 0/1, mais je devrais refaire tous les schémas, et vérifier la cohérence avec la terminologie des chapitres ultérieurs. Autant dire que je préfère garder Reste et Set.

Soµ.L-[T@_K3r]

En relisant, j'ai vu que tu avais mis mise à zéro or je n'avais lu que zéro. Donc my bad, tout me semble bien là-dessus. :)

+0 -0
Ce sujet est verrouillé.