This Article 
 Bibliographic References 
 Add to: 
ASCENT: An Algorithmic Technique for Designing Hardware and Software in Tandem
November/December 2010 (vol. 36 no. 6)
pp. 838-851
Jules White, Virginia Tech, Blacksburg
Brian Doughtery, Vanderbilt University, Nashville
Douglas C. Schmidt, Vanderbilt University, Nashville
Search-based software engineering is an emerging paradigm that uses automated search algorithms to help designers iteratively find solutions to complicated design problems. For example, when designing a climate monitoring satellite, designers may want to use the minimal amount of computing hardware to reduce weight and cost while supporting the image processing algorithms running onboard. A key problem in these situations is that the hardware and software designs are locked in a tightly coupled cost-constrained producer/consumer relationship that makes it hard to find a good hardware/software design configuration. Search-based software engineering can be used to apply algorithmic techniques to automate the search for hardware/software designs that maximize the image processing accuracy while respecting cost constraints. This paper provides the following contributions to research on search-based software engineering: 1) We show how a cost-constrained producer/consumer problem can be modeled as a set of two multidimensional multiple-choice knapsack problems (MMKPs), 2) we present a polynomial-time search-based software engineering technique, called the Allocation-baSed Configuration Exploration Technique (ASCENT), for finding near optimal hardware/software codesign solutions, and 3) we present empirical results showing that ASCENT's solutions average over 95 percent of the optimal solution's value.

[1] M. Abdelhalim and S.-D. Habib, "Modeling Communication Cost and Hardware Alternatives in PSO Based HW/SW Partitioning," Proc. Int'l Conf. Microelectronics, pp. 111-114, Dec. 2007.
[2] M. Akbar, E. Manning, G. Shoja, and S. Khan, "Heuristic Solutions for the Multiple-Choice Multi-Dimension Knapsack Problem," Proc. Int'l Conf. Computational Science-Part II, pp. 659-668, 2001.
[3] E. Alba and J. Francisco Chicano, "Software Project Management with GAs," Information Sciences, vol. 177, no. 11, pp. 2380-2401, 2007.
[4] G. Antoniol, M. Di Penta, and M. Harman, "A Robust Search-Based Approach to Project Management in the Presence of Abandonment, Rework, Error and Uncertainty," Proc. Int'l Symp. Software Metrics, pp. 172-183, Sept. 2004.
[5] A. Barreto, M. Barros, and C. Werner, "Staffing a Software Project: A Constraint Satisfaction and Optimization-Based Approach," Computers and Operations Research, vol. 35, no. 10, pp. 3073-3089, 2008.
[6] E. Barros, W. Rosenstiel, and X. Xiong, "A Method for Partitioning UNITY Language in Hardware and Software," Proc. European Design Automation Conf. with EURO-VHDL, Sept. 1994.
[7] P. Chiu, Y. Chen, and K. Lee, "A Request Scheduling Algorithm to Support Flexible Resource Reservations in Advance," Proc. Canadian Conf. Electrical and Computer Eng., May 2004.
[8] L. Chung, Non-Functional Requirements in Software Engineering. Springer, 2000.
[9] J. Clark and J. Jacob, "Protocols Are Programs Too: The Meta-Heuristic Search for Security Protocols," Information and Software Technology, vol. 43, no. 14, pp. 891-904, 2001.
[10] T.H. Cormen, C.E. Leiserson, and R.L. Rivest, Introduction to Algorithms. MIT Press, 1990.
[11] S. Curtis, "The Magnetospheric Multiscale Mission...Resolving Fundamental Processes in Space Plasmas," NASA STI/Recon technical report N, Dec. 1999.
[12] K. Deb, "An Efficient Constraint Handling Method for Genetic Algorithms," Computer Methods in Applied Mechanics and Eng., vol. 186, nos. 2-4, pp. 311-338, 2000.
[13] R. Dick and N. Jha, "MOGAC: A Multiobjective Genetic Algorithm for Hardware-Software Cosynthesis of Distributed Embedded Systems," IEEE Trans. Computer-Aided Design of Integrated Circuits and Systems, vol. 17, no. 10, pp. 920-935, Oct. 1998.
[14] C. Gebotys and M. Elmasry, Optimal VLSI Architectural Synthesis: Area, Performance and Testability. Kluwer Academic Publishers, 1992.
[15] J. Gosling, Introductory Statistics. Pascal Press, 1995.
[16] M. Harman, "The Current State and Future of Search Based Software Engineering," Proc. Int'l Conf. Software Eng., pp. 342-357, May 2007.
[17] M. Harman and B. Jones, "Search-Based Software Engineering," Information and Software Technology, vol. 43, no. 14, pp. 833-839, 2001.
[18] P.-A. Hsiung, P.-H. Lu, and C.-W. Liu, "Energy Efficient Co-Scheduling in Dynamically Reconfigurable Systems," Proc. Int'l Conf. Hardware/Software Codesign and System Synthesis, pp. 87-92, Oct. 2007.
[19] P. Huber, Robust Statistics. Wiley, 1981.
[20] T. Ibaraki, T. Hasegawa, K. Teranaka, and J. Iwase, "The Multiple Choice Knapsack Problem," J. Operations Research Soc. of Japan, vol. 21, pp. 59-94, 1978.
[21] O. Ibarra and C. Kim, "Fast Approximation Algorithms for the Knapsack and Sum of Subset Problems," J. ACM, vol. 22, no. 4, pp. 463-468, 1975.
[22] S.E. Institute, "Ultra-Large-Scale Systems: Software Challenge of the Future," technical report, Carnegie Mellon Univ., June 2006.
[23] M. Islam, M. Akbar, H. Hossain, and E. Manning, "Admission Control of Multimedia Sessions to a Set of Multimedia Servers Connected by an Enterprise Network," Proc. IEEE Pacific Rim Conf. Comm., Computers, and Signal Processing, pp. 157-160, 2005.
[24] M. Kim, S. Banerjee, N. Dutt, and N. Venkatasubramanian, "Design Space Exploration of Real-Time Multi-Media MPSoCs with Heterogeneous Scheduling Policies," Proc. Int'l Conf. Hardware/Software Codesign and System Synthesis, pp. 16-21, 2006.
[25] E. Lagnese and D. Thomas, "Architectural Partitioning for System Level Design," Proc. Int'l Conf. Design Automation, pp. 62-67, June 1989.
[26] S. Martello and P. Toth, "Algorithms for Knapsack Problems," Surveys in Combinatorial Optimization, vol. 31, pp. 213-258, Elsevier Science, 1987.
[27] P. McMinn, "Search-Based Software Test Data Generation: A Survey," Software Testing, Verification & Reliability, vol. 14, no. 2, pp. 105-156, 2004.
[28] D. Saha, R. Mitra, and A. Basu, "Hardware Software Partitioning Using Genetic Algorithm," Proc. Int'l Conf. VLSI Design, pp. 155-160, Jan. 1997.
[29] Q. Tong, X. Zou, Q. Zhang, F. Gao, and H. Tong, "The Hardware/Software Partitioning in Embedded System by Improved Particle Swarm Optimization Algorithm," Proc. Fifth IEEE Int'l Symp. Embedded Computing, pp. 43-46, Oct. 2008.
[30] Y. Toyoda, "A Simplified Algorithm for Obtaining Approximate Solutions to Zero-One Programming Problems," Management Science, vol. 21, pp. 1417-1427, 1975.
[31] F. Vahid, D. Gajski, and J. Gong, "A Binary-Constraint Search Algorithm for Minimizing Hardware during Hardware/Software Partitioning," Proc. Conf. European Design Automation, pp. 214-219, Sept. 1994.
[32] P. Van Hentenryck, H. Simonis, and M. Dincbas, "Constraint Satisfaction Using Constraint Logic Programming," Constraint-Based Reasoning, MIT Press, 1994.
[33] D. Vanderster, N. Dimopoulos, and R. Sobie, "Metascheduling Multiple Resource Types Using the MMKP," Proc. Seventh IEEE/ACM Int'l Conf. Grid Computing, pp. 231-237, Sept. 2006.
[34] T. Wiangtong, P. Cheung, and W. Luk, "Comparing Three Heuristic Search Methods for Functional Partitioning in Hardware-Software Codesign," Design Automation for Embedded Systems, vol. 6, no. 4, pp. 425-449, 2002.

Index Terms:
Algorithms, computer aided software engineering, optimization methods, distributed computing.
Jules White, Brian Doughtery, Douglas C. Schmidt, "ASCENT: An Algorithmic Technique for Designing Hardware and Software in Tandem," IEEE Transactions on Software Engineering, vol. 36, no. 6, pp. 838-851, Nov.-Dec. 2010, doi:10.1109/TSE.2010.77
Usage of this product signifies your acceptance of the Terms of Use.