Get 20M+ Full-Text Papers For Less Than $1.50/day. Start a 14-Day Trial for You or Your Team.

Learn More →

What is hardware/software partitioning?

What is hardware/software partitioning? Hardware/software partitioning is the problem of dividing an application's computations into a part that executes as sequential instructions on a microprocessor (the "software") and a part that runs as parallel circuits on some IC fabric like an ASIC or FPGA (the "hardware"), such as to achieve design goals set for metrics like performance, power, size, and cost. The circuit part commonly acts as a coprocessor for the microprocessor. For example, a video compression application may be partitioned such that most of the frame handling computations execute on a microprocessor, while the compute-intensive DCT (discrete cosine transformation) part of the compression application is offloaded to execute in a fast DCT coprocessor circuit. Circuits can execute some computations thousands of times faster than sequential instructions, due largely to their parallel execution. For example, if a computation consists of 100 multiplications of independent data items, then while a microprocessor would have to execute the multiplications one (or a few) at a time thus requiring hundreds of clock cycles, a circuit could potentially (subject to data availability) execute all 100 multiplications in parallel using 100 multipliers and thus requiring just 1 or a few clock cycles. Energy reductions can also result. http://www.deepdyve.com/assets/images/DeepDyve-Logo-lg.png ACM SIGDA Newsletter Association for Computing Machinery

What is hardware/software partitioning?

ACM SIGDA Newsletter , Volume 39 (6) – Jun 1, 2009

Loading next page...
 
/lp/association-for-computing-machinery/what-is-hardware-software-partitioning-n0DCg9BdCg
Publisher
Association for Computing Machinery
Copyright
The ACM Portal is published by the Association for Computing Machinery. Copyright © 2010 ACM, Inc.
ISSN
0163-5743
DOI
10.1145/1862900.1862901
Publisher site
See Article on Publisher Site

Abstract

Hardware/software partitioning is the problem of dividing an application's computations into a part that executes as sequential instructions on a microprocessor (the "software") and a part that runs as parallel circuits on some IC fabric like an ASIC or FPGA (the "hardware"), such as to achieve design goals set for metrics like performance, power, size, and cost. The circuit part commonly acts as a coprocessor for the microprocessor. For example, a video compression application may be partitioned such that most of the frame handling computations execute on a microprocessor, while the compute-intensive DCT (discrete cosine transformation) part of the compression application is offloaded to execute in a fast DCT coprocessor circuit. Circuits can execute some computations thousands of times faster than sequential instructions, due largely to their parallel execution. For example, if a computation consists of 100 multiplications of independent data items, then while a microprocessor would have to execute the multiplications one (or a few) at a time thus requiring hundreds of clock cycles, a circuit could potentially (subject to data availability) execute all 100 multiplications in parallel using 100 multipliers and thus requiring just 1 or a few clock cycles. Energy reductions can also result.

Journal

ACM SIGDA NewsletterAssociation for Computing Machinery

Published: Jun 1, 2009

There are no references for this article.