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
December 05 2018 15:01 V11.10.4-2