Hvad er associativ hukommelse?

Det meste af hukommelsen gemmes og tilgås på samme måde. Indhold gemmes og hentes derefter ved hjælp af en hukommelsesadresse. Dette er generelt nyttigt og er næsten universelt brugt. Desværre er der et lille problem med denne opbevaringsstil. Det er fremragende, hvis du ved, hvor de data, du skal bruge, er gemt. Det fungerer ikke godt, hvis du vil søge efter en bestemt post.

Lad os sige, at du vil finde en fil; du husker dens navn, men ikke hvilken mappe du har gemt. Din computer kan søge efter filnavnet, men medmindre du har brugt det for nylig, er den ofte ret langsom til at udføre søgningen. Og det tager højde for, at filsystemer er gemt som filnavne og adresser.

Associativ hukommelse, også kendt som Content Addressable Memory, eller CAM, er designet til at blive søgt efter indholdet. Desværre er det meget dyrt at implementere associativ hukommelse. Det betyder, at den kun bruges i få tilfælde, typisk i avanceret netværkshardware. Den associative navnehukommelse kommer fra det faktum, at det er en hardwareimplementering af et associativt softwarearray.

Cellestruktur

Associativ hukommelse bruges kun, hvor der er behov for ekstrem høj ydeevne. Som sådan er det baseret på SRAM snarere end DRAM. Alene dette gør det som udgangspunkt dyrt. DRAM bruger en transistor og en kondensator pr. bit, og SRAM bruger i alt 6 transistorer. For effektivt at søge i indholdet af en hukommelsescelle modificeres hver celle til at have sammenligningskredsløb. Dette tilføjer i alt 4 transistorer til hver celle. Det betyder, at associativ hukommelse er væsentligt mindre tæt end SRAM, som allerede er en dyr form for lagring.

Brug

Associativ hukommelse er dyr og optimeret udelukkende til at matche indholdsbaserede søgninger. Som sådan bruges det kun rigtigt i enheder, der konstant skal udføre denne type søgning; selv da er det typisk begrænset til avancerede modeller. Der er generelt kun to hovedsteder, der bruges associativ hukommelse, netværksswitches og routere.

Netværkshardware som switche og routere skal tilbyde højtydende niveauer for at holde flere gigabit netværkstrafik flydende konstant. Inden for et netværk bruges MAC-adresser til at dirigere trafik. En switch vil vide, hvilken af ​​dens mange netværksporte data skal sendes til, så den kommer til enheden med den korrekte MAC-adresse. For at sikre, at hver pakke sendes til det rigtige sted, søges dens destinations MAC-adresse efter. I et traditionelt hukommelsesformat ville det tage noget tid, hvilket øger enhver netværkskommunikations latency. Med associativ hukommelse kan den søgning være meget hurtigere.

Binær og ternær

Mest associativ hukommelse er baseret på binær, men nogle er baseret på ternær. En ternær associativ hukommelsescelle ligner den binære, der er beskrevet ovenfor. I stedet for at have én SRAM-celle har den dog to. Begge har så tilsammen de fire ekstra transistorer, der er nødvendige for at udføre sammenligningen. Dette gør selvfølgelig den ternære associative hukommelse endnu dyrere end sin binære fætter, så hvad bruges den til?

Den ternære celles anden bit indikerer "pleje" eller "ligeglad." Dette tilføjer en tredje tilstand til cellen og den overordnede søgefunktion. Den kan nu gemme en 1, 0 eller X for det er ligeglad. Dette er især nyttigt, når der er tale om netværksroutingtabeller baseret på undernetmasker med variabel længde og med adgangskontrollister. Du kan have flere positive svar på en enkelt søgeadresse i begge disse. Inden for begge ønsker du kun at notere dig den mest præcise instruktion.

Som sådan kan en søgning efter 192.168.20.19 matche følgende regler 192.168.20.16/28 og 192.168.0.0/16. Hvis du udførte en standard binær søgning, skulle du udføre beregninger for at bekræfte, at adressen falder inden for de angivne adresseområder. Med ternær logik kan du dog afgøre, om din søgeadresse matcher 192.168.xx i en enkelt operation. Du kan også bestemme, at /28-matchet er meget mere præcist end /16-matchet, fordi der er færre "ligeglad"-bits. Dette giver dig mulighed for at anvende de relaterede adgangskontrolregler fortrinsvis.

Da ternær associativ hukommelse er endnu dyrere end den binære form, er den endnu mindre almindelig. Det kan generelt kun findes i top-end routere og multi-layer switche.

Konklusion

Associativ hukommelse er en form for hukommelse, der fungerer meget anderledes end standardhukommelse. I stedet for at anmode om data, der er gemt på en bestemt adresse, søger den i hele hukommelsen på én gang for at finde matcher til en søgeterm. For at opnå dette med højtydende niveauer er hukommelsesceller baseret på en modificeret form for SRAM med en eller to SRAM-celler kombineret med fire ekstra transistorer, der bruges til at udføre bitsammenligningslogikken.

Enkelte SRAM-celler bruges i binær associativ hukommelse, mens to SRAM-celler bruges i ternær associativ hukommelse. Den ternære variant tillader lagring af en tredje værdi, typisk en 1, 0 eller "ligeglad". Dette tillader indhold at angive, at det skal matche, selvom søgeordet ikke er præcist.

Fordi associative hukommelsesceller er baseret på den dyre SRAM, er de dyre, hvor ternære er den dyreste. På grund af dette og dets struktur er eksplicit optimeret til søgning efter indhold, bruges associativ hukommelse ikke i de fleste enheder.

Kun enheder, der har særlig gavn af det, og hvor ydeevnen opvejer de forudgående omkostninger, har det. Som sådan findes det typisk udelukkende i netværkshardware i virksomhedskvalitet. Inden for denne indstilling omtales det ofte som CAM og TCAM for henholdsvis indholdsadresserbar hukommelse og ternær indholdsadresserbar hukommelse.


Sådan klones en harddisk

Sådan klones en harddisk

I den moderne digitale tidsalder, hvor data er et værdifuldt aktiv, kan kloning af en harddisk på Windows være en afgørende proces for mange. Denne omfattende guide

Sådan repareres driveren WUDFRd kunne ikke indlæses på Windows 10?

Sådan repareres driveren WUDFRd kunne ikke indlæses på Windows 10?

Står du over for fejlmeddelelsen, mens du starter din computer, som siger, at driveren WUDFRd ikke kunne indlæses på din computer?

Sådan rettes NVIDIA GeForce Experience-fejlkode 0x0003

Sådan rettes NVIDIA GeForce Experience-fejlkode 0x0003

Oplever du NVIDIA GeForce-oplevelsesfejlkode 0x0003 på dit skrivebord? Hvis ja, læs bloggen for at finde ud af, hvordan du løser denne fejl hurtigt og nemt.

Hvad er SMPS?

Hvad er SMPS?

Lær, hvad SMPS er og betydningen af ​​forskellige effektivitetsvurderinger, før du vælger en SMPS til din computer.

Hvorfor tænder min Chromebook ikke

Hvorfor tænder min Chromebook ikke

Få svar på spørgsmålet: Hvorfor tænder min Chromebook ikke? I denne nyttige vejledning til Chromebook-brugere.

Sådan rapporteres phishing-svindel til Google

Sådan rapporteres phishing-svindel til Google

Lær, hvordan du rapporterer en svindler til Google for at forhindre dem i at snyde andre med denne vejledning.

Roomba stopper, stikker og drejer rundt – Fix

Roomba stopper, stikker og drejer rundt – Fix

Løs et problem, hvor din Roomba robotstøvsuger stopper, sætter sig fast og bliver ved med at dreje rundt.

Sådan ændres grafikindstillinger på Steam Deck

Sådan ændres grafikindstillinger på Steam Deck

Steam Deck tilbyder en robust og alsidig spiloplevelse lige ved hånden. Dog for at optimere dit spil og sikre det bedst mulige

Hvad er isolationsbaseret sikkerhed?

Hvad er isolationsbaseret sikkerhed?

Ville dykke ned i et emne, der bliver stadig vigtigere i cybersikkerhedens verden: isolationsbaseret sikkerhed. Denne tilgang til

Sådan bruger du Auto Clicker til Chromebook

Sådan bruger du Auto Clicker til Chromebook

I dag skulle du dykke ned i et værktøj, der kan automatisere gentagne klikopgaver på din Chromebook: Auto Clicker. Dette værktøj kan spare dig tid og