Mailinglist Archive: opensuse (982 mails)

< Previous Next >
Re: [opensuse] write several usb flash keys at once
Hash: SHA1

On 2014-09-07 03:41, jdebert wrote:
On Sun, 07 Sep 2014 00:37:02 +0200 "Carlos E. R."
<robin.listas@xxxxxxxxxxxxxx> wrote:

On 2014-09-06 21:46, Cristian Rodríguez wrote: But, considering
that a flash stick writes much slower than what what the USB can
send, connecting a dozen sticks and writing to all of them
simultaneously is actually faster ;-)

Multiple devices can be written to/read from simultaneously on a
serial bus? Is that possible or even legal with the USB protocol?
It does not appear to be occurring on any system here. Reads &
writes consistently appear to be occurring one at a time. There's
only one physical data path and that happens to also be the command
path. How do you configure a USB system to read/write multiple
devices simultaneously? How do you avoid collisions?

Why do you think you have to do anything special? I have connected
half a dozen disks simultaneously and write to them /simultaneously/.
As far as things in computing occur really simultaneously, because the
CPU can only do *one* thing at a time (unless you have several cpus).

Look, basically you send, via the USB (a serial bus) a bunch of bytes
to write somewhere on some disk, and milliseconds later, while that
device is doing the actual write, it sends another (or the same,
doesn't matter) bunch of bytes to another disk. And another bunch to
another disk, etc. And command sequences, and reads commands from the
devices. The devices have identifiers, or addresses. Whatever.

To me, user or root, it does not matter at all if the USB is a serial
bus or parallel bus, or radio, or fiber, or psy power. To me it only
matters that I have connected to the computer, /somehow/, several
"disks", each one named differently: /dev/sdf, /dev/sdg, /dev/sdh,
/dev/sdi, /dev/sdj, etc. That's all that matters to me. I can have
many dolphin windows, or nautilus, or midnight commander, or "cp" in
many terminals, each copying the same or different files to any of the
"disks" or sticks in any direction whatsoever, any order,
simultaneously or not.

And it /looks/ simultaneous because each device takes some time to do
each write operation of 'n' bytes, and during that time the "bus" can
talk and write to another device, instead of just waiting.

You do not send data to write as single byte then wait. You send a
block of some size (I do not remember how many), probably whole
sector/block, as a stream of bytes, which is probably stored on a
local small ram on the device, and then the bus is free for another
operation with a different device. After some time I poll (ask) the
device for the result of the write operation. Or the device tells me.

- --
Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 "Bottle" at Telcontar)
Version: GnuPG v2.0.22 (GNU/Linux)

To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse+owner@xxxxxxxxxxxx

< Previous Next >