Besoin d'aide en Informatique ! :)

Statut
N'est pas ouverte pour d'autres réponses.

AlexTheGeek

Geekeur Youtube & Minecraft
17 Mars 2015
58
0
16
24
Tout est dans le titre !
J'aimerais m'améliorer en informatique (Niveau config)
Je connais les "bases" mais j'aimerais en savoir plus afin de pouvoir juger de moi meme les config de PCs !
Je resume ce que je connais :
- Processeur : Moteur de la machine, vitesse calculée en Ghz plus y en a mieux c'est !
- RAM : Euh...? On passe !
- Disque dur : Stockage, mieux tu en as, mieux c'est
-Carte graphique : Moteur graphique
- Ecran : Plus t'as de pouce plus c'est grand
Et voila je crois avoir fait le tour !
Merci de m'aider :)
 
Ca m'as l'air intéressant tout ca.. Pour l’écran plus tu as de pixels mieux c'est de même pour la résolution.
 
Pour le proco, la fréquence ne fait pas tout, il y a aussi le nombre de cœurs et l'architecture. Pour ce qui est de la RAM, c'est une mémoire très réactive qui stocke momentanément (elle est vidée à chaque redémarrage) les données nécessaires aux programmes et à l'OS pour fonctionner (si un programme affiche une image à l'écran, par exemple, il devra la charger en RAM)
 
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.
 
Salutations !
C'est très très très bien, un aperçu rapide mais complet sans tomber dans des approximations douteuses. C'est une excellente synthèse dont bien peu seraient capable (et sûrement pas moi :D).

Simplement :
Bien qu'avoir 8 threads sur 4 coeurs fonctionnera, le gain en performances est nul, voir négatif
Pas forcément ; contre exemple de l'hyperthreading. Si on prend l'exemple d'un quadcore hyperthreadé pour un total de 8 cores virtuels, certes, dans les utilisations courantes, ça sert à pas grand chose : quand la moitié des cœurs travaille, l'autre moitié se branle la nouille. Mais dans certains cas c'est autrement différent. En encodage vidéo, il n'est pas rare de voir une moyenne à 70 ou 80% d'utilisation cpu, ce qui veut dire que l'hyperthreading a apporté un gain de performances non négligeable. Mais ce n'est pas tout. Par exemple, le moteur de rendu VRay procède en divisant l'image en sous ensembles de pixels indépendants, avec un ensemble par cœur virtuel. Et là c'est incroyable, parce que ça affiche une charge CPU à 100%, ce qui veut dire que l'hyperthreading a carrément doublé la puissance de calcul initiale. Ça devient carrément intéressant.

Au niveau des SSD, je ne crois pas que c'était mentionné, mais ça consomme beaucoup moins qu'un disque rotatif (et donc ça chauffe moins aussi).

Sinon le code informatique fait pas forcément RAM<->L1 puisque sinon les caches de niveau L2 (ou L3 le cas échant) ne serviraient pas à grand chose.

Pour la RAM, tu n'as pas parlé du dual-channel ou des fonctionnalités plus exclusives, comme l'ECC, le bit de parité ou l'autocorrection, etc. Ça aurait aussi été l'occasion d'expliquer pourquoi le swap c'est mal. :p

Dernier point (mas discutable), ARM c'est pas vraiment une architecture. C'est plus un ensemble d'architectures (et encore...). L'architecture derrière tout ça c'est plus RISC il me semble. Enfin au moins pour la plupart des ARM.

Puis un byte c'est pas vraiment un octet. C'est juste tellement courant aujourd'hui qu'on a collé byte avec octet, mais c'est pas hyper rigoureux.

Ah je viens de relire, encore autre chose : certains écrans à LED ne sont pas du tout des LCD, puisqu'il n'y a pas de cristaux liquides. Les LEDs forment directement les pixels de l'écran, et ne rétroéclairent pas un "filtre" ; c'est le cas du OLED il me semble (pas pour le coup pas sûr, tellement de marketing sur ces segments...)
 
Je crois pas que lancer deux fois plus de threads par coeur est vraiment le principe de l'HT, non? De toute façon, l'HT descend parfois en performance dans certains domaines (jeux).

Effectivement j'ai oublié de mentionner ça, j'ajoute.

En fait je connais pas grand chose dans la RAM, je sais de quoi tu parles mais je saurais pas l'expliquer correctement. M'enfin je vais essayer quand même.

Ah, là j'apprends un truc et wikipedia te donne raison. En revanche ils parlent bien d'architecture ARM? https://fr.wikipedia.org/wiki/Architecture_ARM
ARM est juste basé sur RISC peut être? Ou c'est bien une erreur?

Bon, là, j'apprends également un truc et tu as pleinement raison. En revanche, ça fait déjà longtemps qu'un byte, du moins en informatique, correspond à un octet pile. Je vais y noter quand même

Troisième là encore, tu as raison, je vais modifier un peu ^^
 
En effet, l'hyperthreading ne consiste pas directement à lancer plus de threads par coeur au sens strict. Ça consiste a donner au processeur la possibilité d'en gérer deux fois plus, en très gros, je saurais pas bien le synthétiser...

Pour ARM, je vois ça, et je ne sais pas trop quoi te dire. Parce que dans la DS de Nintendo y'a un ARM, mais c'est tellement différent d'un processeur ARM de téléphone... C'est peu être une philosophie d'architecture, même si au final tout se finit en RISC...
 
Bon, j'ai parlé à un ingénieur en embedded,et en fait, ARM n'est pas vraiment une architecture.
En revanche, ARM7, ARM9, ça se sont des architectures.
RISC est quand à lui une microarchitecture, sur laquelle se base CISC (en fait CISC est une synthèse de plusieurs RISC) utilisée dans les archis ARM 7 et 9 entre autres.

EDIT:
À relire c'est pas clair du tout, en fait l'ARM7 et l'ARM9 sont des processeurs à l'architecture spécifique éponyme mais dont les changements au niveau du set d'instructions sont faibles. C'est pourquoi on regroupe tous les processeurs proches dans la famille des archis ARM, même s'ils n'ont pas exactement la même architecture interne.
 
Statut
N'est pas ouverte pour d'autres réponses.