reklama
reklama
reklama
reklama
reklama
reklama
reklama
reklama
© baloncici dreamstime.com Technologie | 11 lutego 2016

Wszystko o polskim procesorze 32-bitowym – cz. 2

Zapraszamy do lektury drugiej cz─Ö┼Ťci artyku┼éu technicznego przygotowanego przez firm─Ö Digital Core Design.
Wydajno┼Ť─ç wsp├│┼éczesnych procesor├│w 32-bitowych

Od wielu lat obserwujemy w elektronice permanentny wy┼Ťcig: szybciej, lepiej, wydajniej.
W ostatnim czasie przybra┼é on szczeg├│lnie intensywne formy, kt├│re ujawniaj─ů si─Ö w pe┼énej okaza┼éo┼Ťci, gdy spojrzymy na datasheet z wynikami wydajno┼Ťci podawanymi dla benchmarku Dhrystone. Ju┼╝ nawet 8- czy 16-bitowe procesory zacz─Ö┼éy ÔÇ×osi─ůga─ç” nieprzyzwoicie/niewyt┼éumaczalnie (*niepotrzebne skre┼Ťli─ç) wysokie rezultaty wydajno┼Ťci. Nic wi─Öc dziwnego, ┼╝e przywykli┼Ťmy do wynik├│w pokroju 2-3 DMIPS/MHz w przypadku procesor├│w 32-bitowych. Jednak czy s─ů one realne? Czy procesor, kt├│ry na papierze ma wydajno┼Ť─ç 2.5 DMIPS/MHz b─Ödzie r├│wnie wydajny przy wykonywaniu ÔÇ×codziennych” zada┼ä? NiekoniecznieÔÇŽ
Wydajno┼Ť─ç D32PRO zmierzona za pomoc─ů (i zgodnie z wytycznymi) benchmarku Dhrystone wynosi 1.48 DMIPS/MHz. Tymczasem, gdy spojrzymy na rozwi─ůzania konkurencji (nazwijmy j─ů A, B, C), zauwa┼╝ymy, ┼╝e jej 32-bitowe procesory osi─ůgaj─ů odpowiednio:
  • Procesor A: 1.53 DMIPS/MHz
  • Procesor B: 1.79 DMIPS/MHz
  • Procesor C: 2.83 DMIPS/MHz
Jednak┼╝e, gdy przyjrzymy si─Ö procesorowi A., z ┼éatwo┼Ťci─ů zauwa┼╝ymy zwi─Ökszon─ů ilo┼Ť─ç poziom├│w przy przetwarzaniu potokowym, co pozwala na prac─Ö z wysok─ů wydajno┼Ťci─ů. Nale┼╝y jednak pami─Öta─ç, ┼╝e warunkiem pracy z tak wysok─ů wydajno┼Ťci─ů jest jednolity kod (np. operacje arytmetyczne). Je┼Ťli jednak pojawi┼éyby si─Ö w nim skoki lub przerwania, wydajno┼Ť─ç ta wydatnie spada. Rzecz jasna mo┼╝na temu zapobiec poprzez wykorzystanie uk┼éad├│w predykcji czy cache, wi─ů┼╝e si─Ö to jednak z wydatnym zwi─Ökszeniem powierzchni zajmowanej przez CPU. Zatem nale┼╝y podej┼Ť─ç z du┼╝─ů rezerw─ů do wysokich wynik├│w Dhrystone, kt├│re id─ů w parze z relatywnie nisk─ů powierzchni─ů procesora. Zwi─Ökszenie wydajno┼Ťci odbywa si─Ö bowiem kosztem zwi─Ökszenia powierzchni i vice versa ÔÇô zmniejszenie powierzchni uk┼éadu powoduje wydatne ograniczenie jego mo┼╝liwo┼Ťci.

Zestawienie wydajno┼Ťci 1.53 DMPIS/MHz z powierzchni─ů poni┼╝ej 10k bramek ASIC sugeruje, ┼╝e tak─ů wydajno┼Ť─ç osi─ůga CPU, kt├│re zajmuje 10k bramek. Eufemistycznie rzecz ujmuj─ůc ÔÇô nie jest to do ko┼äca prawda, bowiem podana najwy┼╝sza wydajno┼Ť─ç dotyczy procesora zawieraj─ůcego wszystkie instrukcje - takie jak jednocyklowe mno┼╝enie, przesuwanie, dzielenie i inne. Natomiast sama powierzchnia w przytoczonym przyk┼éadzie podawana jest z usuni─Ötym opcjonalnym ÔÇ×wyposa┼╝eniem”.

Z kolei je┼Ťli przyjrzymy si─Ö np. procesorowi C zauwa┼╝ymy, ┼╝e ma on 16, 24, i 32 bitowe instrukcje. Oznacza to, ┼╝e na zapisanie rejestru 32-bitow─ů sta┼é─ů potrzeba dw├│ch instrukcji. Nie bez znaczenia jest fakt, ┼╝e 24-bitowe instrukcje podnosz─ů stopie┼ä skomplikowania uk┼éadu pobierania rozkaz├│w, zwi─Ökszaj─ůc zajmowan─ů powierzchni─Ö i zapotrzebowanie na zu┼╝ywan─ů energi─Ö.

Dlatego te┼╝ analizuj─ůc wyniki wydajno┼Ťci poszczeg├│lnych procesor├│w, trzeba niestety dokona─ç dywersyfikacji na wyniki osi─ůgane w programach takich jak Dhrystone oraz realn─ů wydajno┼Ť─ç (podczas pracy).
Wykorzystanie popularnych kompilator├│w wspieraj─ůcych optymalizacje na etapie linkowania, wypacza wyniki benchmark├│w dla dhry21. Jako przyk┼éad mo┼╝na poda─ç np. GCC procesora A, B lub C, w kt├│rym z kodu wynikowego zupe┼énie wyrzucono dzielenie, mno┼╝enie i znaczn─ů cz─Ö┼Ť─ç CALL/RET, a przy tym rozwini─Öto p─Ötle. Warto w tym miejscu nadmieni─ç, ┼╝e w dokumentacji z dhry21, kt├│ry przecie┼╝ zosta┼é zaktualizowany do tej w┼éa┼Ťnie wersji w odpowiedzi na zbyt agresywn─ů optymalizacj─Ö ÔÇô wyszczeg├│lniono dok┼éadnie, ┼╝e szybko┼Ť─ç tych operacji wp┼éywa na warto┼Ť─ç DMIPS-├│w:



Jak wi─Öc wida─ç, wyniki rz─Ödu 2.5 - 3 DMIPS, kt├│re mo┼╝emy odnale┼║─ç w konkurencyjnych datasheet, nie maj─ů nic wsp├│lnego ze specyfikacj─ů DMIPS. Id─ůc tym tropem, poprzez odpowiedni─ů modyfikacj─Ö kodu D32PRO mo┼╝na by osi─ůgn─ů─ç wynik 3-4 DMIPS. Tylko jaki by┼éby sens takiego dzia┼éania?

Jak wskazano powy┼╝ej, z kod├│w wynikowych usuwa si─Ö te┼╝ cz─Östo mno┼╝enie i dzielenie. Jest to zwi─ůzane z faktem, ┼╝e w wynikach powy┼╝ej 2 DMIPS kompilator tak optymalizuje kod DHRY, ┼╝e wykonuje operacje mno┼╝enia i dzielenia, wpisuj─ůc gotowe wyniki, jako sta┼ée do wykonywanego kodu. Tymczasem w rzeczywistym DHRY, jak te┼╝ przede wszystkim w realnych aplikacjach ÔÇô te operacje s─ů wykonywane z u┼╝yciem odpowiednich instrukcji procesor├│w. Co wi─Öcej, wywo┼éania funkcji w tak spreparowanych testach nie s─ů wykonywane, bowiem cia┼éo funkcji wstawiane jest bezpo┼Ťrednio z g┼é├│wnej p─Ötli (inline). Eliminuje to instrukcje CALL/RET, kt├│re z regu┼éy zajmuj─ů oko┼éo 2-3 cykli na ka┼╝d─ů z nich. Zabieg ten (inline) wp┼éywa te┼╝ na ÔÇ×ekstra optymalizacj─Ö”, poniewa┼╝ cz─Ö┼Ť─ç operacji z tych funkcji ÔÇ×pokrywa si─Ö” i jest sklejana razem. W efekcie tak ÔÇ×zmodyfikowany” test daje wysokie wyniki DMIPS. Wracaj─ůc do wcze┼Ťniejszych rozwa┼╝a┼ä mo┼╝na by ponownie zapyta─ç: dlaczego? Czy taki syntetyczny i zmodyfikowany wynik b─Ödzie m├│g┼é zosta─ç wykorzystany w realnej aplikacji?

Odpowied┼║ jest oczywista.

Podsumowanie

D32PRO jest 32-bitowym, w pe┼éni konfigurowalnym procesorem, oferowanym w modelu biznesowym royalty-free. Mo┼╝na zatem powiedzie─ç, ┼╝e jest to uk┼éad szyty na miar─Ö, bowiem w zale┼╝no┼Ťci od potrzeb mo┼╝na go dowolnie konfigurowa─ç by osi─ůgn─ů─ç po┼╝─ůdan─ů funkcjonalno┼Ť─ç. Co wa┼╝ne, zintegrowany koprocesor zmiennoprzecinkowy gwarantuj─ůcy instrukcje zmiennoprzecinkowe IEEE-754 pojedynczej precyzji, zapewnia stabiln─ů i w pe┼éni zoptymalizowan─ů prac─Ö ca┼éego uk┼éadu. Z kolei zintegrowany zestaw peryferii wraz ze sterownikami, pozwala wydatnie zwi─Ökszy─ç funkcjonalno┼Ť─ç ca┼éego rozwi─ůzania, oferowanego pod nazw─ů D32PRO. By dodatkowo u┼éatwi─ç prac─Ö z procesorem oraz zwi─Ökszy─ç mo┼╝liwo┼Ťci implementacji, projektanci zadbali, aby by┼é on niezale┼╝ny technologicznie, dzi─Öki czemu mo┼╝e by─ç bez przeszk├│d wykorzystany zar├│wno w uk┼éadach ASIC, jak i w FPGA. Nale┼╝y jednak podkre┼Ťli─ç, ┼╝e 32-bitowy procesor DCD jest rozwi─ůzaniem silicon proven, kt├│rego sprawno┼Ť─ç potwierdzono w procesie technologicznym 110nm. Jest przy tym oferowany w modelu royalty-free, dzi─Öki czemu licencjobiorca nie ponosi ┼╝adnych dodatkowych op┼éat po zakupie licencji. Do tego otrzymuje 3 miesi─Öczne, bezp┼éatne wsparcie techniczne, kt├│re mo┼╝e zosta─ç rozszerzone na warunkach komercyjnych, na dowolny okres czasu.

Procesor jest na tyle uniwersalny i wydajny, że nie można, czy wręcz nie wolno wskazywać jednego tylko typu zastosowań. Rzecz jasna można tu wspomnieć o:
  • IOT (Internet of Things)
  • Urz─ůdzenia medyczne
  • Systemy sterowania w przemy┼Ťle
  • Czytniki kart p┼éatniczych
  • Smart Electronic & Wearables etc.

Ale to zaledwie pocz─ůtek, wierzcho┼éek g├│ry lodowej mo┼╝liwych zastosowa┼äÔÇŽ

D32PRO oferuje in┼╝ynierowi pe┼én─ů konfigurowalno┼Ť─ç chocia┼╝by poprzez mo┼╝liwo┼Ť─ç wy┼é─ůczenia pewnych grup instrukcji, dzi─Öki czemu mo┼╝na zmniejszy─ç powierzchni─Ö procesora. Projektant mo┼╝e te┼╝ wy┼é─ůczy─ç nieu┼╝ywane peryferia, b─ůd┼║ te┼╝ wprost przeciwnie - skorzysta─ç z bogatego zestawu modu┼é├│w procesora, w┼Ťr├│d kt├│rych znajdziemy m.in. USB SD Card etc. Je┼Ťli jednak i taki zestaw okaza┼éby si─Ö dla kogo┼Ť niewystarczaj─ůcy, warto doda─ç, ┼╝e D32PRO mo┼╝e by─ç r├│wnie┼╝ dostarczony z kompletn─ů p┼éyt─ů ewaluacyjn─ů FPGA, kt├│ra wydatnie skr├│ci czas test├│w i u┼éatwi prac─Ö z procesorem. Dzi─Öki takiemu zestawowi in┼╝ynier nie musi konstruowa─ç w┼éasnego PCB a nast─Öpnie sk┼éada─ç w ca┼éo┼Ť─ç poszczeg├│lnych element├│w uk┼éadanki. Wraz z D32PRO otrzymuje od Digital Core Design zestaw All in One.

Wi─Öcej informacji na stronie firmy ┬ę Digital Core Design: www.dcd.pl
reklama
reklama
Załaduj więcej newsów
December 05 2018 15:01 V11.10.4-1