Komputery stochastyczne

Według ekspertów, aby umożliwić pracę z wystarczająco niskim zużyciem energii komputery przyszłości będą pracować ignorując błędy, zamiast starać się upewnić że wszystkie operacje matematyczne zostały wykonane prawidłowo.

Aktualnie komputery są perfekcjonistami - zawierają najróżniejsze mechanizmy korekcji błędów, które w momencie wykrycia jakiegoś błędu wykonują operację ponownie, aby uzyskać prawidłowy wynik. W pierwszych latach elektroniki było to całkiem zrozumiałe podejście - liczba wykonywanych operacji była mała, a błędy rzadkie. Komputery to w końcu urządzenia cyfrowe, albo coś jest zerem, albo jedynką, nie ma tam dużo miejsca na błędy.

Jednak wraz z postępującą miniaturyzacją i przyśpieszaniem komputerów analogowa rzeczywistość leżąca pod binarną abstrakcją warstwy programów zaczyna o sobie dawać znać. Im mniejsze zaczynają być poszczególne elementy układów mikroelektronicznych, tym bardziej mikroskopijne różnice we wzorach obwodów, w domieszkach do krzemu itd. zaczynają mieć coraz większą różnicę. W związku z tym napięcie, przy którym stan tranzystora zmienia się z 0 na 1 ma trochę inny poziom dla poszczególncyh tranzystorów - a przy współcześnie stosowanych niskich napięciach (wymaganych dla zmniejszenia zużycia energii) i wysokich częstotliwościach taktowania (potrzebnych dla uzyskania odpowiedniej prędkości działania procesora) to oznacza coraz większą liczbę błędów.

Dlatego też w przyszłości komputery będą bardziej tolerancyjne dla błędów, jak się można było dowiedzieć na międzynarodowym sympozjum projektów i elektroniki niskich mocy, które odbyło się w tym roku pod koniec sierpnia. Cytując prof. Naresha Shanbhaga z Uniwersytetu Illinois w Urbana-Champaign:

Jeżeli zastosowanie jest takie, że niewielkie błędy można tolerować, to pozwalamy im się wydarzyć. W zależności od zastosowania, utrzymujemy poziomy błędu poniżej określonego poziomu, przy pomocy technik algorytmicznych lub obwodów.

Dla zastosowań takich jak przetwarzanie grafiki czy analizowanie gigantycznych ilości danych pewna niewielka ilość błędów może być możliwa do zaakceptowania - pojedyncze piksele w trochę nie takim miejscu co trzeba lub trochę nie takim odcieniu jak trzeba nie będą zauważalne dla oka, zwłaszcza jeżeli będą występować na ekranie tylko przez ułamek sekundy. Jednocześnie zaś procesory akceptujące błędy i działające probabilistycznie (na zasadzie prawdopodobieństwa) zużywają dużo mniej energii, co ma istotne znaczenie tak w zastosowaniach mobilnych (pozwalając smartfonowi na dłuższą pracę) jak i w zastosowaniach wymagających dużej mocy obliczeniowej (bo kartę graficzną w komputerze do grania czy jednostkę klastra superkomputerowego będzie łatwiej ochłodzić).

Według Jana Rabaeya z Gigascale Systems Research Center z Uniwersytetu Kalifornii, Berkeley, komputery odporne na błędy zaczną się pojawiać za przypuszczalnie jakieś 6-10 lat. Wraz ze wzrostem zmienności na poziomie molekularnym i coraz większym znaczeniu zużycia prądu, wprowadzenie komputerów probabilistycznych (znane również pod nazwą stochastycznych) jest nieuniknione, twierdzi Rabaey. W przeciwnym razie prawo Moore'a trafi w końcu na ścianę.

[na podstawie IEEE Spectrum]

Leszek Karlik

Więcej o: