Qual è la massima velocità tipica possibile con un'unità USB 2.0?


73

Ricevo solo 30 MB / sec tra il mio computer e un'unità USB, nonostante il fatto che USB 2.0 supporti i trasferimenti 480 MB / sec (o 60 MB / sec). (Pertanto, sto ottenendo solo la metà della velocità nominale) C'è qualcosa di presente nello standard USB che dovrebbe tradursi in tali velocità a metà apparente?


6
Massima velocità tipica? Non è un ossimoro?
Mehrdad,

3
@Mehrdad: Non proprio. La velocità massima tipica per un trasferimento lan gigabit è compresa nell'intervallo 100 MB / s, anche se la velocità teorica è maggiore.
Billy ONeal

3
Oh, allora intendi la massima velocità pratica , giusto?
Mehrdad,

3
@Mehrdad: stessa cosa. Si.
Billy ONeal

Hai qualche tipo di compressione o forse più scanner antivirus in esecuzione? Prova a disabilitarli. Assicurarsi che il cavo sia classificato per USB 2.0. Se è vecchio, potrebbe essere un cavo con classificazione più lenta. Presumo che avresti detto qualcosa se fosse passato attraverso un hub USB. È lento per altri dispositivi, come un'unità flash (è necessario verificarne la velocità di trasferimento nominale).
KCotreau,

Risposte:


43

USB 2 utilizza frame da 1 millisecondo e in modalità High Speed ​​(480 Mb / s) sono divisi in 8 micro frame. La dimensione massima dei pacchetti di massa (utilizzata dai dispositivi di archiviazione di massa USB) è di 512 byte. Secondo questo documento molto informativo il massimo teorico è di 13 pacchetti per microframe. Quindi la velocità massima teorica di un'unità USB 2 è:

1000 * 8 * 512 * 13 = 53248000 ~ = 53 MB / s

Questo altro documento di Cypress afferma che alla fine raggiungono 43 MB / s .

In pratica il limite sarà di solito il flash stesso.

Modifica: queste informazioni sono in realtà anche nelle specifiche USB 2 .

tabella delle specifiche USB


1
Dalla mia esperienza, puoi sottrarre il 20% di sconto sulla maggior parte delle stime della larghezza di banda per le spese generali. Quindi è una questione di hardware. Lo standard può essere lo stesso ma la qualità dell'hardware differisce molto.
Don Curtis,

1
Il primo documento Cypress afferma: "Anche questo limite [di 13 pacchetti] non è realizzabile con i controller host attuali, che possono ricevere 10 pacchetti bulk / microframe o inviare 8 pacchetti bulk / microframe" 10 pacchetti ci danno 42 MB / sec, che è il citato spesso il limite del "mondo reale" di 30-40 MB / s
nponeccop,

26

L'unità flash è il collo di bottiglia. Non possono raggiungere il massimo teorico di 60 MB / s. Ecco un estratto da Wikipedia :

Le moderne unità flash hanno una connettività USB 2.0. Tuttavia, al momento non usano i 480 Mbit / s (60 MB / s) completi che la specifica USB 2.0 Hi-Speed ​​supporta a causa delle limitazioni tecniche inerenti al flash NAND. Le unità più veloci attualmente disponibili utilizzano un controller a doppio canale, sebbene siano ancora notevolmente inferiori alla velocità di trasferimento possibile da un disco rigido di generazione corrente o alla velocità massima USB ad alta velocità. (...)

Le unità veloci tipiche dichiarano di leggere fino a 30 megabyte / s (MB / s) e di scrivere a circa la metà di quella velocità. Questo è circa 20 volte più veloce dei dispositivi USB "full speed" che sono limitati a una velocità massima di 12 Mbit / s (1,5 MB / s).


6
Non è un'unità flash. Sto copiando su questo -> amazon.com/Western-Digital-Passport-Essential-Portable/dp/… - Sto chiedendo quale sia il limite dell'interfaccia, non su un dispositivo specifico. (Voglio sapere se il dispositivo sta raggiungendo il limite pratico; questo è il motivo di questa domanda in primo luogo)
Billy ONeal

1
Scusa, ho frainteso la tua domanda. Non hai specificato e 30 MB / s è la velocità normale per le unità flash, quindi ho pensato che ne stavi usando uno.
nmat,

Vedo. D'altra parte, non ho davvero chiesto quale fosse il collo di bottiglia, vero? :)
Billy ONeal

4
Onestamente, non penso che uno standard abbia dei limiti. Uno standard ha un massimo teorico e l'implementazione generalmente lo limita. Quindi, se vuoi conoscere la causa della bassa velocità, devi guardare l'implementazione. In caso di unità flash il problema è nella memoria flash NAND e in caso di unità disco rigido il problema è nella logica del controller. Anche i controller ad alta velocità superano a malapena i 30 MB / s.
nmat

1
Non penso che sia una chiavetta USB, sto trasferendo da un SSD a un
SSD

20

Circa 30 MB / sec è la velocità di trasferimento massima abbastanza tipica.

Le connessioni USB 1.0 e USB 2.0 sono half-duplex, il che significa che i dati scorrono in una sola direzione alla volta. La connessione condivisa tra le due direzioni è probabilmente il motivo principale del rallentamento della velocità di trasferimento prevista.

In confronto, USB 3 ed Ethernet sono full duplex e soddisfano meglio le velocità di trasferimento previste.

Nella mia macchina, la velocità di un'unità flash USB2 non supera mai i 33 MB / s nell'applicazione di test, anche se Windows ha registrato una velocità di 33-37 MB / s. Ho eseguito alcuni test e abilitato la cache del disco (proprietà del dispositivo) e aumentato la dimensione massima del trasferimento USB a 2 MB (KB2581464) ma non sono riuscito a renderlo più veloce.


7

L'interfaccia USB 2.0 può essere un limite a causa della segnalazione e del sovraccarico dei comandi, nonché della spaziatura tra i pacchetti.

Ho un SSD veloce collegato tramite USB 2.0. L'unità è molto più veloce dell'interfaccia (di oltre un fattore 10).

La velocità di lettura raggiunge un massimo di 33 MB / se la velocità di scrittura a 17,5 MB / s. Le velocità di scrittura sono quasi il 50% più lente a causa di una verifica-lettura dopo la scrittura e del fatto che il segnale USB è half-duplex, come menziona un'altra risposta.


Sembra un problema con il controller. Vedo spesso velocità di scrittura molto più elevate di 17,5 MB / s, anche con unità relativamente economiche, tramite USB 2.0.
Billy ONeal,

Hai scritto la memorizzazione nella cache? Sto parlando di numeri grezzi effettivi che eseguono un programma di benchmark del disco usando write withify.
Adisak,

1
I programmi di benchmarking del disco utilizzano spesso parametri non realistici per questi controller USB. L'USB ha un overhead molto elevato per oggetto o per trasferimento associato al passaggio alla modalità bulk. La copia di file di grandi dimensioni sull'unità USB non presenta questo problema. Scrivere nella cache non potrebbe avere un effetto eccessivo dato che sono stato in grado di mettere immediatamente l'unità in un'altra macchina e i dati non erano corrotti.
Billy ONeal,

Le chiavette USB hanno spesso una scrittura più lenta della velocità di lettura, ma la differenza di velocità non è dovuta all'USB. Puoi acquistare unità USB più veloci che scrivono a velocità più elevate.
Dan Buhler,

6

Con un iMac a metà 2007 e un disco Verbatim USB2 che trasferisce i dati su un'unità FW800 ottengo 36-37 MB / s. È già molto buono per USB2.

Se aggiungo un secondo trasferimento da un altro disco USB2 (Packard Bell) collegato allo stesso hub USB2 alla stessa unità FW800, la velocità di trasferimento combinata aumenta a 42 MB / s. Questo è eccezionale ed è la velocità di trasferimento più alta che abbia mai visto su USB2.

Più di 35-40 MB / s su USB 2.0 è praticamente impossibile e stavo già dedicando un controller USB2 solo per quei dischi, senza mouse o altri dispositivi che interferivano.


4

USB 2.0 supporta la velocità di segnalazione di 480 Mb / s . Sulla pagina di Wikipedia, si dice che la velocità effettiva è fino a 35 MB / s. Vi è una disparità perché i bit non vengono generalmente trasmessi tra dispositivi nello stesso modo in cui sono rappresentati internamente. È necessario tenere conto di una serie di fattori quando si trasmettono dati tra dispositivi, come l'interferenza elettromagnetica.

http://en.wikipedia.org/wiki/8b/10b_encoding

Il link sopra è un esempio di uno schema di codifica. È utilizzato da USB 3.0.


1
8b10b è un sovraccarico del 20%. Il 20% di sconto su 480Mbit è 384Mbit è ~ 48 MB / s. Ancora significativamente più veloce di quello che vedo in pratica ovunque.
Billy ONeal,

3

Non ho mai pensato molto al calcolo della velocità, ma chiaramente c'è un vero sovraccarico associato a questo tipo di trasferimento. Ho cercato su Google e ho trovato post dopo post con velocità come hai descritto, facendomi capire che sei su qualcosa.

Ho appena estratto un'unità esterna Seagate da 1 TB USB 2.0, l'ho formattata e ho deciso di copiare un campionamento sufficientemente grande da poter essere testato con: 13.595.211.905 byte (circa 12 GB). Sto eseguendo Symantec Endpoint Protection AV.

Secondo questa calcolatrice , avrebbe dovuto impiegare solo 3:46 minuti a copiarlo con un sovraccarico dello 0%, ma in realtà ci sono voluti 9:17 e la mia velocità è scesa a 23,9 MB / sec.

Ho quindi riavviato (per cancellare la memoria) e l'ho provato senza il mio AV in esecuzione e ci sono voluti ancora 9:15, o solo 2 secondi in meno (suppongo che sia almeno una buona notizia per Symantec AV).

Sembrerebbe che quelli siano davvero "numeri teorici".


PS La velocità di 480 Mb è per tutti i dispositivi su un hub, ma nei miei test era davvero solo l'unità e il mouse, e dubito che il mouse abbia avuto un grande impatto.
KCotreau,

1
Circa 24-26 MB / s è la velocità che ho visto su molti dispositivi che utilizzano USB 2.0
Sathyajith Bhat

1

Questo post è un po 'vecchio, quindi non sono sicuro che sia ancora pertinente o utile, ma le velocità USB 2 normalmente raggiungono il massimo a 280 Mbps (35 Mbps) a causa dell'accesso al bus.

Tratto da Wiki:

USB 2.0 è stato rilasciato nell'aprile 2000, aggiungendo una velocità massima di segnalazione superiore a> 480 Mbit / s chiamata High Speed, oltre alla segnalazione USB 1.x Full Speed> velocità di 12 Mbit / s. A causa dei vincoli di accesso al bus, la velocità effettiva della> velocità di segnalazione ad alta velocità è limitata a 35 MB / so 280 Mbit / s.

Spero che lo chiarisca ...


0

Ogni catena è forte solo quanto il suo anello più debole. Le prestazioni di trasferimento potenzialmente deboli quando si utilizzano dispositivi USB2 includono tutto dal firmware del controller host, dal software del driver, dai cavi fisici utilizzati (più corti e più spessi possono essere leggermente migliori?) E probabilmente soprattutto dagli stessi dispositivi connessi stessi e da qualsiasi firmware, chip flash / cache e sicuramente girare le prestazioni del disco, un noto collo di bottiglia della larghezza di banda.

Controllare in ordine logico la larghezza di banda I / O disponibile - Prestazioni processore / controller / Prestazioni cache DRAM L1 / L2 / Prestazioni chip firmware / memoria flash quindi con un ordine di grandezza Prestazioni memoria disco con rotazione lenta.

Le prestazioni massime teoriche dichiarate (480 megaBIT o 60 megabyte al secondo) sono solo per il bus e non per le cose ad esso collegate e abbastanza spesso le prestazioni effettive osservate sono molto inferiori.


-2

Le unità disco fisso da 5400 rpm con USB2 sono limitate dall'hardware dell'unità e dal controller SATA. Anche le unità a 7200 rpm o 10.000 rpm in un buon caddy USB non sono davvero all'altezza. È necessario un SSD per raggiungere il limite USB2. La maggior parte della "larghezza di banda perduta" è in realtà la latenza del controller, dove ci vuole solo tempo per voltarsi dalla scrittura dei dati all'invio del segnale di completamento.


2
I miei dischi rigidi da 5400 RPM possono fare molto meglio di 30 MB / s
Billy ONeal

@BillyONeal Può fare, sì, ma lo farà? In scenari di cattivo utilizzo (I / O casuali) che possono scendere facilmente a 1 MB / s.
Maarten Bodewes,

1
@MaartenBodewes: si trattava di una domanda I / O sequenziale: velocità "massima", non velocità per un determinato carico di lavoro.
Billy ONeal
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.