1. #1
    Débutant
    Homme Profil pro
    Ubuntu
    Inscrit en
    janvier 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ubuntu

    Informations forums :
    Inscription : janvier 2017
    Messages : 69
    Points : 0
    Points
    0

    Par défaut Employer le cache processeur

    Bonjour,

    est-il possible d'employer le cache processeur en langage assembleur ?

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    .
    Inscrit en
    mai 2010
    Messages
    1 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : mai 2010
    Messages : 1 857
    Points : 4 943
    Points
    4 943

    Par défaut

    Non
    Plus sérieusement pour toi c'est quoi la mémoire cache ?
    Pour moi c'est une mémoire RAM/SRAM plus rapide parce que elle a une distance (physique j’entends) plus proche du processeur que la RAM ordinaire.
    Et donc en gros faut juste connaître la mémory map pour savoir (si elle existe , elle n'existe pas sur tout les processeurs) et donc en gros elle est aussi accessible en C et C++.
    D'ailleurs la seule chose que l'asm fait plus que le C ce sont les instructions spécifiques (mais comme elle sont utilisé de manière rare on peut s'en passé a 98%).

  3. #3
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    janvier 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2005
    Messages : 676
    Points : 1 906
    Points
    1 906

    Par défaut

    C'est le processeur qui gère la mémoire cache.
    Au mieux on peut la remettre à zéro volontairement.
    Donc sans rien faire, ton programme assembleur va utiliser la mémoire cache
    par contre, pour une utilisation optimale de cette dernière, il faut privilégier de boucles courtes, et des données placées en continu.

  4. #4
    Débutant
    Homme Profil pro
    Ubuntu
    Inscrit en
    janvier 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ubuntu

    Informations forums :
    Inscription : janvier 2017
    Messages : 69
    Points : 0
    Points
    0

    Par défaut

    Le processeur intègrerait un logiciel d'analyse de fréquence d'apparition de portion de code ça me parait gros, j'aimerais moi même gérer le cache, Kannagi tu dis que ce serait possible, quelqu'un aurait du code à me montrer ?

  5. #5
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    .
    Inscrit en
    mai 2010
    Messages
    1 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : mai 2010
    Messages : 1 857
    Points : 4 943
    Points
    4 943

    Par défaut

    Il est probable aussi que Forthman a raison.

    j'aimerais moi même gérer le cache, Kannagi tu dis que ce serait possible, quelqu'un aurait du code à me montrer ?
    j'ai peut être parlé trop vite , je parlais dans le sens si elle était accessible , elle serait accessible via une adresse en mémoire (laquelle aucune idée ça serait complètement arbitraire).

    Ma question est pourquoi veut tu faire cela ? (c'est vrai que de nos jours les CPU sont un peu trop long )
    Je dis cela parce que bossant avec des processeurs ne possédant pas de mémoire cache, pas de pipeline et des instructions multicycle , j'arrive a en faire je que j'en veux :p

  6. #6
    Membre averti Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    mars 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 32

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

    Informations forums :
    Inscription : mars 2008
    Messages : 252
    Points : 416
    Points
    416

    Par défaut

    Pour moi c'est le CPU qui gère la mémoire cache. La seule chose que l'on puisse faire c'est de vider la cache pour forcer processeur à mettre en cache les prochains accès mémoire.

  7. #7
    Débutant
    Homme Profil pro
    Ubuntu
    Inscrit en
    janvier 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ubuntu

    Informations forums :
    Inscription : janvier 2017
    Messages : 69
    Points : 0
    Points
    0

    Par défaut

    Comment le processeur détermine-t'il ce qu'il met en cache ou non ?

  8. #8
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    janvier 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2005
    Messages : 676
    Points : 1 906
    Points
    1 906

    Par défaut

    un petit toute sur wikipedia : https://fr.wikipedia.org/wiki/M%C3%A9moire_cache

  9. #9
    Débutant
    Homme Profil pro
    Ubuntu
    Inscrit en
    janvier 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ubuntu

    Informations forums :
    Inscription : janvier 2017
    Messages : 69
    Points : 0
    Points
    0

    Par défaut

    Et en c++ est-il possible d'employer la mémoire cache du processeur ? Elle me serait très utile pour un programme qui avec le mécanisme du cache que je vois décrit un peu partout ne pourrait pas avoir autant de bénéfice que si moi je l'employais à ma façon.

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    6 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 6 505
    Points : 13 621
    Points
    13 621

    Par défaut

    Comme déjà expliqué, c'est l’électronique du CPU qui gère son cache, tu peux juste l'invalider.

    Comment le processeur détermine-t'il ce qu'il met en cache ou non ?
    Il fait sa sauce avec les algorithmes de prédiction de branchement.

    Si tu veux optimiser ton code, il te faut faire en sorte que ta façon de programmer génère le moins possible de prédictions de branchements. Le compilateur C le fera beaucoup mieux que toi.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. Désactiver le cache du processeur
    Par K2000 dans le forum Linux
    Réponses: 3
    Dernier message: 10/07/2009, 08h59
  2. Mémoires caches du processeur
    Par julien125 dans le forum C
    Réponses: 3
    Dernier message: 08/04/2008, 21h20
  3. Répertoire caché
    Par KUBITUS dans le forum Delphi
    Réponses: 30
    Dernier message: 13/04/2007, 07h19
  4. Processeur
    Par delire8 dans le forum C++Builder
    Réponses: 14
    Dernier message: 05/09/2002, 13h33
  5. swapping entre processeurs
    Par shef dans le forum MFC
    Réponses: 5
    Dernier message: 26/08/2002, 14h20

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