IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

l'unité de traitement (la rapidité de calcul)


Sujet :

Assembleur

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 29
    Points : 6
    Points
    6
    Par défaut l'unité de traitement (la rapidité de calcul)
    Bonjour,

    Pourriez vous m'aider à résoudre ce problème SVP

    Proposer une classification des mémoires par rapport à leur proximité avec le CPU :ram,cache niveau 2,registre,cache niveau 1,disque.

    Je vous remercie pour votre aide

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    On peut « t'aider », oui. Mais là, difficile de te donner des indices sans résoudre directement l'exercice, qui ne réclame, en fait, qu'un peu de bon sens.

    À ton avis, comment aurais-tu classé, toi, ces éléments ?

    Le cache de niveau 1 et 2, passe encore, mais la RAM et le disque dur, tu dois savoir ce que c'est, non ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 29
    Points : 6
    Points
    6
    Par défaut
    LA RAM fait partie du CPU, ainsi que les caches de niveau 1 et 2, et le registre.

    Si l'on entend "processeur central" au lieu de CPU (pb de traduc : pour nous c'est Unité centrale) alors
    l'ordre est Registre/Cache1/cache2/Ram/Disque

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par dominiqu Voir le message
    Si l'on entend "processeur central" au lieu de CPU (pb de traduc : pour nous c'est Unité centrale) alors l'ordre est Registre/Cache1/cache2/Ram/Disque
    C'est bien dans ce sens-là.

    LA RAM fait partie du CPU, ainsi que les caches de niveau 1 et 2, et le registre.
    Ça, par contre, c'est faux. La RAM ne fait pas partie du CPU. Les caches de niveau 1 et 2, à la limite, mais pas toujours.

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 177
    Points : 196
    Points
    196
    Par défaut
    disque => ram => cache niveau 2 => cache niveau 1 => registre => Coeur du CPU (ALU)

    Logique :
    Disque = C'est le plus éloigné il passe par la RAM pour donner ses informations (Via une DMA par exemple)
    Ram = C'est sur la carte mère. Il communique avec le CPU via le FSB.
    Cache = Plus le niveau est grand plus elle sont "éloigné" dans le processeur.
    Registre = C'est là ou travail ton processeur c'est donc le coeur du CPU.

  6. #6
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    cette reflexion sur les mémoires d'un ordinateur me fait me demander, comment est géré la cache d'un processeur? est ce que l'on peut définir quel sont les espace mémoire qui y sont associé ou est ce seulement les dernier uttilisé? parce que pour le moment je ne sait que la vider cette fameuse cache, est ce que l'on peut faire autre chose avec?

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Il y a cache et cache. Attention à bien veiller à parler de la même chose.

    Les cache L1 et L2 sont complètement transparents du point de vue du programme. C'est de la mémoire supplémentaire, rapide, mais en petite quantité (et encore) que l'on intercale entre le bus mémoire et le processeur proprement dit.

    Cela est dû au fait que, jadis, bus et CPU étaient synchronisés et cadencés par la même horloge mais, avec l'évolution des technologies, la cadence du CPU s'est envolée et qu'il a été très difficile de propager le rythme atteint dans le cœur du micro-processeur au reste de la carte-mère. Du coup, on charge des bancs de mémoire entiers dans le cache à chaque fois que le CPU fait un accès mémoire.

    Le principe du cache disque, lui, correspond à la même problématique mais à un niveau tout autre : il s'agit de bufferiser dans la mémoire RAM ordinaire les données lues et enregistrées sur disque. Comme il est idiot d'avoir de la RAM inutilisée à un moment donné, toute la RAM disponible est par défaut consacrée au cache disque. Vider le cache consiste à invalider les données qu'il contient de manière à forcer leur relecture. Mais, en ce sens, on ne peut pas parler stricto sensu de libération de mémoire.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par bifur Voir le message
    ... comment est géré la cache d'un processeur? est ce que l'on peut définir quel sont les espace mémoire qui y sont associé ou est ce seulement les dernier uttilisé?
    Non les caches L1 et L2 sont gérés de façon automatique. Le programmeur n'en a pas conscience. Le principe fondamentale sur lequel ils reposent est "le principe de localité".
    Les programmeurs et concepteurs de processeurs ont remarqué que pendant un intervalle de temps plus ou moins long de l'exécution d'un programme, les zones mémoires accédées par ce programme, en lecture ou écriture, sont relativement très proches (par exemple le parcours séquentiel d'un tableau en mémoire, la lecture des instructions successives d'un programme...). Le principe de localité voudrait donc que lorsque une zone mémoire est accédée en lecture, son contenu ET celui de ses plus proches voisins sont chargés de la mémoire RAM grande et lente vers la mémoire cache petite et rapide de manière à préparer et à faciliter les prochaines lectures qui s'adresseront fort probablement (et l'expérience montre que c'est vrai) aux plus proches voisins.
    Cette gestion est presque entièrement matérielle (je ne sais pas si le système d'exploitation peut y influer, mais si oui, c'est dans une très moindre mesure).

    parce que pour le moment je ne sait que la vider cette fameuse cache, est ce que l'on peut faire autre chose avec?
    Celà dit, (comme l'a expliqué Obsidian), NON PERSONNE NE SAIS VIDER LA MEMOIRE CACHE (qui est matérielle et gérée de façon automatique, enfin pas le commun des mortels). Ce que tu vides, je crois, c'est autre chose (une zone mémoire ram (buffer), ou même des fichiers de ton disque) qui t'es offerte par ton OS, ou un logiciel, et porte le même nom parce qu'elle repose sur la même idée qui est de faciliter les accès au disque dur bien plus lent que la mémoire (de même que la mémoire est plus lente que le cache).

  9. #9
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    que fait l'instruction "INVD" ?
    j'avait comprit avec mon anglais limité que cette instruction "invalidait" le contenu de la cache ce qui empeche de recopier le les donné contenu dans celle ci vers la ram ou le processeur, donc détruit les données contenue dans la cache (un peut comme si on la vidait)

  10. #10
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par bifur Voir le message
    que fait l'instruction "INVD" ?
    j'avait comprit avec mon anglais limité que cette instruction "invalidait" le contenu de la cache ce qui empeche de recopier le les donné contenu dans celle ci vers la ram ou le processeur, donc détruit les données contenue dans la cache (un peut comme si on la vidait)
    C'est effectivement le cas. Mais il est d'usage de préciser qu'il vaut mieux utiliser, en temps normal, l'instruction WBINVD (Write Back, then Invalidate) car elle provoque l'écriture en mémoire des données du cache avant de l'invalider. « INVD » seul ne fait que rendre obsolète le contenu du cache et brise la synchronisation entre la RAM et le cache. Utile uniquement à condition de savoir ce que l'on fait, donc.

    Ces deux instructions envoient une requête sur le bus et invalident donc les caches L1 et L2.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Points : 53
    Points
    53
    Par défaut
    Je la connaissais pas celle là. Mais aussi je pensais (faussement) que tu parlais vraiment de vider un autre cache (en tant qu'utilisateur de ton ordi, pas en tant que programmeur bas niveau, parce que cet "INVD" doit quand même être une instruction privilégié, je pense....).

    Allez c'est bon j'aurais appris... et Merci pour cette précision.

  12. #12
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par Ulrik18 Voir le message
    Je la connaissais pas celle là. Mais aussi je pensais (faussement) que tu parlais vraiment de vider un autre cache (en tant qu'utilisateur de ton ordi, pas en tant que programmeur bas niveau, parce que cet "INVD" doit quand même être une instruction privilégié, je pense....).
    Je parlais bien des deux cas, effectivement.

    Sinon, INVD est privilégiée, mais ça ne l'empêche pas de faire son travail… :-)

Discussions similaires

  1. [LibreOffice][Tableur] Rapidité de calculs
    Par xavllo58 dans le forum OpenOffice & LibreOffice
    Réponses: 25
    Dernier message: 19/03/2015, 16h58
  2. [AC-2010] Définir unité de mesure (kg) dans champ calculé
    Par esylvestre dans le forum Access
    Réponses: 2
    Dernier message: 12/02/2013, 23h53
  3. [Oracle 9i] Traitement plus long après calcul de statistique
    Par iSylvain dans le forum Administration
    Réponses: 8
    Dernier message: 04/03/2009, 12h08
  4. Réponses: 4
    Dernier message: 25/06/2007, 00h10
  5. emulateur J2ME et rapidité de calcul
    Par Phobos dans le forum Java ME
    Réponses: 2
    Dernier message: 30/08/2006, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo