| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> C /C + + Programming >> Content
    Hvad er direkte kortlægning og funktion?
    Direkte mapping er et cachehukommelsesdesign, hvor hver hukommelsesadresse er afbildet til en specifik cachelinje. Det betyder, at der kun er én mulig cacheplacering for hver hukommelsesadresse. Direkte kortlægning er enkel at implementere og har lav hardware-overhead, men det kan resultere i cache-konflikter, hvis flere hukommelsesadresser knyttes til den samme cache-linje.

    For at beregne cachelinjeindekset for en given hukommelsesadresse divideres hukommelsesadressen med cachelinjestørrelsen. Resten af ​​denne division er cache-linjeindekset. For eksempel, hvis hukommelsesadressen er 0x100, og cachelinjestørrelsen er 16 bytes, så er cachelinjeindekset 4.

    Den direkte kortlægningsfunktion knytter en hukommelsesadresse til et cache-linjeindeks i henhold til følgende formel:

    ```

    cacheLineIndex =memoryAddress mod cacheLineSize

    ```

    Hvor:

    * cacheLineIndex er cache-linjeindekset

    * hukommelsesadresse er hukommelsesadressen

    * cacheLineSize er cache-linjestørrelsen

    Her er et eksempel på, hvordan direkte kortlægning fungerer. Overvej en cache med en cache-linjestørrelse på 16 bytes. Følgende tabel viser de hukommelsesadresser, der er knyttet til hvert cache-linjeindeks:

    | Cachelinjeindeks | Hukommelsesadresser |

    |---|---|

    | 0 | 0x000, 0x010, 0x020, ..., 0x0F0 |

    | 1 | 0x100, 0x110, 0x120, ..., 0x1F0 |

    | 2 | 0x200, 0x210, 0x220, ..., 0x2F0 |

    | 3 | 0x300, 0x310, 0x320, ..., 0x3F0 |

    | ... | ... |

    Lad os nu sige, at vi vil have adgang til hukommelsesadressen 0x123. For at beregne cachelinjeindekset for denne adresse dividerer vi 0x123 med 16. Resten af ​​denne division er 3. Derfor er cachelinjeindekset for hukommelsesadressen 0x123 3.

    Ifølge tabellen ovenfor er cache-linjeindekset 3 afbildet til hukommelsesadresserne 0x300, 0x310, 0x320, ..., 0x3F0. Derfor er hukommelsesadressen 0x123 afbildet til cachelinjen, der indeholder hukommelsesadresserne 0x300, 0x310, 0x320, ..., 0x3F0.

    Forrige :

    næste :
      Relaterede artikler
    ·Funktion C Boolean 
    ·Sådan Slut C # til MS Excel 
    ·Sådan Læs numre fra filer i C 
    ·Hvordan laver man en MFC Worker Tråd 
    ·Hvordan laver Cin.Fail 
    ·Hvad er kendt af den tillade proces, der logisk kan kø…
    ·Sådan Tally procent i C + + 
    ·Sådan Find en Memory Leak i Linux 
    ·Sådan bruges Scanf Kommando i C + + 
    ·Sådan ændres titler i proceslinjen med MFC 
      Anbefalede Artikler
    ·Sådan Skjul Knapper i Xcode 
    ·Sådan Sortere en 2- dimensionel array i PHP 
    ·Sådan Løs Recursion 
    ·Niveauer af Java Certificering 
    ·Sådan Find den korteste Word i Java 
    ·Sådan ændre en String til en VAR navn i PHP 
    ·Sådan opgraderer PHP på iWeb 
    ·VBA Dollar - signeret funktioner 
    ·VB6 timerfunktioner 
    ·Sådan Launch Perl Fra SSH 
    Copyright © Computer Viden https://www.computerdk.com