When designing a real-time system, it is of the utmost importance to ask:
How fast can the software react to an external event delivered by
the hardware components? How much this response time varies? Which is the worst
response time?
Despite the dependence on which computations need to be done by the real-time
software to solve the problem at hand, there is a lower bound on the response
time set by communication latency. External events are usually delivered
asynchronously, by the means of interrupt requests (IRQs). Therefore, it is
important to measure how long it takes for the real-time operating system to
answer IRQs.
We measure IRQ latency in a relatively modern computer running the
RTAI real-time OS. Despite having a recent motherboard, this computer still
possesses a parallel port (LPT) interface, which enables us to compare IRQ
delivery performance between PCI Express and LPT interfaces.
Our PCI Express interface is implemented by an Altera DE4 board, programmed with
an project designed employing the standard tool flow (Altera Qsys). This brings
us another interesting question – does the PCIe to Avalon bus abstraction
provided by Altera’s tool flow impose significant overhead on the system?
Although we do not compare our design to any custom solution communicating
directly through the PCIe protocol, we are able to assess if IRQs are answered
in a reasonable time when compared to the traditional LPT interface.