Issue No. 01 - Jan. (2013 vol. 62)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TC.2011.202
Emiliano Betti , University of Illinois at Urbana-Champaign, Urbana
Stanley Bak , University of Illinois at Urbana-Champaign, Urbana
Rodolfo Pellizzoni , University of Waterloo, Waterloo
Marco Caccamo , University of Illinois at Urbana-Champaign, Urbana
Lui Sha , University of Illinois at Urbana-Champaign, Urbana
Real-time embedded systems are increasingly being built using commercial-off-the-shelf (COTS) components such as mass-produced peripherals and buses to reduce costs, time-to-market, and increase performance. Unfortunately, COTS-interconnect systems do not usually guarantee timeliness, and might experience severe timing degradation in the presence of high-bandwidth I/O peripherals. Moreover, peripherals do not implement any internal priority-based scheduling mechanism, hence, sharing a device can result in data of high priority tasks being delayed by data of low priority tasks. To address these problems, we designed a real-time I/O management system comprised of 1) real-time bridges with I/O virtualization capabilities, and 2) a peripheral scheduler. The proposed framework is used to transparently put the I/O subsystem of a COTS-based embedded system under the discipline of real-time scheduling, minimizing the timing unpredictability due to the peripherals sharing the bus. We also discuss computing the maximum delay due to buffered I/O data transactions as well as determining the buffer size needed to avoid data loss. Finally, we demonstrate experimentally that our prototype real-time I/O management system successfully exports multiple virtual devices for a single physical device and prioritizes I/O traffic, guaranteeing its timeliness.
Real time systems, Servers, Processor scheduling, Bridges, Scheduling, Hardware, Delay, COTS, Real-time, Linux, input/output, peripheral, bus, scheduling
M. Caccamo, R. Pellizzoni, S. Bak, E. Betti and L. Sha, "Real-Time I/O Management System with COTS Peripherals," in IEEE Transactions on Computers, vol. 62, no. , pp. 45-58, 2013.