Biorąc pod uwagę tę samą liczbę etapów rurociągu i ten sam węzeł produkcyjny (powiedzmy 65 nm) i to samo napięcie, proste urządzenia powinny działać szybciej niż bardziej skomplikowane. Ponadto połączenie wielu etapów rurociągu w jeden nie powinno spowalniać o czynnik większy niż liczba etapów.
Teraz weź pięcioletni procesor, działający w 14 etapach potoku z częstotliwością 2,8 GHz. Załóżmy, że łączy się etapy; spowolniłoby to poniżej 200 MHz. Teraz zwiększ napięcie i zmniejsz liczbę bitów na słowo; to by przyspieszyło.
Dlatego nie rozumiem, dlaczego wiele obecnie produkowanych mikrokontrolerów, takich jak AVL, działa z ogromną prędkością (np. 20 MHz przy 5 V), mimo że znacznie bardziej skomplikowane procesory wyprodukowane przed laty były w stanie działać 150 razy szybciej lub 10 razy szybciej jeśli zrzucisz wszystkie etapy rurociągu w jeden, przy 1,2 V. Według najbardziej zgrubnych obliczeń z tyłu koperty mikrokontrolery - nawet jeśli zostały wyprodukowane przy użyciu przestarzałej technologii - powinny pracować co najmniej 10 razy szybciej przy jednej czwartej napięcia, którym są zasilane.
Zatem pytanie: jakie są powody niskiej częstotliwości taktowania mikrokontrolera?
Odpowiedzi:
Istnieją inne czynniki, które wpływają na szybkość.
Pamięć: rzeczywista wydajność jest często ograniczona przez opóźnienie pamięci. Procesory Intel mają duże pamięci podręczne, aby to nadrobić. Mikrokontrolery zwykle nie. Pamięć flash jest znacznie wolniejsza niż pamięć DRAM.
Zużycie energii: często jest to duża sprawa w aplikacjach osadzonych. Rzeczywiste procesory Intel 200 MHz zużywały ponad 10 watów (często znacznie więcej) i wymagały dużego radiatora i wentylatora. Wymaga miejsca i pieniędzy, a nawet nie liczy zewnętrznej logiki i pamięci, która się z tym wiąże. 20 MHz AVR trwa około 0,2 watów, który zawiera wszystko, czego potrzeba. Jest to również związane z procesem - szybsze tranzystory są zazwyczaj nieszczelne.
Warunki pracy: Jak zauważa Dmitry w komentarzach, wiele mikrokontrolerów może pracować w szerokim zakresie napięcia i temperatury. Wspomniany wyżej ATMega działa w temperaturach od -40 ° C do 85 ° C i może być przechowywany w dowolnej temperaturze od -65 ° C do 150 ° C. (Inne MCU pracują w temperaturze do 125 ° C lub nawet 155 ° C). Napięcie VCC może wynosić od 2,7 V do 5,5 V (5 V +/- 10% dla szczytowej wydajności). Arkusz danych Core i7 jest trudny do odczytania, ponieważ ograniczają dopuszczalny VCC podczas produkcji, ale tolerancje napięcia i temperatury są z pewnością węższe - ~ 3% tolerancji napięcia i maksymalnej temperatury złącza 105 ° C. (Minimum 5 ° C, ale gdy pobierasz> 100 amperów, minimalne temperatury nie są tak naprawdę problemem).
Liczba bramek: Prostsze nie zawsze jest szybsze. Gdyby tak było, Intel nie potrzebowałby żadnych architektów procesorów! To nie tylko rurociąg; potrzebujesz także rzeczy takich jak wysokowydajny FPU. To podnosi cenę. Z tego powodu wiele niższych jednostek MCU ma procesory z liczbą całkowitą.
Budżet obszaru matrycy: Mikrokontrolery muszą wpasować wiele funkcji w jedną matrycę, która często obejmuje całą pamięć używaną w aplikacji. (SRAM i niezawodna pamięć flash NOR są dość duże). Procesory komputerowe rozmawiają z pamięcią zewnętrzną i urządzeniami peryferyjnymi.
Proces: Te AVR 5 V są wykonane w starożytnym, tanim procesie. Pamiętaj, że zostały zaprojektowane od podstaw, aby były tanie. Intel sprzedaje produkty konsumenckie z wysokimi marżami przy użyciu najlepszej technologii, jaką można kupić za pieniądze. Intel sprzedaje również czystą pamięć CMOS. Procesy MCU muszą wytwarzać wbudowaną pamięć flash, co jest trudniejsze.
Wiele z powyższych czynników jest powiązanych.
Możesz dziś kupić mikrokontrolery o częstotliwości 200 MHz ( oto przykład ). Oczywiście kosztują dziesięć razy więcej niż te ATMegas 20 MHz ...
Krótka wersja jest taka, że prędkość jest bardziej skomplikowana niż prostota, a tanie produkty są zoptymalizowane pod kątem taniości, a nie prędkości.
źródło
Główną techniczną przyczyną niskich prędkości jest to, że tanie / małe MCU używają tylko pamięci flash na chipie do przechowywania programów (tj. Nie działają z pamięci RAM).
Małe mikrokontrolery na ogół nie buforują pamięci programu, dlatego zawsze muszą czytać instrukcję z pamięci flash przed jej wykonaniem, w każdym cyklu. Daje to deterministyczną wydajność i # cykli / operacji, jest po prostu tańsze / prostsze i pozwala uniknąć problemów podobnych do komputera, w których kod i dane są mieszane, tworząc nowy zestaw zagrożeń związanych z przepełnieniem bufora itp.
Opóźnienie odczytu z pamięci flash (rzędu 50-100ns) jest znacznie wolniejsze niż odczytu z SRAM lub DRAM (rzędu 10ns lub mniej), i to opóźnienie należy ponieść w każdym cyklu, ograniczając szybkość zegara część.
źródło
Dlaczego ludzie jeżdżą na rowerze lub małym motocyklu, skoro masz samochód Formuły 1? Czy na pewno lepiej jest jechać, powiedzmy 300 km / hi dostać się wszędzie?
Krótko mówiąc, nie trzeba być szybszym niż oni. To znaczy, pewnie jest trochę i szybsze mikrokontrolery umożliwiają pewne rzeczy, ale co zamierzasz zrobić, powiedzmy, że automat jest w ciągłym użyciu przez około 1 godzinę dziennie? Co zamierzasz zrobić w powiedzmy pilocie do telewizora?
Z drugiej strony mają inne ważne funkcje, takie jak niskie zużycie energii, są DUŻO prostsze w programowaniu i tak dalej. Zasadniczo nie są procesorami i robią różne rzeczy.
źródło
Istnieje wiele kontrolerów ARM, które działają na setkach MHz lub więcej. Kto potrzebuje PIC 500 MHz i jest gotów zapłacić za część, aby uzasadnić maski za milion dolarów za proces zbliżony do najnowocześniejszego?
Popularny ATmega328 jest podobno wykonany w technologii 350 nm, co jest nieco w tyle za najnowszymi procesorami Intel (14 nm dla Skylake ).
Nawet niedrogie 8-bitowe kontrolery powoli zwiększają prędkość i można uzyskać kontrolery PIC 32 i 64 MHz (na przykład PIC18F14K22), które nadal działają przy napięciu 5 V (ten ostatni stanowi czynnik uwzględniający całkowity koszt systemu).
Jedną z kwestii jest to, że kontrolery te mają architekturę zoptymalizowaną pod kątem małych przestrzeni pamięci i niskiej prędkości zegara. Gdy zaczniesz osiągać wysoką prędkość zegara, musisz ponownie korzystać z preskalerów itp.
Pod koniec lat 90. podjęto próbę wyprodukowania bardzo szybkich sterowników typu PIC, z pomysłem, że oprogramowanie układowe może zastąpić urządzenia peryferyjne, jeśli mikrokontroler jest wystarczająco szybki. Na przykład, możesz bit-bang UART. Nie sądzę, żeby odniosły one tak duży sukces komercyjny - Scenix-> Ubicom-> Qualcomm (koniec gry).
źródło
Wyobraź sobie, że chcesz produkować samochody. Jednym z podejść byłoby sekwencyjne wykorzystywanie szeregu urządzeń w fabryce, budując jednocześnie jeden samochód. Podejście to można wykonać przy użyciu niewielkiej ilości średnio skomplikowanego sprzętu, tak wielu elementów wyposażenia można użyć do wykonania więcej niż jednego kroku. Z drugiej strony większość sprzętu w fabryce przez większość czasu nadal pozostawała bezczynna.
Innym podejściem jest skonfigurowanie linii montażowej, tak aby jak tylko sprzęt, który obsługiwał pierwszy etap produkcji, zakończył operację na pierwszym samochodzie, mógł następnie rozpocząć odpowiednią operację na następnym samochodzie. Próba ponownego wykorzystania jednego urządzenia na wielu etapach procesu produkcyjnego byłaby skomplikowana, dlatego w większości przypadków lepiej byłoby użyć większej liczby urządzeń, z których każdy jest zoptymalizowany do wykonania jednego bardzo konkretnego zadania (np. Jeśli konieczne jest wywiercenie 50 otwory o 10 różnych rozmiarach, wówczas minimalna konfiguracja wyposażenia obejmowałaby jedno wiertło z 10 bitami i mechanizm szybkiej wymiany, ale linia montażowa mogłaby mieć 50 wierteł z jednym na stałe zainstalowanym bitem i bez potrzeby szybkiej wymiany) .
W przypadku takich procesorów, jak procesory DSP lub GPU, możliwe jest stosunkowo tanie osiągnięcie bardzo wysokich prędkości, ponieważ charakter wykonywanej pracy jest bardzo spójny. Niestety wiele procesorów musi być w stanie obsłużyć dowolne błędy instrukcji o różnym stopniu złożoności. Wykonanie tego skutecznie jest możliwe, ale wymaga bardzo złożonej logiki planowania. W wielu współczesnych procesorach logika niezbędna do „wykonywania pracy” nie jest zbyt skomplikowana ani droga, ale logika konieczna do koordynowania wszystkiego innego jest.
źródło