Hukommelsesbåndbredde - Memory bandwidth

Hukommelsesbåndbredde er den hastighed, hvormed data kan læses fra eller lagres i en halvlederhukommelse af en processor . Hukommelsesbåndbredde udtrykkes normalt i enheder af byte / sekund , selvom dette kan variere for systemer med naturlige datastørrelser, der ikke er et multiplum af de almindeligt anvendte 8-bit bytes.

Hukommelsesbåndbredde, der annonceres for en given hukommelse eller et system, er normalt den maksimale teoretiske båndbredde. I praksis vil den observerede hukommelsesbåndbredde være mindre end (og garanteres ikke at overstige) den annoncerede båndbredde. Der findes en række computerbenchmarks til måling af vedvarende hukommelsesbåndbredde ved hjælp af en række adgangsmønstre. Disse er beregnet til at give indsigt i hukommelsesbåndbredden, som et system skal opretholde på forskellige klasser af rigtige applikationer.

Målingskonventioner

Der er tre forskellige konventioner til at definere mængden af ​​data, der overføres i tælleren af ​​"bytes / sekund":

  1. Den bcopy konvention : tæller den mængde data kopieret fra et sted i hukommelsen til en anden placering per tidsenhed. For eksempel vil kopiering af 1 million byte fra et sted i hukommelsen til et andet sted i hukommelsen på et sekund blive talt som 1 million bytes pr. Sekund. Bcopy-konventionen er selvkonsistent, men udvides ikke let til at dække sager med mere komplekse adgangsmønstre, for eksempel tre læsninger og en skrivning.
  2. Den Stream-konventionen : opsummerer den mængde data, at ansøgningen koden eksplicit læser plus den mængde data, som ansøgningen koden eksplicit skriver. Ved hjælp af det foregående eksemplar på 1 million byte-kopier tælles STREAM-båndbredden som 1 million aflæsede byte plus 1 million byte skrevet i et sekund, i alt 2 millioner byte pr. Sekund. STREAM-konventionen er mest direkte bundet til brugerkoden, men tæller muligvis ikke al datatrafik, som hardwaren faktisk skal udføre.
  3. Den hardware-konventionen : tæller den faktiske mængde data læses eller skrives af hardwaren, om dataene bevægelse blev udtrykkeligt anmodet brugerkoden eller ej. Ved hjælp af det samme eksemplar på 1 million byte-kopier ville hardwarebåndbredden på computersystemer med en skriveallokeret cache-politik indeholde yderligere 1 million byte trafik, fordi hardwaren læser målgruppen fra hukommelsen til cachen, før den udfører butikkerne. Dette giver i alt 3 millioner bytes pr. Sekund, der faktisk overføres af hardwaren. Hardwarekonventionen er mest direkte bundet til hardwaren, men repræsenterer muligvis ikke den mindste mængde datatrafik, der kræves for at implementere brugerens kode.
For eksempel har nogle computersystemer evnen til at undgå skriveallokeringstrafik ved hjælp af specielle instruktioner, hvilket fører til muligheden for vildledende sammenligninger af båndbredde baseret på forskellige mængder udført datatrafik.

Båndbreddeberegning og nomenklatur

Nomenklaturen adskiller sig på hukommelsesteknologier, men for DDR DDRRAM , DDR2 SDRAM og DDR3 SDRAM- hukommelse er den samlede båndbredde et produkt af:

  • Base DRAM-urfrekvens
  • Antal dataoverførsler pr. Ur : To, i tilfælde af "dobbelt datahastighed" (DDR, DDR2, DDR3, DDR4) hukommelse.
  • Hukommelsesbus (interface) bredde : Hver DDR-, DDR2- eller DDR3-hukommelsesgrænseflade er 64 bit bred. Disse 64 bits kaldes undertiden en "linje".
  • Antal grænseflader : Moderne personlige computere bruger typisk to hukommelsesgrænseflader ( dual-channel mode) til en effektiv 128-bit busbredde.

For eksempel vil en computer med dobbeltkanalhukommelse og et DDR2-800-modul pr. Kanal, der kører ved 400 MHz, have en teoretisk maksimal hukommelsesbåndbredde på:

400.000.000 ure pr. Sekund × 2 linjer pr. Ur × 64 bit pr. Linje × 2 grænseflader =
102.400.000.000 (102,4 mia.) Bits pr. Sekund (i bytes, 12.800 MB / s eller 12,8 GB / s)

Denne teoretiske maksimale hukommelsesbåndbredde kaldes "burst rate", som muligvis ikke er bæredygtig.

Navngivningskonventionen for DDR-, DDR2- og DDR3-moduler specificerer enten en maksimal hastighed (f.eks. DDR2-800) eller en maksimal båndbredde (f.eks. PC2-6400). Hastighedsvurderingen (800) er ikke den maksimale urhastighed, men dobbelt så høj (på grund af den fordoblede datahastighed). Den angivne båndbredde (6400) er den maksimale megabyte, der overføres pr. Sekund ved hjælp af en 64-bit bredde. I en konfiguration med to kanaler er dette effektivt en 128-bit bredde. Således kan hukommelseskonfigurationen i eksemplet forenkles som: to DDR2-800-moduler, der kører i dobbeltkanaltilstand.

To hukommelsesgrænseflader pr. Modul er en almindelig konfiguration til pc-systemhukommelse, men enkeltkanalkonfigurationer er almindelige i ældre, low-end eller low-power enheder. Nogle personlige computere og de fleste moderne grafikkort bruger mere end to hukommelsesgrænseflader (f.eks. Fire til Intels LGA 2011- platform og NVIDIA GeForce GTX 980). Højtydende grafikkort, der kører mange grænseflader parallelt, kan opnå en meget høj total hukommelsesbusbredde (f.eks. 384 bits i NVIDIA GeForce GTX TITAN og 512 bit i AMD Radeon R9 290X med henholdsvis seks og otte 64-bit-grænseflader).

ECC bits

I systemer med fejlkorrektionshukommelse (ECC) tælles den ekstra bredde af grænsefladerne (typisk 72 i stedet for 64 bit) ikke i båndbreddespecifikationer, fordi de ekstra bits ikke er tilgængelige til lagring af brugerdata. ECC-bits betragtes bedre som en del af hukommelseshardwaren snarere end som information gemt i den hardware.

Se også

Referencer

Generel

eksterne links