Je suis un nerd informatique depuis de nombreuses années. Je peux programmer dans pas mal de langues et je peux même les construire. L'autre jour, je me suis assis avec un copain et je lui ai demandé comment un ordinateur prend de l'électricité et en fait quelque chose, mais nous ne pouvions tout simplement pas le savoir et Google ne nous a pas beaucoup aidé.
Je veux dire, comment un ordinateur prend-il un flux constant d’électricité et le transforme-t-il en 1 et en 0 puis fait quelque chose avec ces 1 et 0 comme allumer une lumière pendant 15 secondes?
Je comprends les portes (AND, OR, NOR, NAND, NOT) et un peu sur les diodes , les résistances et les transistors , mais j’ai pensé que ce serait l’endroit idéal pour l’expliquer en termes simples!
Quelqu'un peut-il m'indiquer dans la bonne direction ou me donner une brève explication?
Réponses:
C'est une vaste question à laquelle il n'est pas facile de répondre. le chemin parcouru par les électrons sur des fils de cuivre est très loin du rendu d’un site Web dans Firefox. Je vais essayer de vous donner un aperçu de bas en haut et de vous indiquer les bonnes choses à regarder.
Chiffres d'encodage
La motivation de base est de calculer des choses, comme en arithmétique¹. La première chose à regarder est de savoir comment représenter les nombres. Il y a eu beaucoup d'approches, utilisant des systèmes décimaux ou ternaires et même des systèmes octaux, mais finalement, le binaire l'emporte. Nous savons maintenant que nous devons construire des périphériques qui traitent deux valeurs - appelons-les et 1 .0 1
Notez qu'il existe également plusieurs façons de coder des nombres en binaire. Après avoir construit votre premier processeur, vous réalisez les avantages de certaines choses. Des exemples populaires sont les flottants à double complément et IEEE . Pour commencer, limitez-vous aux nombres naturels.
portes
Supposons que nous utilisions un encodage binaire. Pensez à la façon dont vous avez appris à ajouter au primaire et notez la même chose pour les nombres binaires. Les éléments constitutifs de l’algèbre booléenne sont déjà là pour vous; il est facile de construire un additionneur de base (et d'autres fonctions arithmétiques) à l'aide de portes logiques .
Comment construire de telles portes n'entre pas dans le cadre de l'informatique; ingénierie électrique a fourni de multiples solutions utilisant par exemple des tubes ou des transistors . Rendez-vous sur Stack Exchange pour le génie électrique pour des questions à ce sujet.
Horloge et état
Toutes les portes ne sont pas également rapides et toutes les parties d'un calcul n'ont pas le même nombre de portes. Par conséquent, nous devons faire très attention à ce que les opérations individuelles ne se dépassent pas. Il s'est avéré utile d'utiliser une horloge globale ; le résultat d'un réseau de portes donné est l'état des fils de sortie à la fin du cycle (qui peut changer énormément pendant que les portes se mettent en cascade vers leurs états finaux individuels).
Cela signifie que les résultats d'un cycle peuvent devoir être enregistrés jusqu'au début du cycle suivant, par exemple si vous câblez des boucles. Il existe un certain nombre d'éléments de base que vous pouvez utiliser pour obtenir des effets variables, tous créés à partir de portes; certains s'appellent des tongs . Ceux-ci sont également utilisés pour construire des registres , des éléments qui stockent des nombres pour autant de cycles d'horloge que nécessaire.
Architecture et commandes
Vous avez maintenant une multitude de choix de conception à faire. Quelles opérations arithmétiques votre processeur fournit-il? À quoi ressemblent vos commandes? Il peut être instructif de regarder l’ architecture MIPS dont les premières formes sont faciles à comparer aux autres conceptions. Regardez les plans :
Original de http://ube.ege.edu.tr/~erciyes/CENG311
Il s'agit essentiellement d'extraire et de désassembler des commandes, un ensemble de registres, un ALU et un contrôle. Les commandes indiquent quelle opération ALU exécuter sur quels opérandes (par le numéro du registre dans lequel ils sont tenus), comment manipuler le compteur de programme² ou lequel enregistrer pour charger / stocker de / vers la mémoire³.
Considérations supplémentaires
Vous avez maintenant un processeur fonctionnel au sens moderne du terme, en supposant que vous ayez compris comment créer une mémoire et un moyen de l’alimenter par des commandes. En route vers une machine moderne, de nombreux choix doivent être faits. Voilà quelque:
Des alternatives
Ce qui précède est fortement influencé par l'évolution de l'histoire. Dans un monde différent avec des esprits différents, les ordinateurs peuvent fonctionner différemment. En fait, il existe de nombreux modèles de calcul , dont certains présentent des avantages qui les rendent utiles comme abstraction pour de vraies machines dans de nombreux cas. Il existe également des tentatives pour imiter le fonctionnement de notre cerveau, c'est-à-dire permettre l'informatique neuronale , ou plus généralement exploiter les stratégies de résolution de problèmes et de stockage d'informations observées dans la nature , notamment l' ADN et l' informatique quantique .
Alors peut-être (espérons-le?) Les informations ci-dessus représentent toute l'histoire ancienne dans 50 ou 100 ans.
la source
Le tableau complet est assez compliqué. De nombreuses couches superposées implémentent collectivement des abstractions de haut niveau au-dessus de tensions électriques. Il n’existe aucune explication simple sur la façon dont tout est mis en place, d’autant plus que le matériel informatique et les logiciels ont considérablement évolué au cours des cinquante dernières années.
Si vous souhaitez voir comment tout est mis en place, vous pouvez consulter le livre intitulé Elements of Computing Systems , un ouvrage qui commence par les portes NAND et construit progressivement une implémentation fonctionnelle de Tetris sur un compilateur et un système d'exploitation vous construisez aussi. Chaque pièce de l'ordinateur est construite sur la précédente, ce qui peut vous aider à voir comment tout fonctionne.
la source
Le podcast Sécurité maintenant! fait une série sur le fonctionnement des ordinateurs, en commençant par les principes de base.
Les lacunes dans les chiffres sont dues au fait que chaque épisode est un épisode de commentaires d'auditeur, vous pouvez donc également les regarder. De plus, entre 241 et 247, ils ont fait quelques épisodes sur SSL en raison des dernières nouvelles sur les pays qui obligeaient les autorités de certification à leur fournir des certificats racine.
Aussi EP. 248 est le "Portable Dog Killer" qui ne tue pas les chiens, mais une arme à faisceau sonique que Steve a fabriquée tout seul pour aider un chien voisin à apprendre à ne pas courir jusqu'au bord de la clôture et à tenter d'attaquer des personnes sur le trottoir .
la source
Un ordinateur fonctionne en manipulant les gradients d'énergie (que nous interprétons ensuite comme des 1 et des 0) de manière cohérente et définie . C'est la cohérence qui définit un ordinateur, tandis que c'est la définition qui sépare les différents processeurs.
Découvrez également à quel point deux portes logiques (OU et ET) suffisent pour créer un ordinateur polyvalent. Voir aussi Danny Hillis et l'ordinateur Tinkertoy.
la source
Un ordinateur est un grand système logique synchrone , ce qui signifie que
Il dispose de circuits spécialisés pour conserver les informations tant que l'ordinateur est alimenté (RAM, en très grande quantité). Il dispose de circuits spécialisés pour effectuer une arithmétique binaire (en réalité, les bits sont traités par groupes, généralement par multiples de 8, qui représentent collectivement un nombre entier). Et il dispose de capacités de routage spécialisées basées sur des adresses de mémoire, qui ne sont que des entiers.
Enfin et surtout, un ordinateur moderne contient également un programme stocké dans la RAM, qui contient une liste d'instructions codées sous forme d'entiers, qui sont exécutées de manière séquentielle. Elles récupèrent généralement des données dans la mémoire, effectuent des opérations arithmétiques et renvoient les résultats en mémoire.
Dans votre scénario, on pourrait penser à une implémentation où le temps écoulé est stocké quelque part dans la RAM et où le programme demande à
Notez que tous ces éléments atteignent aujourd'hui un degré élevé de sophistication, et chaque phrase de ce très bref aperçu mérite plusieurs cahiers d'explications.
la source
Il existe plusieurs façons d’effectuer une fonction de délai ou de convertir les données binaires en données décimales ou en puissance du signal. Lorsque vous entrez la valeur "15", l’ordinateur affiche une image bitmap du nombre 15 à l’écran. C'est en fait la valeur binaire, à l'heure actuelle, le code binaire de votre clavier est également envoyé à l'unité centrale de traitement. Il analysera les données, puis retournera le code en unité de traitement ALU (unité arithmétique et logique) pour le convertir en impulsion sur puce DAC. Le signal analogique contrôle maintenant la fréquence (la fréquence de khz à hz) d’un circuit à bascule. Maintenant, la sortie de fréquence sera dirigée vers la RAM, et la RAM de lecture du processeur sera identique si les données sont "1111". Donc ça fait 4 secondes.
la source