| Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    Hva er direkte kartlegging og funksjon?
    Direkte mapping er en cache-minnedesign der hver minneadresse er tilordnet en spesifikk cache-linje. Dette betyr at det kun er én mulig hurtigbufferplassering for hver minneadresse. Direkte kartlegging er enkel å implementere og har lav maskinvareoverhead, men det kan resultere i cache-konflikter hvis flere minneadresser tilordnes den samme cache-linjen.

    For å beregne cache-linjeindeksen for en gitt minneadresse, deles minneadressen på cache-linjestørrelsen. Resten av denne divisjonen er cache-linjeindeksen. For eksempel, hvis minneadressen er 0x100 og hurtigbufferlinjestørrelsen er 16 byte, er hurtigbufferlinjeindeksen 4.

    Den direkte kartleggingsfunksjonen tilordner en minneadresse til en hurtigbufferlinjeindeks i henhold til følgende formel:

    ```

    cacheLineIndex =minneAddress mod cacheLineSize

    ```

    Hvor:

    * cacheLineIndex er cache-linjeindeksen

    * minneadresse er minneadressen

    * cacheLineSize er cache-linjestørrelsen

    Her er et eksempel på hvordan direkte kartlegging fungerer. Tenk på en cache med en cache-linjestørrelse på 16 byte. Følgende tabell viser minneadressene som tilordnes hver hurtigbufferlinjeindeks:

    | Cachelinjeindeks | Minneadresser |

    |---|---|

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

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

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

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

    | ... | ... |

    La oss nå si at vi ønsker å få tilgang til minneadressen 0x123. For å beregne hurtigbufferlinjeindeksen for denne adressen deler vi 0x123 med 16. Resten av denne divisjonen er 3. Derfor er hurtigbufferlinjeindeksen for minneadressen 0x123 3.

    I henhold til tabellen ovenfor, tilordnes cache-linjeindeksen 3 til minneadressene 0x300, 0x310, 0x320, ..., 0x3F0. Derfor tilordnes minneadressen 0x123 til hurtigbufferlinjen som inneholder minneadressene 0x300, 0x310, 0x320, ..., 0x3F0.

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan bruke Allegro lage grafikk i C 
    ·Hvordan få en forskyvning av String i en fil i CPP 
    ·Slik konverterer til Hex bruke C + + 
    ·Hvordan skrive en definisjon for en Interleave funksjon…
    ·Hvordan bruke FX -filer i GTK Radiant 
    ·Hvordan Ignorer Kommentar Lines i C + + 
    ·Hvordan programmere Cocoa på en iPhone 
    ·Hvordan bruke Visual C + + Express 
    ·Hvordan beregne kryssende sirkler i C + + 
    ·Hvordan øke verdien av en Pointer Innenfor en funksjon…
      Anbefalte artikler
    ·Hvordan Referanse Knapper i AS3 
    ·Slik fjerner alle Script Tags i Mootools XHR 
    ·Hvordan lage Python Script Kjørbar 
    ·Hvordan returnere en referanse til Vector C 
    ·Hvorfor er en ekstern Excel regneark en Compound Docume…
    ·Hvordan oppdatere en spørring i Access VBA 
    ·Hvordan bruke Oracle Sekvenser 
    ·Hvordan finne en String Innsiden av et String of PHP 
    ·Den Header PHP Is Not Omdirigering 
    ·Visual Basic 6 vil ikke la deg lagre som en EXE -fil 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/