Cosa significa "costo per bit"?


17

Sto leggendo i sistemi operativi di William Stallings : Internals and Design Principles (Settima edizione) e un passaggio sulla gerarchia della memoria mi ha confuso. Cosa intende l'autore quando menziona un "maggior costo per bit"?

Ecco cosa dice il paragrafo pertinente a pagina 24:

Come prevedibile, esiste un compromesso tra le tre caratteristiche chiave della memoria: capacità, tempi di accesso e costi. Una varietà di tecnologie viene utilizzata per implementare i sistemi di memoria e, attraverso questo spettro di tecnologie, valgono le seguenti relazioni:

  • Tempi di accesso più rapidi, maggior costo per bit
  • Maggiore capacità, minor costo per bit
  • Maggiore capacità, velocità di accesso più lenta

Capisco che più in basso si scende nella piramide della gerarchia di memoria, più lento è il tempo di accesso.

Ad esempio, un disco magnetico o una scheda SSD avranno tempi di accesso più lenti rispetto ai registri della CPU o alla cache o alla RAM.

Ma cosa significa che ci sarà un "maggior costo per bit"? Rallenta altri processi per accedere a questa memoria? Sembrerebbe controintuitivo in quanto i tempi di accesso dovrebbero essere più rapidi? Occupano solo più spazio e quindi ce n'è meno?


1
Potresti citare la frase / paragrafo / frase pertinente alla lettera?
Bob,

37
L'autore si riferisce al "costo" come spesa monetaria.
segatura,

8
L'autore sta cercando di evitare denominazioni specifiche in questa generalizzazione ... questa versione è presumibilmente più generica di "dollari per byte", "euro per yobibyte", "ha'pennies per stuzzichino", "pietre lucenti per tentativo" o "polli per qutrit"
CA

1
Non ti preoccupare, questo è un problema hardware.
Samuel,

1
Se riesci a ottenere 1 GB per $ 8, allora sono 8000000000 bit per $ 8, quindi sono $ 0,000000001 per ogni bit.
user253751,

Risposte:


26

Il costo per bit è il costo monetario (cioè in dollari e centesimi) per unità di memoria, tutto qui, vale a dire un modo per dire "supponendo che la quantità di memoria richiesta sia la stessa". (Si potrebbe anche dire il costo per concerto di memoria - ma menzionare la dimensione implica un caso d'uso. Un po 'è senza dubbio la quantità più piccola che può essere memorizzata)


7
Mi chiedo se non ci pensi troppo. Il costo può essere pensato in $ (o centesimi) per memorizzare la quantità di memoria. A rischio di confonderti di più (spero di no) - se voglio archiviare 1 TB di dati, posso archiviarli su un SSD o su un disco rigido - l'SSD sarà veloce, ma costerà circa $ 500, mentre il disco rigido potrebbe costare $ 100. In questo modo tempi di accesso più rapidi significano più unità di memoria. Allo stesso modo, se voglio archiviare TB di dati mi costerà circa $ 160, al contrario di dire $ 60 per 1 TB - quindi il costo per TB per 5 TB è di $ 40 rispetto a $ 60 per 1 TB e quindi un costo per bit inferiore ...
davidgo,

5
Il "costo per bit" equivale al costo per megabyte per i dischi rigidi: ho acquistato un disco rigido per il mio Atari nel 1989 ed era $ 250 per 10 MB, ora puoi ottenere 1 TB per $ 60, quindi il costo per megabyte è diminuito. ..
Solar Mike,

4
Lo stavo pensando troppo. Quindi il "costo" si riferisce a quanto costerebbe la memoria per acquistare con la valuta. Ero confuso perché pensavo che si riferisse a qualche detrimento di qualche altra memoria di processo.
Darien Springer,

2
Mi fa piacere che sembri averlo capito ora.
davidgo,

2
Dato che la confusione del PO si concentra sulla parola "costo" (ovvero che significa costo in termini di denaro), suggerirei di incorporarlo nella risposta.
Jon Bentley,

26

Il costo per bit è solo il prezzo che devi pagare per una specifica quantità di memoria.

Se una certa quantità di memoria della marca X costa $ 20 e la stessa quantità della memoria della marca Y costa $ 25, allora la marca X ha un costo per bit migliore. Le differenze di costo per bit sono molto più pronunciate quando si confrontano diversi tipi di memoria (SRAM, DRAM, flash, SSD ...)


3

Oltre a queste altre risposte che menzionano giustamente che il costo per bit è la quantità di denaro per bit:

Se hai memoria che memorizza 1024 byte, sono 8192 bit. Se quella memoria ti costa $ 10, allora sarebbe $ 10 (costo) / 8192 bit o $ 0,001220703125 per bit. Se avessi memoria con un tempo di accesso più veloce, forse costerebbe invece $ 20, nel qual caso avresti $ 0,00244140625 per bit.

Faster access time: $0.00244140625  cost per bit 
Greater capacity:   $0.001220703125 cost per bit

1

Penso che la parte mancante di altre risposte sia ciò che Stallings sta dicendo sulla relazione perpetua tra i tre scenari:

Diciamo che hai un po 'di memoria, qualsiasi memoria, che costa $ 10 per una chiavetta da 1 GB con un tempo di accesso di 10 ns ... quindi $ 10 / GB.

Ciò che Stallings sta dicendo che se si desidera uno storage più veloce, costerà di più, ad esempio $ 15 per 1 GB con un tempo di accesso di 5 ns = $ 15 / GB - un costo per bit più elevato, rispetto alla memoria precedente.

Se desideri stick più grandi, potrebbe costarti $ 15 per 2 GB, questa volta riducendo il costo per bit - $ 7,50 per GB. Tuttavia, questo stick più grande avrà un tempo di accesso più lento, diciamo 12ns.

Tuttavia, potresti essere in grado di ottenere una versione premium dello stick più grande che ha ancora un tempo di accesso di 10 ns, ma questo costerebbe ancora di più - forse $ 18 ($ 9 / GB).

Come afferma Stallings, "esiste un compromesso tra le tre caratteristiche chiave della memoria: vale a dire capacità, tempi di accesso e costi". E suggerisce correttamente che, così come è attualmente il caso, questo era il caso delle precedenti tecnologie / generazioni di memoria, e lo sarà anche per le future tecnologie / generazioni di memoria.

[1GB = (1024) (1024) (1024) (8) = 8589934592 bit. Pertanto, il costo letterale per bit per la nostra memoria di $ 10 (sopra) sarebbe pari a $ 0,0000000012 per bit]


Anche se il tuo esempio funziona, di solito questo non viene applicato alla stessa tecnologia. Questa è un'affermazione molto nota nella progettazione dell'hardware e di solito significa che diverse tecnologie hanno proprietà diverse: ad esempio puoi avere una cache L1 piccola ma molto veloce e costosa o puoi ottenere GB quasi gratis quando usi la RAM DDR. E se fai un ulteriore passo in avanti puoi ottenere TB utilizzando un disco rigido. E così via. Sono gli ordini di grandezza che contano.
Voo

@Voo Mentre la scala è diversa, i principi sono gli stessi. Tuttavia, non è la grandezza che conta: è il principio che esiste un compromesso tra i fattori concorrenti. Puoi ottenere a buon mercato, veloce o grande, ma non tutti e tre. Uno potrebbe espandere l'argomento aggiungendo in dimensioni fisiche, consumo di energia / calore. Quando si progetta il proprio sistema operativo / applicazione / dispositivo / dispositivo, è necessario bilanciare queste cose.
CJM,

Sì, il principio è ciò che conta. Sto solo sottolineando l'uso generale nella comunità in cui viene generalmente utilizzata questa affermazione: la progettazione hardware. Ti preoccupi se leggere qualcosa dalla cache, dalla memoria o dal disco rigido, non se la tua memoria è del 5% più veloce o meno.
Voo

@Voo, sono con CJM e avrei pubblicato una risposta simile se non l'avesse già fatto. Questo non è solo usato nella progettazione hardware, ma è anche usato dagli architetti di sistema per determinare la migliore configurazione che possono permettersi.
Barmar,

-1

In particolare, i registri della CPU sono il tipo di memoria più veloce e costoso. Occupano il bene immobile più prezioso dell'intero PC. I vari livelli di cache sono più lontani dal calcolo effettivo e il tempo di propagazione del segnale elettrico inizia a essere considerato. Non puoi costruire tutto dai registri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.