ArticleslgStudy

computer science

Hardware acceleration

Hardware acceleration is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Hardware acceleration rather than just read about it. In short: Hardware acceleration is the use of computer hardware, known as a hardware accelerator, to perform specific functions faster than can be done by software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calculated by software running on a CPU can also be calculated by an appropriate hardware accelerator, or by a combination of both.

Hardware acceleration — main illustration
Hardware acceleration — illustration

Key takeaways

  • Hardware acceleration belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Hardware acceleration to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Hardware acceleration from memory before moving on to harder problems.

Reference excerpt

Hardware acceleration is the use of computer hardware, known as a hardware accelerator, to perform specific functions faster than can be done by software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calculated by software running on a CPU can also be calculated by an appropriate hardware accelerator, or by a combination of both. To perform computing tasks more efficiently, generally one can invest time and money in improving the software, improving the hardware, or both. There are various approaches with advantages and disadvantages in terms of decreased latency, increased throughput, and reduced energy consumption. Typical advantages of focusing on software may include greater versatility, more rapid development, lower non-recurring engineering costs, heightened portability, and ease of updating features or patching bugs, at the cost of overhead to compute general operations. Advantages of focusing on hardware may include speedup, reduced power consumption, lower latency, increased parallelism and bandwidth, and better utilization of area and functional components available on an integrated circuit; at the cost of lower ability to update designs once etched onto silicon and higher costs of functional verification, times to market, and the need for more parts. In the hierarchy of digital computing systems ranging from general-purpose processors to fully customized hardware, there is a tradeoff between flexibility and efficiency, with efficiency increasing by orders of magnitude when any given application is implemented higher up that hierarchy (that is, towards the more customized end). This hierarchy includes general-purpose processors such as CPUs, more specialized processors such as programmable shaders in a GPU, applications implemented on field-programmable gate arrays (FPGAs), and fixed-function implemented on application-specific integrated circuits (ASICs). Hardware acceleration is advantageous for performance, and practical when the functions are fixed, so updates are not as needed as in software solutions. With the advent of reprogrammable logic devices such as FPGAs, the restriction of hardware acceleration to fully fixed algorithms has eased since 2010, allowing hardware acceleration to be applied to problem domains requiring modification to algorithms and processing control flow. The disadvantage, however, is that in many open source projects, it requires proprietary libraries that not all vendors are keen to distribute or expose, making it difficult to integrate in such projects.

Overview Integrated circuits are designed to handle various operations on both analog and digital signals. In computing, digital signals are the most common and are typically represented as binary numbers. Computer hardware and software use this binary representation to perform computations. This is done by processing Boolean functions on the binary input, and then outputting the results for storage or further processing by other devices.

Computational equivalence of hardware and software Because all Turing machines can run any computable function, it is always possible to design custom hardware that performs the same function as a given piece of software. Conversely, software can always be used to emulate the function of a given piece of hardware. Custom hardware may offer higher performance per watt for the same functions that can be specified in software. Hardware description languages (HDLs) such as Verilog and VHDL can model the same semantics as software and synthesize the design into a netlist that can be programmed to an FPGA or composed into the logic gates of an ASIC.

Stored-program computers The vast majority of software-based computing occurs on machines implementing the von Neumann architecture, collectively known as stored-program computers. Computer programs are stored as data and executed by processors. Such processors must fetch and decode instructions, as well as load data operands from memory (as part of the instruction cycle), to execute the instructions constituting the software program. Relying on a common cache for code and data leads to the "von Neumann bottleneck", a fundamental limitation on the throughput of software on processors implementing the von Neumann architecture. Even in the modified Harvard architecture, where instructions and data have separate caches in the memory hierarchy, there is overhead to decoding instruction opcodes and multiplexing available execution units on a microprocessor or microcontroller, leading to low circuit utilization. Modern processors that provide simultaneous multithreading exploit under-utilization of available processor functional units and instruction level parallelism between different hardware threads.

Hardware execution units Hardware execution units do not in general rely on the von Neumann or modified Harvard architectures and do not need to perform the instruction fetch and decode steps of an instruction cycle and incur those stages' overhead. If needed calculations are specified in a register transfer level (RTL) hardware design, the time and circuit area costs that would be incurred by instruction fetch and decoding stages can be reclaimed and put to other uses. This reclamation saves time, power, and circuit area in computation. The reclaimed resources can be used for increased parallel computation, other functions, communication, or memory, as well as increased input/output capabilities. This comes at the cost of general-purpose utility.

… excerpt ends here. Continue reading the full article.

Illustrations

Hardware acceleration: A cryptographic accelerator card allows cryptographic operations to be performed at a faster rate.
A cryptographic accelerator card allows cryptographic operations to be performed at a faster rate.

Worked examples

Example 1 — a first encounter with Hardware acceleration

Start with the simplest possible case. Write down what Hardware acceleration claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Hardware acceleration before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Hardware acceleration ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Hardware acceleration

In research
Hardware acceleration appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Hardware acceleration in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Hardware acceleration is common in secondary-school and first-year university syllabi. It links to neighbouring topics Application-specific integrated circuits, Central processing unit, Computer optimization, so understanding it makes those chapters shorter.
In everyday life
Look for Hardware acceleration outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “Hardware acceleration” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Hardware acceleration in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Hardware acceleration means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Hardware acceleration out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Hardware acceleration in simple terms?

Hardware acceleration is the use of computer hardware, known as a hardware accelerator, to perform specific functions faster than can be done by software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calculated by software running on a CPU can al…

Why does Hardware acceleration matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Hardware acceleration?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Hardware acceleration.

Tags

  • Application-specific integrated circuits
  • Central processing unit
  • Computer optimization
  • Gate arrays
  • Graphics hardware
  • Hardware acceleration

Keep exploring