
© baloncici dreamstime.com
Technologie |
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:
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:
- Procesor A: 1.53 DMIPS/MHz
- Procesor B: 1.79 DMIPS/MHz
- Procesor C: 2.83 DMIPS/MHz


- IOT (Internet of Things)
- Urządzenia medyczne
- Systemy sterowania w przemyśle
- Czytniki kart płatniczych
- Smart Electronic & Wearables etc.