Automatic Instruction-Set Extensions with the Linear Complexity Spiral Search
Carlo Galuzzi, Dimitris Theodoropoulos, Roel J. Meeuws, Koen Bertels · 2008
In this paper we present a linear-complexity algorithm for the automatic identification and selection of multiple-input multiple-output instruction-set extensions under hardware resource constraints. Instruction generation is performed with a two-step method which generates a coverage of the application with single-output clusters of instructions and subsequently groups the single-output clusters in convex multiple input multiple output instruction-set extensions. In contrast with existing approaches, the convexity of the final cluster is guaranteed by construction and does not require additional checks of the clusters. The proposed approach can be applied directly to large kernels and does not impose limitations neither on the number of inputs and/or outputs, nor on the number of new instructions generated. Our results on well-known kernels show that the extended Instructions-Set allows to execute applications more efficiently and needing fewer cycles. Our results show that a significant overall application speedup is achieved even for large kernel (for ADPCM decoder the speedup is up to x2.2 and for TWOFISH encoder/decoder the speedup is up to x4.5).