The Use of Mini-Vector Instructions for Implementing High-Speed Feedback Controllers on General-Purpose Computers

K. Skadron, M. Humphrey, B. Huang, E. Hilton, J. Luo, and P. Allaire.
In Proc. of the 3rd Workshop on Media and Stream Processors, Dec. 2001, held in conjunction with the 34th Annual ACM/IEEE International Symposium on Microarchitecture, Austin, TX.

This paper describes the use of Intel Pentium-III SSE instructions for high-order control computations in a high-spin-rate flywheel. This application is representative of many control environments that require both high performance and real-time guarantees. We find that the SSE instructions are able to provide a dramatic increase in performance but that they are difficult to use unless the programmer is provided with a simple API. Unfortunately, the resulting abstraction means that some of the potential gains are lost to function-call overhead, and use of the API still requires substantial interaction between the controls engineer and the experienced SSE programmer. The use of SSE entails a tension between performance and ease of use that is not easily resolved.

Available in ps or pdf