reklama
reklama
reklama
reklama
reklama
reklama
reklama
reklama
© goepel Technologie | 10 lutego 2016

Wszystko o polskim procesorze 32-bitowym – cz. 1

Firma Digital Core Design specjalnie dla naszych Czytelników przygotowała artykuł techniczny na temat najnowszego procesora D32PRO. Zapraszamy do lektury!
D32PRO to procesor 32-bitowy zaprojektowany przez Digital Core Design. Firma zajmuje się projektowaniem IP Core od 1999 roku, można zatem powiedzieć, że najnowszy procesor jest sumą doświadczeń zbieranych przez inżynierów firmy na przestrzeni ostatnich 17 lat.

Już wcześniejsze produkty, jak chociażby najszybszy na świecie procesor z rodziny 8051 - DQ80251, oferowały ponadprzeciętne możliwości. To właśnie ten mikroprocesor osiąga wydajność na poziomie 75 razy wyższym od oryginalnego układu stworzonego przez firmę Intel.

Najnowszy procesor D32PRO to nowoczesny układ RISC, 32-bitowy, oferowany jako IP Core (w modelu bez opłat, tzw. „royalty-free”). Jego sprawność została wykazana w krzemie (silicon proven), w procesie technologicznym 110nm. D32PRO posiada zintegrowany koprocesor zmiennoprzecinkowy (Floating Point Coprocessor) oraz bogaty zestaw peryferii jak np. USB, Ethernet, I2C, SPI, UART, CAN, LIN, RTC, HDLC, Smart Card etc. Dzięki temu pierwszy polski komercyjny procesor 32-bitowy stanowi atrakcyjną alternatywę dla dobrze znanych układów z rodziny ARM Cortex M0/M0+/M1/M3, jak też i innych procesorów 32-bitowych oferowanych na rynku IP Core.

D32PRO jest w pełni konfigurowalny, w zależności od potrzeb można wydatnie zmniejszyć powierzchnię zajmowaną przez procesor lub też zwiększyć jego wydajność. Z kolei dzięki zaawansowanej jednostce zarządzania energią (Power Management Unit), układ może być z powodzeniem wykorzystany w niskoprądowych aplikacjach. W efekcie, zarówno klasyczne zastosowania, jak też i te związane z Internet of Things, Bluetooth Low Energy czy Wearables kreują szerokie spectrum zastosowań D32PRO.

Charakterysytka D32PRO

Główną ideą przyświecającą inżynierom DCD było zaprojektowanie procesora uniwersalnego i konfigurowalnego, nadającego się do zastosowania w szerokim spectrum aplikacji. W D32PRO zaimplementowano autorską architekturę, która jest efektem optymalizacji stosunku maksymalnej częstotliwości zegara i opóźnienia w ścieżce danych. Dzięki temu zbudowano uniwersalny procesor, który doskonale radzi sobie z wykonywaniem kodu z wieloma skokami, jak też i kodu jednolitego, pokroju operacji arytmetycznych. Nie byłoby to możliwe bez zastosowania zmiennej architektury potokowej.


Zestaw instrukcji D32PRO

Kolejne innowacje widoczne w D32PRO można dostrzec w liście rozkazów. Bazuje ona na specjalnie zaprojektowanych instrukcjach, które są maksymalnie zbliżone w swoim działaniu do konstrukcji języka wyższego poziomu, jak np. C. W efekcie uzyskano bardzo wysoką gęstość kodu, która jednocześnie idzie w parze ze zwartą i krótką listą rozkazów. Wśród nich można wymienić instrukcje pozwalające na optymalizację porównywania dwóch łańcuchów znaków czy też instrukcje znajdowania pierwszej jedynki w rejestrze.

Dla przykładu można w tym miejscu wymienić instrukcję FZB, pozwalającą optymalizować wyszukiwanie bajtów. W najprostszych procesorach 8 bitowych wyszukiwanie znaku NULL miało postać iterowania po wszystkich bajtach:


W przypadku procesorów 32-bitowych zaczęto używać optymalizacji pozwalającej na jednoczesne sprawdzenie czterech bajtów rejestru:

Jednakże o istotnym zwiększeniu wydajności można powiedzieć dopiero przy użyciu instrukcji FZB, która została zaimplementowana w D32PRO. Pozwala ona na przeszukanie rejestru za pomocą pojedynczej jednocyklowej instrukcji:

D32PRO jest wyposażony w 13 rejestrów ogólnego przeznaczenia R0-R12, spośród których większość zapewnia automatyczną aktualizację zawartości po powrocie z przerwania. Dzięki takiemu zabiegowi procesor znacznie przyspiesza obsługę przerwań czy przełączanie kontekstu w systemach czasu rzeczywistego. Każdy ze wspomnianych rejestrów może być też wykorzystywany do operacji arytmetycznych, co jest o tyle przydatne, że jeśli odniesiemy to do klasycznego układu 8051 z łatwością zauważymy, że w pięćdziesiątkach jedynkach można było do tego wykorzystać tylko akumulator, co z kolei wiązało się koniecznością przeładowywania i zapisywania zawartości. By jeszcze bardziej zwiększyć funkcjonalność procesora, wyposażono go w konfigurowalny układ przerwań zawierający 1 przerwanie niemaskowane oraz do 32 przerwań maskowanych. Sposób wykrywania przerwania jak i jego detekcja są w pełni konfigurowane, dzięki czemu inżynier pracujący z procesorem może ustawić detekcję zbocza lub poziomu czy też konfigurować priorytety oraz sposób wejścia do obsługi przerwań.

Nowoczesne mikrokontrolery 32 bitowe winny być projektowane ze szczególnym naciskiem na niski pobór energii. Nie inaczej rzecz się ma z D32PRO, który został wyposażony w zaawansowany system obniżania poboru energii. Moduł PMU (Power Management Unit) dynamicznie kontroluje częstotliwość zegara, pozwalając na zaoszczędzenie energii w momencie, gdy nie jest wymagana maksymalna wydajność. W D32PRO można konfigurować podzielnik zegara procesora oraz osobno podzielnik zegara peryferii. Dzięki temu nic nie stoi na przeszkodzie by wprowadzić wyłącznie sam procesor w niski pobór prądu, gdy tymczasem wymagane peryferia będą śledzić otoczenie z nominalnym zegarem. Co więcej, sam procesor można także wprowadzić w tryb stop, w którym zegar jest całkowicie odłączony od procesora, programując powrót do stanu normalnej pracy przez przerwanie od wybranych układów peryferyjnych. Procesor może także wyłączyć peryferia, które nie są używane w aplikacji, dzięki czemu można jeszcze bardziej zmniejszyć zapotrzebowanie na energię.

Wreszcie na koniec nie sposób nie wspomnieć o debuggerze i bootloaderze, które wydatnie zwiększają komfort pracy z procesorem. Podobnie jak w przypadku IP Core DCD z rodziny 8051, które posiadają wbudowany debugger sprzętowy DoCDTM, tak też i D32PRO posiada wbudowany debugger, który gwarantuje pełną kontrolę procesora z poziomu Eclipse (kompletny system do projektowania Eclipse, GCC => USB 2.0 cable => D32PRO). Niepodważalną zaletą rozwiązania opracowanego przez inżynierów Digital Core Design jest fakt, iż do komunikacji debugger ten wykorzystuje tylko dwie linie, gdy konkurencyjne rozwiązania bazują najczęściej na interfejsie JTAG, który wykorzystuje standardowo 5 pinów. Z kolei sprzętowy układ bootloadera pozwala na zapisanie pamięci programu firmware z zewnętrznej pamięci FLASH podłączonej do interfejsu SPI. Dodatkowo bootloader wyposażony jest także w sprzętowy układ szyfrujący z kluczem zapisywanym w pamięci nieulotnej, co pozwala na zabezpieczenie firmware przed tzw. "reverse engineering".


Debugger dedykowany D32PRO

Artykuł opublikowano dzięki uprzejmości firmy © Digital Core Designt
reklama
reklama
Załaduj więcej newsów
November 29 2016 16:13 V7.6.2-2