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 :

Cache direct exercice(help)


Sujet :

Assembleur

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Cache direct exercice(help)
    Bonjour,

    je prend un cours sur le langage assembleur (pas par choix direct :-/ mais pour mon cursus ) j'ai 5 chapitre a étudié pour l'exam du 27 janvier

    le cour qui est un PDF avec un fichier audio par page
    explique :
    Mémoire Centrale :
    • Généralité
    • Structure physique
    • Modules mémoire
    • (résumé + complement)

    Mémoire cache :
    • Structure
    • Fonction lecture et ecriture
    • Réalisations : associatif pur, acces direct, mixte

    La Mémoire de Masse : disque magnétique (schéma)
    Mémoire virtuelle :
    • objet, principe
    • segmentation
    • paginantion


    J ai donc des exercices et la correction
    seulement je ne comprend pas les exercices ni la correction,
    je comprend pas le lien entre les exercice et le cours c'est vraiment pas normal !

    pourriez vous m'aidé a comprendre ?
    car mon super prof ne répond pas mes mail !

    en premier l'exercice 1 :

    Exercice 1
    Soit une mémoire de mots de 32 bits, adressée avec des adresses de 32 bits. Le cache à correspondance directe contient 4 Ko de données utiles. Une entrée du cache contient un bloc de 1 mot mémoire.

    Question 1 : Calculez la taille réelle du cache.
    Entrée du cache en bits = 1 (bit validation) + n bits (étiquette) + m bits (donnée) = 1 + n + 32 bits
    La taille de l'étiquette se déduit de celle de l'index et de celle de l'adresse :
    taille étiquette (n) = taille de l'adresse en bits – nb bits /octet – nb bits /mot – nb bits /index
    La taille de l'index est fonction du nombre d'entrées du cache.
    nbre entrées du cache = taille des données utiles en octets / taille d'une entrée en donnée utile en octets = 4 * 1024 octets / 4 octets = 1024 entrées = 2^10 entrées
    La taille de l'index est donc de 10 bits.
    je comprend pas comment ont trouve 2 ?
    Les mots sont composée de 4 octets : nb bits /octet = 2
    ici un mot = 32 bit ? / par ? = 0
    Les blocs sont de 1 mot : nb bits/ mot = 0
    taille étiquette (n) = 32 – 2 – 0 – 10 = 20
    Entrée du cache en bits = 1 + 20 + 32 = 53 bits
    Taille du cache = 53 * 1024 = 53 Kbits.
    ce calcule fonctionne pour tout type de cache ???

    Les cours les exercices et correction sur google drive.

    Je vous remercie par avance pour votre aide.
    Bonne journée a tous

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Salut,

    Bah moi il y a un truc que je ne comprend pas d'entrée de jeux.

    "Les mots sont composée de 4 octets"

    Un mot (word) est composé de 2 octets et non 4.
    C'est les doubles-mot (dword) qui sont composé de 4 octets.

    A moins qu'il parle de word pris 2 par 2.
    Et pourquoi ton prof met "mots" au fémiinin ? : /

    Sinon, là tout de suite, je ne sais pas non plus d'où sort le "2".
    Mais je n'ai pas suivie le cours, alors difficile de te répondre.

    Tu as le cours dans le drive ?
    C'est quel fichier ?

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

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    on utilise le terme "mot double" pour une valeur 32 sur un x86
    on peut très bien estimer que sur un autre processeur 32 bits
    un mot = 32 bits

    idem pour l'adressage, sur x86 une adresse pointe sur un octet, mais
    pourquoi sur un processeur 32 bits une adresse ne pointerait pas sur
    une valeur 32 bits ? (ça permettrait de multiplier par 4 la quantité de mémoire
    utilisable, mais obligerait de coder des instructions sur 32 bits également)

    par contre j'ai pas regardé l'exercice

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Citation Envoyé par Forthman Voir le message
    on utilise le terme "mot double" pour une valeur 32 sur un x86
    on peut très bien estimer que sur un autre processeur 32 bits
    un mot = 32 bits
    Ah ok. Je pensais qu'un word était toujours égal à deux bytes, quelque soit l'architecture.

    Citation Envoyé par Forthman Voir le message
    idem pour l'adressage, sur x86 une adresse pointe sur un octet, mais
    pourquoi sur un processeur 32 bits une adresse ne pointerait pas sur
    une valeur 32 bits ? (ça permettrait de multiplier par 4 la quantité de mémoire
    utilisable, mais obligerait de coder des instructions sur 32 bits également)
    Par contre là je ne comprend pas trop ce que tu veux dire.
    Par exemple, un point d'entrée de programme sous Win32, c'est en général "0x00401000".
    Donc c'est codé sur un dword. Et ça pointe sur ce qu'on veut, non ?

    Ex. Si je fais 'mov [0x00401000],0xffffffff"
    Je met bien un dword à cette adresse.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Merci
    Bonjour à vous deux et merci pour vos réponse,

    oui le cours qui correspond a ces exercices est sur le : drive
    (le fichier est décomposé sur 58 images commenté par un fichier audio

    j ai bien suivi les explications et je n'ai rien trouvé qui me permet de comprendre cette exercice.

    le cours contient:
    des algorithme de remplacement/Lecture/Ecriture de données/instruction de la mémoire cache à la mémoire centrale pour le processeur
    le fonctionnement du chargement d'un programme dans la mémoire centrale
    si celui si peut être contenu intégralement
    ou
    avec support du disque dur si le programme ne peut être chargé en entier.
    on apprend 2 méthode d'utilisation la pagination et la segmentation
    je ne comprend pas d'ou sort l'exercice 1 et le 2 (cela me rend fou)
    sans la correction je ne serais même pas capable de vous dire de quoi il parle.

    j'ai fait l'exercice 3 et 4 qui on un rapport direct avec mes support
    mais pour le 1 et 2 j'ai vraiment besoin de votre aide de comprendre l'utilité le besoin de cette exercice car si on me pose la question et que l'on m'indique un cache purement associatif je ne serais pas répondre non plus.


    j’espère que vous comprenez je pense qu'il est important de savoir de quoi on parle quand on fait un exo et si la question sort de l'espace alors cela devient compliqué

    Forthman a raison les mot sont sur 32 bit 4 octets (les cours jusque la concerne des architecture en MAP32)

    Merci

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

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Citation Envoyé par n5Rzn1D9dC Voir le message
    Par contre là je ne comprend pas trop ce que tu veux dire.
    Par exemple, un point d'entrée de programme sous Win32, c'est en général "0x00401000".
    Donc c'est codé sur un dword. Et ça pointe sur ce qu'on veut, non ?
    La mémoire est pointée en octets sur x86, on a donc un chevauchement d'octets lors d'une lecture 32 bits si on a moins de 4 différence d'adresse
    exemple de lectures 32 bits :
    adresse 00000000h = 12345678h
    adresse 00000004h = 9ABCDEF0h

    si tu charges l'adresse mémoire 00000002h dans eax, le contenu de ce dernier sera : DEF0124h


    si l'accès mémoire était pointé sur 32 bits,
    1 adresse = 1 valeur 32 bits point barre

    PS: je n'utilise sûrement pas les bon termes, étant un programmeur du dimanche

    edit: j'ai effacé des lignes que j'avais laissé par erreur

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Ba oui lol, n'importe quoi moi.
    Je devais être mal réveillé ^
    Merci pour l'explication.
    a+

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    ah ?
    et donc pour cette exercice vous auriez une explication simple pour arrivé au résultat svp ?

    Entrée du cache en bits = 1 (bit validation) + n bits (étiquette) + m bits (donnée) = 1 + n + 32 bits
    La taille de l'étiquette se déduit de celle de l'index et de celle de l'adresse :
    taille étiquette (n) = taille de l'adresse en bits – nb bits /octet – nb bits /mot – nb bits /index
    La taille de l'index est fonction du nombre d'entrées du cache.
    nbre entrées du cache = taille des données utiles en octets / taille d'une entrée en donnée utile en octets = 4 * 1024 octets / 4 octets = 1024 entrées = 2^10 entrées
    La taille de l'index est donc de 10 bits.
    je comprend pas comment ont trouve 2 ?
    Les mots sont composée de 4 octets : nb bits /octet = 2
    ici un mot = 32 bit ? / par ? = 0
    Les blocs sont de 1 mot : nb bits/ mot = 0
    taille étiquette (n) = 32 – 2 – 0 – 10 = 20
    Entrée du cache en bits = 1 + 20 + 32 = 53 bits
    Taille du cache = 53 * 1024 = 53 Kbits.
    bonne fin de journée

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Non du tout, on parlait d'autre chose.

    Mais sinon, il me semble que j'avais vu un schéma dans ton truc, sur lequel il y avait 4 word.

    Donc 4*4*2 = 32.

    C'est peut être simplement un hasard je ne sais pas.
    Après il faut bien chercher à comprendre l'exo pour être sur, mais ça il n'y a que toi qui peux le faire.

    a+

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    ok Merci pour votre aide

Discussions similaires

  1. Direct-mapped cache ?
    Par Bakura dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/11/2008, 14h14
  2. COmbobox caché Help
    Par lulux80 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 02/03/2007, 10h10
  3. Réponses: 5
    Dernier message: 24/10/2006, 11h41
  4. Probleme affich/cach tablo, HELP
    Par rigolman dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 21/10/2005, 14h01

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