Czy nastąpi zmierzch procesorów 16-bitowych?
| TechnikaProcesory 16-bitowe całkowicie wyszły z użytku w komputerach domowych jednak są nadal stosowane w wielu aplikacjach wbudowanych. W zakresie wydajności, ceny i energooszczędności wypierają je różne architektury 8- lub 32-bitowe, więc pojawiają się opinie, że procesory 16-bitowe nie są już potrzebne. Czy architektura 16-bitowa przetrwa?
Procesory 16-bitowe pojawiły się na rynku pod koniec lat 70. ubiegłego wieku. Ich zadaniem było zapewnienie lepszej wydajności niż ta, którą oferowały architektury 8-bitowe, kosztem minimalnie większej ilości krzemu. W tym samym okresie i w podobnym celu powstały konstrukcje 32-bitowe. Na początku były one używane głównie w stacjach roboczych, podczas gdy procesory 16-bitowe stosowano w komputerach PC i w rosnącym stopniu w projektach embedded. Jednak wraz z rozwojem litografii, ceny i wymiary architektur 32-bitowych spadały, dzięki czemu są one dziś obecne w szerokim spektrum zastosowań komercyjnych, konsumenckich, medycznych oraz wojskowych.
Los 8-bitowców
W 2007 roku, ze względu na niewystarczające prognozy dotyczące popytu, firma Intel całkowicie zaprzestała produkcji mikroprocesorów MCS51, MCS251, MCS96, 80X18X, 80X38X, 80X486DXX oraz i960. Kolejni producenci 16-bitowych procesorów prawdopodobnie pójdą jej śladem już niebawem. Jednak kiedyś pojawiały się zapowiedzi o końcu procesorów 8-bitowych, które nie znalazły potwierdzenia w rzeczywistości. Wręcz przeciwnie, rynek 8-bitowych procesorów nie tylko nie znalazł się w zastoju, ale rozwija się, a powstające urządzenia są stosowane w tanich i energooszczędnych aplikacjach, które kilka lat temu były nieopłacalne lub technicznie niewykonalne. Według badań procesory 8- i 16-bitowe są obecnie częściej niż w latach ubiegłych stosowane przez dostawców systemów wbudowanych. W 2006 roku poza Intelem czternaście innych firm oferowało 16-bitowe mikroprocesory dla zastosowań inżynierskich. Ponadto duża grupa producentów wciąż inwestuje w architektury 16-bitowe. Pojawia się więc pytanie, dlaczego firmy wydają miliony dolarów na produkty, które według niektórych zapowiedzi mają wyjść z użycia? Co przyniesie przyszłość dla architektur 16-bitowych?
Sytuacja na rynku procesorów
Nowe 8-bitowe architektury dzięki dodatkowym możliwościom i cechom mogą obecnie skuteczniej rywalizować z procesorami 16-bitowymi. Są one z powodzeniem stosowane w prostych czujnikach, przełącznikach oraz tanich produktach użytkowych. Jednak szerokość magistrali danych 8-bitowych architektur ogranicza wydajność obliczeniową, jaką mogą zapewnić tego typu urządzenia. Godnymi odnotowania usprawnieniami implementowanymi przez producentów takich procesorów są: większa ilość adresowalnej pamięci oraz wyższe częstotliwości taktowania. Chociaż 16-bitowe typy danych mogą być przetwarzane przez 8-bitowe procesory, odbywa się to kosztem wydajności, ze względu na konieczność wykonania wielu łańcuchowych operacji, które w architekturze 16-bitowej realizowane są za pomocą pojedynczej instrukcji. Procesor 16-bitowy działa szybciej i często kosztem mniejszego zużycia mocy niż urządzenie 8-bitowe stosowane do intensywnych 16-bitowych działań matematycznych. Niezgodność typu przetwarzanych danych z rodzajem architektury procesora zmniejsza jego efektywność obliczeniową.
Wynikające z tego straty wydajności i mocy są zachętą do przejścia z architektur 8- do 16- lub 32-bitowych. W najlepszej sytuacji wydają się być projekty 32-bitowe, których malejące ceny stanowią największe zagrożenie dla procesorów 16-bitowych. Koszt 32-bitowego mikrokontrolera wykonanego w procesie technologicznym o wymiarze 180nm jest obecnie zbliżony do cen procesorów 8- i 16-bitowych. Pomimo tego, że 32-bitowy rdzeń wymaga więcej bramek i tym samym zajmuje większą powierzchnię niż rdzenie 8- i 16-bitowe, jest to przeważnie niewielki obszar w stosunku do całego układu. Jego powierzchnia zmniejsza się jeszcze bardziej wraz z rozwojem procesu technologicznego. Ponadto wszystkie funkcje architektur 16-bitowych mogą być zrealizowane w procesorach 32-bitowych, bez ponoszenia prawie żadnych kosztów, co często bywa podkreślane przez producentów takich procesorów. Istnieją także urządzenia wykonane w architekturze 32-bitowej, określane mianem SIMD (Single Instruction, Multiple Data), które mogą wykonywać wiele operacji arytmetycznych jednocześnie.
Inne czynniki zachęcające do rozważenia przejścia z architektur 8-bitowych na architektury o większej szerokości szyny danych to, oprócz rosnących wymagań dotyczących pamięci i wydajności obliczeniowej, także nowe możliwości w zakresie łączności sieciowej, szyfrowania oraz obsługi większej liczby wyświetlaczy.
ARM i inne
W 2006 roku firma Luminary Micro przedstawiła tanie 32-bitowe procesory oparte na architekturze ARM Cortex-M3. Cena na poziomie jednego dolara pozwala im konkurować z wieloma procesorami 8- i 16-bitowymi. Oprócz Luminary Micro, także Atmel i NXP oferują tanie procesory oparte o ARM7, wyposażone w funkcje przydatne w aplikacjach 8-bitowych. Zaimplementowanie takich operacji, jak np. bitwise manipulation, brownout detection i power-on reset, rzadko występujących w projektach 32-bitowych, zapewnia dodatkową przewagę nad architekturami 16-bitowymi. Ponadto procesory Atmel zawierają ulepszony mechanizm obsługi przerwań w celu minimalizacji liczby cykli potrzebnych do obsługi przerwania.
Rozmiar instrukcji jest kolejną kwestią, w której procesory 16-bitowe konkurują z ich 32-bitowymi odpowiednikami. Te pierwsze charakteryzują się przeważnie lepszą gęstością kodu (code density) niż konstrukcje 32-bitowe, więc dzięki mniejszemu rozmiarowi instrukcji wykorzystują one pamięć w sposób bardziej efektywny. Ma to duże znaczenie, ponieważ wbudowana pamięć zajmuje większą powierzchnię dzisiejszych układów niż sam rdzeń procesora (rys. 1). Na przykład 32-bitowy procesor wykonany w technologii 130nm może zająć jedynie 0,5mm2, podczas gdy pamięć RAM o pojemności 64kB potrzebuje aż 2mm2 powierzchni. O ważności code density świadczy fakt, że wiele współczesnych procesorów 32-bitowych zawiera podzbiory instrukcji 16-bitowych. Architektura Cortex-M3 idzie o krok dalej, implementując wybraną kombinację 16- i 32-bitowych instrukcji ARM w postaci technologii Thumb-2, co zapewnia lepszą wydajność oraz gęstość kodu.
Pomimo tendencji do zwiększania wydajności obliczeniowej i ilości adresowanej pamięci w nowo produkowanych procesorach, 16-bitowe architektury wciąż w pewnych obszarach przodują nad procesorami 32-bitowymi. Niższe architektury są wytwarzane w starszych procesach technologicznych, a to wiąże się z mniejszym kosztem i prądem upływowym takich układów. Upływ prądu urządzeń produkowanych w procesie 18nm jest na tyle znaczący, że ogranicza ich użycie w aplikacjach energooszczędnych. Na przykład różnica między prądem upływowym urządzeń 8- i 32-bitowych może wynieść nawet dwa rzędy wielkości na niekorzyść wyższych architektur. Ma to szczególne znaczenie w aplikacjach często wykorzystujących tryb oczekiwania. Procesory 16-bitowe mogą więc stanowić dobry kompromis między wydajnością obliczeniową a upływem prądu.
Postęp w obszarze 16-bitów
Podczas gdy architektury 8- i 32-bitowe zostają rozbudowywane o nowe możliwości, pozwalające im lepiej konkurować w obszarze aplikacji 16-bitowych, zmianom ulegają także same procesory 16-bitowe. Na przykład, niektóre z nowoczesnych mikrokontrolerów, takie jak Freescale's MC9S12XE, mają zwiększony do 1MB zakres przestrzeni adresowej. W wielu zastosowaniach tradycyjne ograniczenie pamięci do 64kB uniemożliwia wykorzystanie 8- i 16-bitowych architektur. Nowoczesne aplikacje użytkowe, takie jak odtwarzanie plików muzycznych, graficznych lub wideo opierają się na projektach 32-bitowych, które pozwalają na adresowanie maksymalnie do 4GB pamięci. Texas Instruments MSP430 to kolejny przykład architektury 16-bitowej, przeznaczonej do tanich i energooszczędnych aplikacji wbudowanych, takich jak bezprzewodowe RF oraz inne, zasilane z baterii. Ponadto wiele nowych procesorów 8- i 16-bitowych zawiera dodatkowe obwody testujące pomocne deweloperom.
Coraz więcej 16-bitowych procesorów może także wykorzystywać system operacyjny czasu rzeczywistego RTOS do zarządzania zadaniami. RTOS może być używany zarówno w urządzeniach 16-, jak i 32-bitowych, jednak te drugie odnoszą większą korzyść z jego użycia, ze względu na swoją większą złożoność. RTOS przeznaczone dla procesorów 16-bitowych oferowane są przez takie firmy, jak CMX, Mentor Graphics (Nuclens), Micrium (µC/OS-II) oraz FreeRTOS. W celu lepszej obsługi systemu, 16-bitowe procesory mogą zawierać specjalne rejestry, jak ma to miejsce w przypadku mikrokontrolerów firmy Fujitsu. Wbudowany RTOS zwiększa koszt rozwoju takich architektur, ale też upraszcza zarządzanie podsystemami, takimi jak kontrolery DMA i MMU. Ważną funkcją jest także ochrona pamięci. Jednym z przykładów jest system CodeGuard firmy Microchip, który zapewnia podział pamięci na trzy segmenty z różnymi poziomami ochrony. Innymi przykładami ochrony w architekturach 16-bitowych są mechanizmy zabezpieczające przed przypadkowym zapisem do pamięci Flash programu, przepełnieniem stosu oraz niezależne źródła zegarowe dla timerów watchdog, zapasowe oscylatory i zabezpieczenie przed spadkiem napięcia. 16-bitowe mikrokontrolery z rodziny Freescale MC9S12XE mają zintegrowany układ MPU (Memory-Protection Unit), który jest powszechnie stosowany do ochrony pamięci w procesorach 32-bitowych.
Walka o dominację
8-bitowe procesory wyróżniają się niskim kosztem i małym zużyciem mocy. Niespodziewanie, to samo można powiedzieć o procesorach 16-bitowych, ponieważ projekty wykorzystujące takie architektury przeważnie zawierają mniej pamięci niż ich 32-bitowe odpowiedniki. Pomimo minimalnych różnic w cenach 16- i 32-bitowych rdzeni, całkowity koszt układu w znacznej mierze zależy właśnie od ilości wbudowanej pamięci.
W wielu aplikacjach wbudowanych, szczególnie tych dopasowanych do mniejszych architektur, istnieją znaczne możliwości obniżenia zużycia mocy dzięki trybom pracy w uśpieniu i w oczekiwaniu. Jednak procesory 32-bitowe charakteryzują się znacznym prądem upływowym, czyli pobierają dosyć dużą moc nawet, gdy rdzeń nie jest obciążony, co neutralizuje korzyści wynikające z mniejszej powierzchni zajmowanej przez jednostkę obliczeniową. Nawet inteligentna technologia oszczędzania energii, taka jak clock gating, która polega na aktywowaniu zegarów w bloku logicznym tylko w razie potrzeby, nie rekompensuje kosztów związanych z upływem prądu. Jedynym sposobem na jego zmniejszenie jest użycie wolniejszych tranzystorów lub zapewnienie mocy na żądanie, co wymagałoby bardziej złożonego projektu.
Aplikacje dla 16-bitowców
Zapowiedzi wyjścia 16-bitowych procesorów z użycia nabierają znaczenia wobec informacji, że na rynku nie istnieje 16-bitowy ekwiwalent mikrokontrolerów 8051 i ARM. Jednak procesory 16-bitowe dostosowane do konkretnych zastosowań sprawdzają się w aplikacjach samochodowych i w sterowaniu w przemyśle, które są obecnie ich głównymi obszarami rynkowymi. Innym miejscem dla urządzeń 16-bitowych są aplikacje, które łączą w sobie niskie zużycie mocy i intensywne przetwarzanie lub sterowanie urządzeniami peryferyjnymi, czego nie mogą zapewnić procesory 8-bitowe. Do takich zastosowań można zaliczyć np. urządzenia do pomiaru elektryczności, wody i gazu.
W ostatnich latach na rynku pojawiły się także procesory hybrydowe, które coraz częściej określane są w przemyśle jako DSC (Digital-Signal Controllers). Pełnią one zarówno funkcje mikrokontrolera, jak i procesora DSP, a większość z nich wykorzystuje architekturę 16-bitową. Rozwijające się aplikacje, w których mogą się sprawdzić architektury 16-bitowe i DSC to np. przenośne urządzenia domowe, medyczne oraz sterujące i monitorujące wyposażenie domów inteligentnych, a także bezprzewodowa i przewodowa łączność sieciowa.
Podsumowanie
Mimo popularności urządzeń 8- i 32-bitowych obszar, w którym stosowane są 16-bitowe architektury jest dosyć szeroki. Tylko czas pokaże, czy procesory 16-bitowe przetrwają, a zapowiedzi ich rychłego końca nie zostaną zrealizowane, podobnie jak to miało miejsce w przypadku architektur 8-bitowych.
Grzegorz Michałowski