Fonctionnement multi-cœur
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Fonctionnement multi-cœur



  1. #1
    invitefa0c54f0

    Fonctionnement multi-cœur


    ------

    Bonjour,

    Je souhaiterais savoir comment on implémente plusieurs cœurs dans un même CPU. Si on se réfère à cette architecture, je ne vois pas comment il est possible de l'implementer !
    D'autre part, comment le système d'exploitation "voit" il les processeurs multi-cœurs : comme plusieurs processeurs mono-cœur, ou bien ne fait-il pas la différence ?
    Merci d'avance pour vos réponses

    -----

  2. #2
    invite7a39c3be

    Re : Fonctionnement multi-cœur

    Parce que c'est bien plus complexe que ça, il y a déjà des pipelines en plus et ... enfin vraiment beaucoup de chose en plus.
    En gros tu as un système de répartition des taches. Et l'OS connais comment contrôler le répartiteur de taches et il voit plusieurs processeur, tu n'as jamais vu ? rien quand faisant un ctrl+alt+del sur Windows et en ouvrant le gestionnaire des taches on voit plusieurs courbes.

  3. #3
    invitefa0c54f0

    Re : Fonctionnement multi-cœur

    Oui, mais comment repartir les tâches sur chaque cœur ? Je ne vois aucune instruction et/ou artifice le mettant en jeu en ASM ou en C !

  4. #4
    invite7a39c3be

    Re : Fonctionnement multi-cœur

    Quel assembleur ?! Chaque processeur a son propre langage assembleur, donc oui il y a des instructions qui "redirige" les calcules pour des processeurs qui ont plusieurs cœurs.

    En C ? C'est normal car c'est ton OS qui gère l'utilisation de cœurs, ton programme en C est compilé pour et tourne sur ton OS.

  5. A voir en vidéo sur Futura
  6. #5
    invitefa0c54f0

    Re : Fonctionnement multi-cœur

    Quand je parlais du C, je ne parlais pas des programmes mais de l'OS (puisqu'en majorité écrit en C).

    Ensuite, quelle sont les "instructions qui redirigent les calculs" pour les CPUs multi cœur ?

  7. #6
    invite7a39c3be

    Re : Fonctionnement multi-cœur

    Non c'est pas que du C en tout cas pas Windows, Linux par contre c'est bien possible que oui. Mais même, ça ne change rien, c'est le compilateur et les libraires qui te donnes les fonctions pour ça.

    Les instructions je ne les connais pas, de toute façon elles demande des connaissances extrêmement étendue dans le domaine et faut connaitre le processeur.
    Tiens si tu veux vraiment savoir je t’aiguille un peu : http://www.intel.com/content/www/us/...Resources.html

  8. #7
    invitefa0c54f0

    Re : Fonctionnement multi-cœur

    Certes, un OS, ce n'est pas que du C… par contre, lorsque tu créés un système, le compile ne te donne aucune fonction (tu peux toujours te gratter pour avoir OpenMP) ! C'était un peu ma question… savoir comment repérer les cores/threads, et comment "dispatcher" (lorsqu'on est l'OS) les processus sur ces threads (sur un single core, l'OS alloue un temps défini à chaque programme, alors que, si je ne me trompe, le principe d'un multi core est de pouvoir excecuter plusieurs threads en même temps) ?

  9. #8
    invite7a39c3be

    Re : Fonctionnement multi-cœur

    moui... mais enfait tu veux faire quoi exactement ?

  10. #9
    invitefa0c54f0

    Re : Fonctionnement multi-cœur

    Comprendre comment sont implementés les cœurs dans un CPU (de vrais explications… éventuellement accompagnées de schéma en porte logique, ou VHDL), et comment les systèmes d'exploitations gèrent le multi-core ! Simple curiosité !
    Je sais qu'il existe des projets opencores, mais ils n'expliquent pas comment ils implémentent les cores…

  11. #10
    jiherve

    Re : Fonctionnement multi-cœur

    Bonsoir,
    Le multicœur c'est une approche du parallélisme plus radicale que le multithreading (l'un n’empêchant pas l'autre), ici les taches s'effectuent sur des UC séparées mais qui ont tout de même des ressources communes, il existe donc des mécanismes d'arbitrage et de cohérence assurés par le hard pour les accès aux périphériques, cache L2 et + et RAM, et c'est beaucoup plus compliqué avec un multicoeur car si des taches presque indépendantes doivent échanger des informations l'aspect séquentiel résiduel du multithreading( chaque taches utilise une partie du temps CPU) disparait et n'importe quoi peu arriver n'importe quand.
    L'OS gérera les affectations de ces taches en fonction de la disponibilité des cœurs, mais cela ne peut se faire que si les taches sont indépendantes ou bien conçues pour ce parallélisme.
    En clair une tache non parallélisable, car non conçue pour, ne s’exécutera pas plus vite sur un multicœur que sur un simple cœur.
    D'un point de vue hard c'est, pour simplifier, comme plusieurs processeurs en // ayant des périphériques communs.
    Pour tout savoir chercher avec OCCAM et Transputer , et oui cela a déjà plus de trente ans, encore un exemple de : il ne faut pas avoir raison trop tôt.
    JR
    l'électronique c'est pas du vaudou!

  12. #11
    invite7a39c3be

    Re : Fonctionnement multi-cœur

    On ne peux pas t'expliquer plus en détails, pour ça il te faut lire de bouquins et des dizaine de millier de page pour l'utilisation d'un CPU. On ne peux pas simplifier par un schéma logique ou un code VHDL pour des truc avec 2.2 milliards de transistors...

Discussions similaires

  1. Battements de Cœur bizzare
    Par invite9a71f253 dans le forum Santé et médecine générale
    Réponses: 23
    Dernier message: 31/01/2012, 23h37
  2. Le MSAN,Multi-Service Access Node ou le Noeud d'Accès Multi-Service
    Par invitedbc53c88 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 0
    Dernier message: 22/03/2010, 15h01
  3. Chargeur (GSM) - multi input - multi output
    Par james_patageul dans le forum Électronique
    Réponses: 0
    Dernier message: 15/07/2006, 18h14
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...