Hva er assosiativ hukommelse?

Det meste av minnet lagres og åpnes på samme måte. Innhold lagres og hentes deretter ved hjelp av en minneadresse. Dette er generelt nyttig og er nesten universelt brukt. Dessverre er det et lite problem med denne oppbevaringsstilen. Det er utmerket hvis du vet hvor dataene du trenger er lagret. Det fungerer ikke bra hvis du vil søke etter en spesifikk oppføring.

La oss si at du vil finne en fil; du husker navnet, men ikke hvilken mappe du lagret. Datamaskinen din kan søke etter filnavnet, men med mindre du har brukt det nylig, er den ofte ganske treg med å utføre søket. Og det er tatt i betraktning at filsystemer lagres som filnavn og adresser.

Assosiativt minne, også kjent som Content Addressable Memory, eller CAM, er designet for å søkes etter innholdet. Dessverre er det svært kostbart å implementere assosiativt minne. Dette betyr at den bare brukes i noen få tilfeller, vanligvis i avansert nettverksmaskinvare. Det assosiative navneminnet kommer fra det faktum at det er en maskinvareimplementering av en assosiativ programvarematrise.

Cellestruktur

Assosiativt minne brukes kun der ekstremt høy ytelse er nødvendig. Som sådan er den basert på SRAM i stedet for DRAM. Som et utgangspunkt gjør dette alene det dyrt. DRAM bruker en transistor og en kondensator per bit, og SRAM bruker totalt 6 transistorer. For å effektivt søke innholdet i en minnecelle, er hver celle modifisert for å ha sammenligningskretser. Dette legger til totalt 4 transistorer til hver celle. Dette betyr at assosiativt minne er betydelig mindre tett enn SRAM, som allerede er en kostbar form for lagring.

Bruk

Assosiativt minne er dyrt og optimalisert utelukkende for matchende innholdsbaserte søk. Som sådan brukes den egentlig bare i enheter som hele tiden trenger å utføre denne typen søk; selv da er det vanligvis begrenset til avanserte modeller. Det er vanligvis bare to hovedsteder assosiativt minne brukes, nettverkssvitsjer og rutere.

Nettverksmaskinvare som svitsjer og rutere må tilby høyytelsesnivåer for å holde flere gigabiter med nettverkstrafikk flytende konstant. Innenfor et nettverk brukes MAC-adresser til å rute trafikk. En svitsj vil vite hvilken av de mange nettverksportene data må sendes til, slik at den kommer til enheten med riktig MAC-adresse. For å sikre at hver pakke sendes til rett sted, søkes dens destinasjons-MAC-adresse etter. I et tradisjonelt minneformat vil det ta litt tid, og legge til latens for hver nettverkskommunikasjon. Med assosiativ hukommelse kan søket være mye raskere.

Binær og ternær

Mest assosiativt minne er basert på binær, men noen er basert på ternær. En ternær assosiativ minnecelle ligner den binære som er beskrevet ovenfor. I stedet for å ha én SRAM-celle, har den imidlertid to. Begge har da sammen de fire ekstra transistorene som trengs for å utføre sammenligningen. Dette gjør selvfølgelig det ternære assosiative minnet enda dyrere enn dets binære fetter, så hva brukes det til?

Den ternære cellens andre bit indikerer "omsorg" eller "bryr seg ikke." Dette legger til en tredje tilstand til cellen og den generelle søkefunksjonen. Den kan nå lagre en 1, 0 eller X for ikke bryr seg. Dette er spesielt nyttig når du arbeider med nettverksrutingstabeller basert på subnettmasker med variabel lengde og med tilgangskontrolllister. Du kan ha flere positive svar på én enkelt søkeadresse i begge disse. Innenfor begge ønsker du bare å notere deg den mest presise instruksjonen.

Som sådan kan et søk etter 192.168.20.19 samsvare med følgende regler 192.168.20.16/28 og 192.168.0.0/16. Hvis du utførte et standard binært søk, må du utføre beregninger for å bekrefte at adressen faller innenfor de angitte adresseområdene. Med ternær logikk kan du imidlertid finne ut om søkeadressen din samsvarer med 192.168.xx i en enkelt operasjon. Du kan også finne ut at /28-matchen er mye mer presis enn /16-matchen fordi det er færre "bryr seg"-biter. Dette lar deg bruke de relaterte tilgangskontrollreglene fortrinnsvis.

Siden ternært assosiativt minne er enda dyrere enn den binære formen, er det enda mindre vanlig. Det kan vanligvis bare finnes i topprutere og flerlagssvitsjer.

Konklusjon

Assosiativ hukommelse er en form for hukommelse som fungerer veldig annerledes enn standard hukommelse. I stedet for å be om dataene som er lagret i en bestemt adresse, søker den i hele minnet på én gang for å finne samsvar med et søkeord. For å oppnå dette med høyytelsesnivåer er minneceller basert på en modifisert form for SRAM med en eller to SRAM-celler kombinert med fire ekstra transistorer som brukes til å utføre bitsammenligningslogikken.

Enkelte SRAM-celler brukes i binært assosiativt minne, mens to SRAM-celler brukes i ternært assosiativt minne. Den ternære varianten tillater lagring av en tredje verdi, vanligvis en 1, 0, eller "bryr seg ikke." Dette lar innhold indikere at det skal samsvare selv om søkeordet ikke er presist.

Fordi assosiative minneceller er basert på den dyre SRAM, er de kostbare, med ternære som den mest kostbare. På grunn av at dette og strukturen er eksplisitt optimalisert for søk etter innhold, brukes ikke assosiativt minne på de fleste enheter.

Bare enheter som har spesielt fordel av det og hvor ytelsen oppveier forhåndskostnaden, har det. Som sådan finnes det vanligvis utelukkende i nettverksmaskinvare av bedriftskvalitet. Innenfor den innstillingen blir det ofte referert til som CAM og TCAM, for henholdsvis innholdsadresserbart minne og ternært innholdsadresserbart minne.


Hvordan klone en harddisk

Hvordan klone en harddisk

I den moderne digitale tidsalder, hvor data er en verdifull ressurs, kan kloning av en harddisk på Windows være en avgjørende prosess for mange. Denne omfattende guiden

Hvordan fikse driveren WUDFRd kunne ikke lastes inn på Windows 10?

Hvordan fikse driveren WUDFRd kunne ikke lastes inn på Windows 10?

Står du overfor feilmeldingen mens du starter datamaskinen som sier at driveren WUDFRd ikke kunne lastes inn på datamaskinen?

Slik fikser du NVIDIA GeForce Experience-feilkode 0x0003

Slik fikser du NVIDIA GeForce Experience-feilkode 0x0003

Opplever du NVIDIA GeForce-opplevelsesfeilkode 0x0003 på skrivebordet ditt? Hvis ja, les bloggen for å finne ut hvordan du løser denne feilen raskt og enkelt.

Hva er SMPS?

Hva er SMPS?

Lær hva som er SMPS og betydningen av ulike effektivitetsvurderinger før du velger en SMPS for datamaskinen din.

Hvorfor slås ikke Chromebooken på

Hvorfor slås ikke Chromebooken på

Få svar på spørsmålet Hvorfor slås ikke Chromebooken min på? I denne nyttige veiledningen for Chromebook-brukere.

Slik rapporterer du phishing-svindel til Google

Slik rapporterer du phishing-svindel til Google

Lær hvordan du rapporterer en svindler til Google for å forhindre at de svindler andre med denne veiledningen.

Roomba stopper, stikker og snur – fiks

Roomba stopper, stikker og snur – fiks

Løs et problem der Roomba-robotstøvsugeren stopper, fester seg og fortsetter å snu.

Hvordan endre grafikkinnstillinger på Steam Deck

Hvordan endre grafikkinnstillinger på Steam Deck

Steam Deck tilbyr en robust og allsidig spillopplevelse rett ved fingertuppene. Men for å optimere spillingen din og sikre best mulig

Hva er isolasjonsbasert sikkerhet?

Hva er isolasjonsbasert sikkerhet?

Skulle fordype seg i et emne som blir stadig viktigere i verden av cybersikkerhet: isolasjonsbasert sikkerhet. Denne tilnærmingen til

Slik bruker du Auto Clicker for Chromebook

Slik bruker du Auto Clicker for Chromebook

I dag skulle du fordype deg i et verktøy som kan automatisere repeterende klikkeoppgaver på Chromebooken din: Auto Clicker. Dette verktøyet kan spare deg for tid og