Hi Mark,

as interesting as your point is, that's not something that
can be fixed within the scope of GNU Radio or even UHD...

Anyhow, I'm not really convinced that multiple DMA transfers are always faster than copying data using memcpy - at least if those DMA transfers
copy only a few kilobytes, as is the case with packets from network devices.
The fact that packets are of limited size is not really a problem of current computing architectures - it's a consequence of having packet networks. Of course, it would be nice if your hardware would be able to actually stream data into your userland, that somehow has the (zero overhead) capability to tell the hardware to send the next sample - but in reality, hardware-to-cpu-transfers usually happen en block, and that is just fine for most applications, since there is little use of having samples one after another; therefore, some buffering is always necessary (and will always be). For the sake of adaptivity, hardware supplied data most probably won't be written to copy device data to multiple RAM addresses, since the data from the device usually needs some processing (hence the driver).
So in effect, in most imaginable cases a device will do a single
DMA transfer to RAM.

Greetings,
Marcus

_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to