Minne båndbredde - Memory bandwidth

Minnebåndbredde er hastigheten som data kan leses fra eller lagres i et halvlederminne av en prosessor . Minnebåndbredde uttrykkes vanligvis i enheter av byte / sekund , selv om dette kan variere for systemer med naturlige datastørrelser som ikke er et multiplum av de ofte brukte 8-biters byte.

Minne båndbredde som er annonsert for et gitt minne eller system er vanligvis den maksimale teoretiske båndbredden. I praksis vil den observerte minnebåndbredden være mindre enn (og garantert ikke overstige) den annonserte båndbredden. Det finnes en rekke standardverdier for å måle vedvarende minnebåndbredde ved hjelp av en rekke tilgangsmønstre. Disse er ment å gi innsikt i minnebåndbredden som et system skal opprettholde på forskjellige klasser av virkelige applikasjoner.

Målekonvensjoner

Det er tre forskjellige konvensjoner for å definere mengden data som overføres i telleren "byte / sekund":

  1. Den bcopy konvensjonen : teller hvor mye data kopiert fra ett sted i minnet til et annet sted per tidsenhet. For eksempel vil kopiering av 1 million byte fra ett sted i minnet til et annet sted i minnet på ett sekund telles som 1 million byte per sekund. Bcopy-konvensjonen er selvkonsistent, men utvides ikke lett til å dekke saker med mer komplekse tilgangsmønstre, for eksempel tre lesninger og en skriving.
  2. The Stream konvensjonen : oppsummerer mengden av data som applikasjonskoden eksplisitt leser pluss mengden av data som applikasjonskoden eksplisitt skriver. Ved å bruke det forrige eksemplet på 1 million byte-eksemplarer, vil STREAM-båndbredden telles som 1 million byte lest pluss 1 million byte skrevet på ett sekund, totalt 2 millioner byte per sekund. STREAM-konvensjonen er mest direkte knyttet til brukerkoden, men teller kanskje ikke all datatrafikken som maskinvaren faktisk er nødvendig for å utføre.
  3. Den hardware-konvensjonen : teller den faktiske mengden av data lest eller skrevet av maskinvaren, om dataene bevegelse ble eksplisitt ber om brukerkoden eller ikke. Ved å bruke det samme eksemplet på 1 million byte-kopier, vil maskinvare- båndbredden på datasystemer med en skriveallokeringsbuffer-policy inkludere ytterligere 1 million byte trafikk fordi maskinvaren leser målgruppen fra minne til hurtigbuffer før butikkene utføres. Dette gir totalt 3 millioner byte per sekund som faktisk overføres av maskinvaren. Maskinvarekonvensjonen er mest direkte knyttet til maskinvaren, men representerer kanskje ikke den minste mengden datatrafikk som kreves for å implementere brukerens kode.
For eksempel har noen datasystemer muligheten til å unngå skriveallokeringstrafikk ved hjelp av spesielle instruksjoner, noe som fører til muligheten for villedende sammenligninger av båndbredde basert på forskjellige mengder utført datatrafikk.

Båndbreddeberegning og nomenklatur

Nomenklaturen er forskjellig fra minneteknologier, men for DDR DDRRAM , DDR2 SDRAM og DDR3 SDRAM- minne er den totale båndbredden produktet av:

  • Base DRAM klokkefrekvens
  • Antall dataoverføringer per klokke : To, i tilfelle "dobbel datahastighet" (DDR, DDR2, DDR3, DDR4) minne.
  • Bredde på minnebuss (grensesnitt) : Hvert DDR-, DDR2- eller DDR3-minnegrensesnitt er 64 bits bredt. Disse 64 bitene blir noen ganger referert til som en "linje".
  • Antall grensesnitt : Moderne personlige datamaskiner bruker vanligvis to minnegrensesnitt ( dual-channel mode) for en effektiv 128-bit bussbredde.

For eksempel vil en datamaskin med dobbeltkanalminne og en DDR2-800-modul per kanal som kjører på 400 MHz ha en teoretisk maksimal minnebåndbredde på:

400.000.000 klokker per sekund × 2 linjer per klokke × 64 bits per linje × 2 grensesnitt =
102,400,000,000 (102,4 milliarder) bits per sekund (i byte, 12,800 MB / s eller 12,8 GB / s)

Denne teoretiske maksimale minnebåndbredden er referert til som "burst rate", som kanskje ikke er bærekraftig.

Navnekonvensjonen for DDR-, DDR2- og DDR3-moduler spesifiserer enten en maksimal hastighet (f.eks. DDR2-800) eller en maksimal båndbredde (f.eks. PC2-6400). Hastighetsvurderingen (800) er ikke maksimal klokkehastighet, men dobbelt så høy (på grunn av den doblede datahastigheten). Den angitte båndbredden (6400) er maksimum megabyte overført per sekund ved hjelp av en 64-biters bredde. I en konfigurasjon med to kanaler er dette effektivt en 128-biters bredde. Dermed kan minnekonfigurasjonen i eksemplet forenkles som: to DDR2-800-moduler som kjører i dual-channel modus.

To minnegrensesnitt per modul er en vanlig konfigurasjon for PC-systemminne, men enkeltkanalkonfigurasjoner er vanlige i eldre, low-end eller low-power enheter. Noen personlige datamaskiner og de fleste moderne grafikkort bruker mer enn to minnegrensesnitt (f.eks. Fire for Intels LGA 2011- plattform og NVIDIA GeForce GTX 980). Grafikkort med høy ytelse som kjører mange grensesnitt parallelt, kan oppnå svært høy total minnebussbredde (f.eks. 384 bits i NVIDIA GeForce GTX TITAN og 512 bits i AMD Radeon R9 290X ved bruk av henholdsvis seks og åtte 64-biters grensesnitt).

ECC-biter

I systemer med feilkorrigerende minne (ECC) telles ikke tilleggsbredden til grensesnittene (vanligvis 72 i stedet for 64 bits) i båndbreddespesifikasjoner fordi de ekstra bitene ikke er tilgjengelige for å lagre brukerdata. ECC-biter er bedre tenkt på som en del av minnemaskinvaren i stedet for som informasjon som er lagret i den maskinvaren.

Se også

Referanser

Generell

Eksterne linker