Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Realistically, if you want this level of detail control you <em>are</em> going to end up having to write your own low-level drivers.</p> <p>Your constraint about avoiding I/O buffering and scheduling may be particularly challenging - you might avoid DMA, but a modern processor has its I/O rather decoupled from internal operations for performance reasons. Perhaps if you can fully disable all interrupts you might at least be able to timestamp when you do things. You will probably want the drive on it's own interface adapter, certainly not sharing with a running filesystem. </p> <p>Doing things from userspace would probably require working by means of proxies in the kernel - you'll need to do your timing critical things on the kernel side though.</p> <p>A far simpler solution, if it would meet your needs, would be to use a USB-to-SATA or PATA adapter. You can tell the existing kernel drivers to ignore the VID/PID using the quirks mode of modprobe, then talk to the device via libusb from userspace. However, there will certainly be latency there.</p> <p>For the finest level of control, you probably need to connect the drive to an embedded processor which has no I/O buffering, or perhaps even an FPGA. This was not particularly hard to do for low data rates with PATA, SATA probably requires specialized transceivers but may not be out of the realm of possibility (or perhaps you can work through one of the adapters). You would probably end up connecting this custom peripheral to a PC via USB or even a serial port, and using that to issue tasks and obtain results (would be convenient if you set it up so the PC can download the device's firmware/bitstream, so you have flexibility).</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload