» »

USB 3.0 črno na belem

1
2
»

poweroff ::

Hmm, o teh 15-20% ne vem nič. Ampak DMA pomeni tole:Direct memory access (DMA) is a feature of modern computers and microprocessors that allows certain hardware subsystems within the computer to access system memory for reading and/or writing independently of the central processing unit. With DMA, the CPU would initiate the transfer, do other operations while the transfer is in progress, and receive an interrupt from the DMA controller once the operation has been done.

Ne razumem kaj tukaj ni jasno.
sudo poweroff

MrStein ::

A treba narisati ?
Če prenos deluje brez CPU, kaj počne CPU ?
Zakaj ni prost ?

Recimo kot je prost, ko teče DMA prenos na SATA vodilu. Ali bilokaterem drugem.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Mavrik ::

Glej, tebi očitno ni jasno kako DMA prenos deluje. Procesor pove DMA kontrolerju s kod naj prenaša, kam v pomnilnik naj prenaša in koliko, potem pa se umakne z vodila. Tako procesor NE sodeluje pri DMA prenosu, kar je tudi celotna poanta stvari.
The truth is rarely pure and never simple.

kriko1 ::

Zato ker je Direct Memory Access. Torej dostop do pomnilnika se vrži mimo procesorja, ti pa kopiraš iz diska, kateri ima še nek FS zraven.
Ti meriš čisto nekaj drugega.

Zgodovina sprememb…

  • spremenil: kriko1 ()

TESKAn ::

A treba narisati ?
Če prenos deluje brez CPU, kaj počne CPU ?
Zakaj ni prost ?

Recimo kot je prost, ko teče DMA prenos na SATA vodilu. Ali bilokaterem drugem.


Ko enota konča DMA prenos, je jasno, da bo moral glavni CPU opravit, karkoli se bo s temi podatki naredilo. To počne CPU, sprocesira podatke, ko so ti enkrat v pomnilniku. Samo kopiranje podatkov z naprave v RAM pa poteka brez posredovanja CPUja.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

poweroff ::

No, so ti že drugi razložili. Skratka, ko se podatki zapišejo v RAM, CPU ne sodeluje, ko pa se iz RAM-a zapišejo na disk, pa CPU seveda mora sodelovati.

Če pa ti samo pišeš v RAM (recimo naložiž exploit kodo) ali pa bereš iz RAM-a (recimo šifrirne ključe), se pa procesor lahko mirno objema z Windowsi in ne opazi, da mu nek USB ali firewire krade kritične podatke. :D
sudo poweroff

MrStein ::

Zgleda da res moram narisati:
- HDSpeed (samo bere sektorje z diska, nato ne počne z njim NIČ, tudi FS-ja ni nobenga)
- pri branju z SATA diska : CPU load 0 do 1 %
- pri branju z USB diska : CPU load 10-20 %

Torej.

A gre za dva "različna" DMA postopka ?
Enkrat CPU naredi eno, v drugem primeru pa nekaj čist drugega ?

kriko1:
Ti meriš čisto nekaj drugega.

Če se po tvoje to meri drugače, pa povej kako.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

TESKAn ::

Jah, USB in SATA disk sta dve različni stvari in nimata enako velikega bufferja. IMO ima tvoj USB disk veliko manjši prostor v RAMu za DMA prenose, kar pomeni da prenaša enako velik podatek v več kosih, kar pomeni večkratno posredovanje CPUja. Recimo 1 GB velik podatek, 10 MB buffer za USB in 100 MB buffer za disk. Za USB bo CPU posredoval 100krat, za SATA pa 10krat. In imaš desetkrat večjo obremenitev pri prenosu z USBja, kot z SATA diska. In tudi če podatke potem vržeš stran - še zmeraj imaš prekinitev, še zmeraj mora CPU sprožit naslednji prenos.


Mind you, zgornje številke so hipotetične in ne odražajo realnega stanja, so samo za ponazoritev (možne) situacije. Da se ne bo kdo obešal na velikost bufferjev :).
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

Zgodovina sprememb…

  • spremenil: TESKAn ()

Jst ::

Meni in MrStein-u ni jasno naslednje:

DMA: Direct Memory Access. Vsi sodelujoči vemo, da kadar ima naprava možnost DMA, CPU izvrši samo interrupt-e. Kar pobere eno malenkost; kakšen odstotek CPU časa. A ko priklopiš USB ključ, zunanji disk v ohišju preko USB, in pretakaš podatke, očitno DMA ne dela. Vsaj ne po svoji definiciji. Zakaj? Ker je med tem, ko prenašaš podatke, procesor obremenjen. In ne neko malenkost, ampak kar poštenih nekaj deset odstokov CPU časa. In to ni značilno samo za MS platformo. Enako je na linuxu in *bsdju.

Kadar Disk ali pa CD/DVD Rom, BluRay prenaša podatke, CPU ni obremenjen, če uporablja DMA. Če vklopiš PIO, gre vse preko procesorja. Kar zgleda, da se dogaja, ko prenašaš podatke preko USBja.

Obstaja pa še druga razlaga. USBjev protokol je spisan bedasto in implementacija ne more biti kaj drugega, kot bedasta in trati CPU za *brezveze.*
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

Utk ::

USB že uporablja DMA, ampak v resnici niso stvari tako idealne. Če ti kopiraš 1 giga je to še zmeraj ogromno prekinitev in vsega hudiča, usb pa vseeno dela malo drugače kot sata disk, bufferji niso enako veliki itd.

MrStein ::

Še drugi sistem:
- pri branju z diska preko firewire: CPU load 0 do 2 %
- pri branju z diska preko USB : CPU load 10-20 %

Hh, kot če bi delal znanstvene poskuse, da potrdim, da je sonce okroglo ... :))
Ali voda mokra... :)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
1
2
»


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Specifikacije za USB4 dokončane

Oddelek: Novice / Matične plošče
144483 (2356) Lonsarg
»

Hitrost USB 3.1 v praksi

Oddelek: Novice / Diski
3616244 (13274) MrStein
»

USB Type-C prinaša več kot le obrnljivost

Oddelek: Novice / Zasloni / projektorji / ...
2617825 (15617) Lonsarg
»

Prihaja obrnljiv USB (strani: 1 2 )

Oddelek: Novice / Zasloni / projektorji / ...
6529636 (25477) Mavrik
»

USB 2.0

Oddelek: Novice / --Nerazporejeno--
52080 (2080) BigFoot

Več podobnih tem