Pour commencer
Un bit est simplement un chiffre qui soit est 0, soit est 1.
Un octet est une suite de 8 bits.
Attention, un byte ne correspond pas forcément à un octet, notamment dans le domaine des télécommunications et de l'informatique d'avant ~1970.
On peut calculer ce que peut contenir un octet de cette manière (^ est le symbole de puissance) :
base ^ n
base : On est en binaire. Il y a deux possibilités, donc on est en base
2. Le système décimal est en base
10.
n : C'est le nombre de bits auquel on aura à faire - Ici,
8 bits.
2 ^ 8 = 256
Puisque '0' est un nombre à part entière, un entier dit "non-signé" (c'est à dire qu'il ne peut pas contenir de valeur négative) peut être de 0 à 255.
Calculons maintenant pour 4 octets :
2 ^ (8 * 4) = 2 ^ 32 = 4 294 967 296
Cette valeur veut également dire quelque chose : C'est la limite théorique de mémoire vive que l'on peut allouer à une application en 32-bits, soit près de 4 gigaoctets. C'est pour ça qu'on a crée le 64-bit.
2 ^ (8 * 8) = 2 ^ 64 = 18 446 744 073 709 551 616
On ne va pas atteindre une telle limite de sitôt!
Pour rappel :
1 octet = 8 bits
1 kilooctet (Ko) = 1000 octets
1 mégaoctet (Mo) = 1000 Ko
1 gigaoctet (Go) = 1000 Mo
1 téraoctet (To) = 1000 Go
1 pétaoctet (Po) = 1000 To
Bref, le 64-bits nous laisse théoriquement utiliser 18 446 pétaoctets - On a de la marge, sachant que 32Go de RAM est déjà énorme pour un ordinateur normal.
I / Le processeur
Un processeur suit des instructions à la chaîne et dispose d'une mémoire extrêmement rapide pour chaque coeur (L1, qui contient les instructions à exécuter et des données récemment utilisées par le processeur, et le cache L2) et une plus lente (en général deux fois plus lente) pour le processeur entier, le cache L3 (qui autrefois n'était pas dans le processeur mais sur la carte mère).
Il existe plusieurs architectures différentes : x86/64 (celui qui se trouve certainement dans le processeur de ton ordi actuellement), PowerPC (si tu as un mac d'avant 2006, une gamecube/wii/wii u, tu as une machine qui tourne sur un PPC), et de la famille des ARM (si tu as un smartphone/tablette, il est très sûrement en ARM - ARM n'est pas une architecture à proprement parler, plutôt une famille d'architectures, comme ARMv7, ...).
Si tu lance du code conçu pour ARM sur un PowerPC, ça ne fonctionnera pas. De même si tu lances du code PPC sur x86, etc. - Bref, chaque architecture a son propre binaire, et du coup, son propre assembleur (
qui est le langage le plus proche du binaire lui même qui est une représentation plus simple du binaire). En revanche, les seules différences entre x86 et x64 étant banales, il est possible de démarrer du code x86 sur un processeur x64 (donc, des programmes en 32-bit sur un processeur 64-bit), mais l'inverse n'est pas vrai.
Depuis quelques temps déjà, les processeurs commencent à avoir plusieurs cœurs, ce qui veut dire qu'on peut lancer 4 "threads" qui fonctionneront (si le système d'exploitation en choisit ainsi) sur 4 coeurs différents du processeur. Bien qu'avoir 8 threads sur 4 coeurs fonctionnera, le gain en performances est nul, voir négatif puisqu'il faut compter quelques instructions pour que le noyau (kernel, qui soit Linux (pour les distributions Linux bien sûr), Darwin sur OSX (Linux et Darwin ont beaucoup en commun car ils partent du fonctionnement d'Unix) et Windows NT sur Windows post-98 (excepté Me), etc.). Le principe d'hyperthreading, pourtant, ce rapproche de ce concept mais l'améliore de manière à obtenir des gains dans certaines situations, bien que dans certaines conditions, il peut se rendre néfaste. Encore beaucoup d'applications aujourd'hui n'utilisent quasiment qu'un seul thread.
Bref - Avoir plus de coeurs c'est bien, encore faut-il avoir les logiciels qui le gèrent.
En revanche, AMD n'utilise pas l'architecture x86 à proprement parler, mais plutôt simplement son jeu d'instructions - c'est à dire que les programmes x86 fonctionneront normalement, bien que le fonctionnement interne soit différent. Celui-ci étant bien moins efficace que celui d'Intel, il y a besoin de toujours plus de Ghz -
Car les Ghz correspondent au nombre de calculs par seconde et non pas le nombre d'instructions par seconde.
De même, une instruction ne va pas nécessiter autant de calculs qu'une autre. Un Pentium 4 à 3.8Ghz (ou quelque chose de similaire) ne va pas battre un core M à 1.1Ghz.
C'est pour ça qu'il ne faut jamais faire confiance aux Ghz. Il faut plutôt voir des benchmark en conditions réelles.
Il y a peut être quelques erreurs sur ce passage, mais ça résume plutôt bien.
II / La RAM
C'est une mémoire volatile : C'est à dire que lorsque l'on ne lui donne plus de courant, elle s'efface. En revanche, un disque dur (avec des pièces mécaniques) ou un SSD (sans pièces mécaniques) ne va pas perdre ses données quand il n'est plus alimenté.
Elle a une autre particularité : Elle est très rapide (moins que les caches du processeur).
Lorsque l'on lance un programme, celui-ci place ses variables (par exemple, des nombres, des listes, ...) dans la RAM. Le code exécutable passe aussi par la RAM avant d'arriver dans le cache.
Il existe plusieurs technologies, généralement peu utilisées dans le domaine public, pour améliorer leur fiabilité ou leur performance :
- Le dual channel : Celui-ci est le plus commun de tous et est sûrement déjà utilisé dans votre machine. Il permet de doubler la bande passante de la mémoire, bien que le gain est souvent faible.
- L'ECC : Plus destinée dans le domaine des serveurs, où une haute fiabilité est requise en permanence, l'ECC utilise une puce supplémentaire pour éviter la corruption de la mémoire et de provoquer des plantages.
- Le bit de parité : C'est un concept très simple qui permet de considérablement réduire le risque d'erreurs dans une transmission. Il est égal à 1 quand la somme des autres bits est impaire.
Ici, la fréquence est plus importante, contrairement au processeur. Il faut aussi regarder le type de RAM : La DDR3 est plus efficace que la DDR2.
Avoir plus de mémoire vive peut parfois être bénéfique quand l'OS se sert de la mémoire disponible comme d'un cache, mais sacrifier le processeur au profit de plus de RAM est mauvais si son utilisation n'en requiert pas autant.
En revanche, s'il arrive que la RAM soit presque totalement utilisée, l'OS va utilise une mémoire virtuelle sur le disque, dite "swap", qui est extrêmement lente comparée à la RAM mais qui permettra aux programmes de ne pas planter par manque de RAM.
III / Le disque dur
C'est une mémoire non volatile : Même sans courant, elle ne perdra pas ce qu'elle contient.
Il y a deux grandes catégories de disque :
- Le disque dur - Il fonctionne à partir de pièces mécaniques. De ce fait il est très fragile, il ne faut surtout pas le laisser tomber, même d'une dizaine de centimètres, auquel cas on peut perdre des données. Ici, un disque plus rapide sera surtout caractérisé par le nombre de rotations par minute (en général, tu trouveras du 5800rpm et du 7600tpm, si je m'embrouilles pas dans les chiffres). Celui-ci a un temps d'accès assez long, près de 15~20ms, ce qui peut paraître peu mais qui est beaucoup dans pas mais qui peut s'avérer assez gros, surtout en cas de fragmentation - c'est à dire quand un fichier se trouve à plusieurs endroits du disque dur, et qu'il faut aller chercher chacune de ses parties pour le lire avec la tête de lecture, qui ne se déplace pas instantanément (la défragmentation réduit énormément ce soucis. De même le système de fichier ext3/ext4 utilisé par Linux a tendance à réduire drastiquement la fragmentation).
- Le SSD (Solid State Drive) - Il fonctionne entièrement d'électronique, ce qui réduit considérablement l'énergie nécessaire et ainsi la chaleur produite. Il est beaucoup plus solide et ne devrait pas trop réagir aux chocs (sauf si tu le lances contre un mur évidemment, et encore), mais a une durée de vie bien plus limitée que les disques dur pour le moment : C'est pour ça qu'il faut mieux avoir l'OS et quelques programmes sur un petit SSD (J'en ai un de 128Go, sur lequel j'ai à la fois Linux et Windows et il me reste 30% d'espace libre) et les gros jeux et données sur un HDD, ce qui est à la fois plus économique et durable. Ici, il faut plus se fier aux benchmark qu'à autre chose. En revanche - Il ne faut PAS défragmenter un SSD, car cela réduira la durée de vie du SSD, et son temps d'accès étant presque nul, cela ne servira littéralement à rien.
Dans les deux cas, il a un coût au Go beaucoup, BEAUCOUP plus faible que la RAM, leur fonctionnement et leur utilité étant très distincts.
A l'époque, ils fonctionnaient en IDE. Le SATA s'est démocratisé par la suite, et presque tous les disques fonctionnent en SATA en ce moment. Il a l'avantage d'être immensément plus rapide tout en ayant un câble littéralement 4x plus petite qu'une nappe IDE (tu as déjà vu un vieil ordinateur avec de grandes nappes blanches? Eh bien c'est ça)
IV / La puce graphique
Elle se rapproche assez d'un processeur banal - Sauf qu'au lieu d'avoir quelques cœurs, celle-ci dispose d'un énorme nombre de cœurs peu performants. De même, elle est adaptée pour les calculs de float (nombres à virgules flottantes), ce qui la rend excellente pour les calculs graphiques.
Là encore, il faut mieux se fier à des benchmark en jeu (qui n'est pas "encouragé" par AMD ou Nvidia) qu'à autre chose.
V / L'écran
Les écrans actuels sont des LCD (écrans à cristaux liquides). Les écrans à LED se sont de plus en plus démocratisés récemment, mais ce sont parfois bien des LCD : C'est juste l'éclairage des cristaux qui changent - On utilise des diodes plutôt que des néons, ce qui donnent un meilleur contraste et un rendu plus uniforme. Il existe également la technologie OLED concurrente qui, malgré un coût plus élevé, donne un excellent contraste et peut être utilisé dans des écrans incurvés voir pliables.
Du coup, la plupart des écrans se ressemblent quand au fonctionnement maintenant. La première chose à voir, c'est la résolution. Un écran 1080p est beaucoup plus confortable qu'en 720p dans une pléthore de situations (je hais coder en 1366*768, car on a une trop petite vue sur l'ensemble), si l'écran est suffisamment grand.
La deuxième chose la plus importante à voir, ce sont les ppp (pixels par pouce). Pour les retrouver, il suffit de faire ce calcul :
(longueur_résolution * largeur_résolution) / (longueur_pouces * largeur_pouces).
(
/ étant le symbole diviser, évidemment)
Le 4K commence à s'instaurer, mais celui-ci reste à mon goût trop cher (>500€ pour des écrans potables, il faut la carte graphique qui fasse tourner correctement avec - pas comme les imac qui ont un chipset pourri avec un écran 4K, surtout pour son utilisation. Le jeu en 4K est impossible sur du milieu de gamme voir le début du haut de gamme).
Apple a trouvé le moyen de faire croire que la 5K est utile également - Mais l’œil ne va pas différencier du 4K de la 5K, c'est simplement du placebo.
Conclusion : benchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmarkbenchmark
Edit : J'épingle car je pense que ça servira à plus d'un. Du coup essayez de garder le topic propre au passage.