Ocasionalmente, são anunciadas novas tecnologias de computação que apresentam “aceleração de hardware”, mas esse termo raramente é explicado nesses anúncios. Na verdade, é relativamente simples de entender, felizmente. A maior parte do processamento em um computador ocorre no software executado na CPU de uso geral. É possível, no entanto, criar um processador separado projetado especificamente para realizar uma pequena variedade de tarefas ou mesmo apenas uma única tarefa. Utilizar um processador separado como este é chamado de aceleração de hardware.
Benefícios e desvantagens da aceleração de hardware
A aceleração de hardware vem com dois benefícios principais de desempenho. Em primeiro lugar, os processadores projetados para realizar tipos específicos de lógica são mais rápidos e mais eficientes na execução de uma tarefa do que uma CPU de uso geral seria. Em segundo lugar, ao descarregar essa carga de processamento, a CPU principal tem mais poder de processamento livre para se dedicar a outras tarefas. Outras vantagens incluem maior paralelismo, menor consumo de energia e maior eficiência.
O uso de processadores separados dedicados para aceleração de hardware significa que adicionar novos recursos ou mesmo corrigir bugs pode ser difícil, se não impossível em alguns casos sem substituir o hardware. Também é significativamente mais difícil e mais caro desenvolver novo hardware do que desenvolver software.
Tipos de aceleração de hardware
Atualmente, existem três tipos de aceleração de hardware: processadores especializados, FPGAs e ASICs. UMA processador especializado é um processador separado que usa hardware otimizado para o tipo ou tipos de lógica. Um exemplo popular de processador especializado é a GPU. Uma GPU moderna contém um conjunto de processadores projetados para certas tarefas, como sombreamento e traçado de raio.
Um Field Programmable Gate Array ou FPGA é um processador que pode ser configurado pelo cliente após a fabricação. Um FPGA pode ser programado para ser adequado a uma variedade de funções lógicas diferentes, dependendo da tarefa para a qual está sendo projetado. Como os FPGAs são reprogramáveis, eles são populares para o desenvolvimento de processadores ASIC.
ASICs ou circuitos integrados específicos de aplicativos são processadores otimizados especificamente para executar uma única tarefa. Com ASICs, nunca há qualquer intenção de o processador ser usado para outra coisa senão exatamente para o que foi projetado. Por meio dessa profundidade de otimização, os ASICs são muito eficientes na execução de suas tarefas.