Co to jest akceleracja sprzętowa?

click fraud protection

Od czasu do czasu ogłaszane są nowe technologie komputerowe, które oferują „akcelerację sprzętową”, ale termin ten jest rzadko wyjaśniany w tych ogłoszeniach. Na szczęście jest to stosunkowo proste do zrozumienia. Większość przetwarzania na komputerze odbywa się w oprogramowaniu działającym na procesorze ogólnego przeznaczenia. Możliwe jest jednak stworzenie oddzielnego procesora specjalnie zaprojektowanego do wykonywania niewielkiego zakresu zadań lub nawet pojedynczego zadania. Używanie takiego oddzielnego procesora nazywa się akceleracją sprzętową.

Zalety i wady akceleracji sprzętowej

Przyspieszenie sprzętowe ma dwie główne zalety wydajności. Po pierwsze, procesory zaprojektowane do wykonywania określonych typów logiki są szybsze i bardziej wydajne w wykonywaniu zadań niż procesory ogólnego przeznaczenia. Po drugie, odciążając to obciążenie przetwarzania, główny procesor ma więcej mocy obliczeniowej, którą może przeznaczyć na inne zadania. Inne zalety to zwiększona równoległość, mniejsze zużycie energii i zwiększona wydajność.

Zastosowanie dedykowanych oddzielnych procesorów do przyspieszania sprzętowego oznacza, że ​​dodawanie nowych funkcji lub nawet samo łatanie błędów może być trudne, jeśli nie niemożliwe w niektórych przypadkach bez wymiany sprzęt komputerowy. Tworzenie nowego sprzętu jest również znacznie trudniejsze i droższe niż tworzenie oprogramowania.

Rodzaje akceleracji sprzętowej

Obecnie istnieją trzy rodzaje akceleracji sprzętowej: wyspecjalizowane procesory, FPGA i ASIC. A wyspecjalizowany procesor to oddzielny procesor, który wykorzystuje sprzęt zoptymalizowany pod kątem zamierzonego typu lub typów logika. Popularnym przykładem wyspecjalizowanego procesora jest GPU. Nowoczesny procesor graficzny zawiera zestaw procesorów zaprojektowanych do określonych zadań, takich jak cieniowanie i ray tracing.

Field Programmable Gate Array lub FPGA to procesor zaprojektowany tak, aby można go było skonfigurować po wyprodukowaniu przez klienta. Układ FPGA można zaprogramować tak, aby spełniał szereg różnych funkcji logicznych, w zależności od zadania, do którego jest przeznaczony. Ponieważ układy FPGA można ponownie programować, są one popularne przy opracowywaniu procesorów ASIC.

Układy ASIC lub układy scalone specyficzne dla aplikacji to procesory zoptymalizowane specjalnie do wykonywania pojedynczego zadania. W przypadku układów ASIC nigdy nie ma zamiaru używać procesora do czegokolwiek innego niż dokładnie do tego, do czego został zaprojektowany. Dzięki tak głębokiej optymalizacji układy ASIC są bardzo wydajne w wykonywaniu swoich zadań.