W komentarzu do tej odpowiedzi Kortuk pyta, co jest zaletą ARM . Najpierw dodałem kilka argumentów do mojej odpowiedzi, ale myślę, że pytanie jest wystarczająco interesujące, aby samo w sobie było pytaniem, aby możliwe było uzyskanie większej liczby odpowiedzi.
61
Odpowiedzi:
Wydajność to jedna zaleta. Będąc 32-bitowym procesorem, przewyższa (prawie) wszystkie 8-bitowe kontrolery pod względem DMIPS. Rdzeń przeszedł także kilka generacji optymalizacji odczytu.
Te optymalizacje pokazują nie tylko liczby wydajności, ale także zużycie energii . Najnowszy rdzeń podwoił stosunek DMIPS / mW w porównaniu do poprzedniej generacji (patrz również ta odpowiedź ).
ARM jest dostępny od wielu producentów , bardziej niż jakikolwiek inny mikrokontroler, i każdy ma wiele wersji do wyboru, z różnymi kombinacjami urządzeń peryferyjnych i pamięci oraz pakietów. Przykład: NXP oferuje nie mniej niż 35 kontrolerów z wbudowanym Ethernetem .
ARM sąniedrogi ; ARM był prawdopodobnie pierwszym 32-bitowym kontrolerem, który przełamał barierę 1 USD.
Ta kombinacja wydajności , szerokiej oferty i niskich kosztów sprawia, że po prostu nie możesz zignorować ARM:
Rynek telefonów komórkowych ma także inny efekt. Telefony komórkowe są bardzo ograniczone przestrzennie i wymagają małych paczek. LPC1102 NXP jest dostępny w pakiecie WLP-16 o wielkości zaledwie 5 mm , skali używanej wcześniej tylko przez 8-bitowe mikrokontrolery o niskiej liczbie pinów.2)
źródło
Jeden punkt jeszcze nie wspomniany: w 1908 roku facet o nazwisku Pan PL Robertson wynalazł nowy ulepszony łeb śruby i wkrętak . Chciał być jedyną osobą, która produkuje śruby i wkręty zgodnie z jego projektem. Dziesiątki lat później ktoś o nazwisku Henry F. Phillips wpadł na alternatywny projekt . W przeciwieństwie do pana Robertsona, pan Phillips był bardziej zainteresowany licencjonowaniem swojego projektu niż produkcją śrub i sterowników.
Podobnie w latach 70. Sony opracowało technologię o nazwie Betamax ; JVC wymyślił VHS. Sony było zainteresowane produkcją magnetowidów; JVC był bardziej zainteresowany licencjonowaniem.
Wygląda na to, że jest tu pewien wzór. (Uwaga: przez jakiś czas Intel licencjonował technologię 80x86 , ale od dziesięcioleci koncentruje się bardziej na opracowywaniu technologii do użytku wewnętrznego).
źródło
Ten sam sprzęt / oprogramowanie do opracowania dla ARM wszystkich dostawców. Kupujesz JLINK / ULINK i trochę Keil IDE raz i możesz go używać do opracowywania, emulacji i debugowania prawie dowolnego ARM na planecie.
Nie trzeba uczyć się nowej architektury przy przejściu na nowego producenta chipa => mniej blokady dostawcy => większa konkurencja => niższe ceny
W nowoczesnych procesach technologicznych (0,18um i niższych) rdzeń ARM jest tak mały, że poświęcenie go dla 8-rdzeniowego rdzenia nie pozwoliłoby zaoszczędzić żadnej widocznej części ceny. Stąd powód wyboru standardowej, a jednocześnie taniej architektury.
Wydajność - tylko z ARM możesz mieć pojedynczy zegar 32 * 32-> 32 mnożenie i wsparcie sprzętowe dla 32 * 32-> 64 oraz podział dla urządzeń sub-1dollar (np. Niższych STM32 na przykład)
ARM nie jest zbyt chciwy i nie pobiera nieuzasadnionych opłat za licencje, więc producenci mogą produkować tanie mikroskopy.
źródło
Skupiam się na procesorach ARM klasy średniej z następujących powodów:
Pełna obsługa systemu Linux
Oznacza to, że sterowniki urządzeń są prawie bezpłatne. Zrobiłem wystarczająco dużo kodu hosta USB i urządzenia, nie chcę tego więcej robić. Nie jestem też zbyt podekscytowany próbą dodania TCP / IP do platformy losowego procesora (chociaż LwIP / uIP nie jest taki zły). Nigdy nawet nie próbowałem korzystać z Wi-Fi, prawdziwego stosu Bluetooth, kamer internetowych itp. Korzystanie z Linuksa oznacza, że bardzo szeroka gama urządzeń staje się znacznie łatwiejsza do rozmowy.
Byłem też bardzo zaskoczony, jak racjonalne i łatwe jest pisanie sterowników urządzeń z Linuksem. Po wykonaniu niektórych sterowników urządzeń z systemem Linux Linux jest snem. (Szczerze mówiąc, struktura sterowników systemu Windows znacznie się poprawiła, odkąd to robiłem).
Platforma oprogramowania jest również niesamowita. Dostaję szyfrowanie SSL, systemy plików, zdalne zarządzanie, łatwe aktualizacje aplikacji (skopiuj plik zamiast złożonego bootloadera) itp. Aha, i wiele istniejących narzędzi, jeśli potrzebujesz czegoś.
Jest również bezpłatny i znacznie łatwiej zginać się według własnej woli, niż twierdzić, że platforma WinCE o zamkniętym źródle byłaby. (Nie to, że jestem naprawdę idealistą open source ... dla mnie to bardzo praktyczne uzasadnienie.)
Mówię o rdzeniach ARM z rzeczywistymi MMU , więc dotyczy to układów średnich i wysokich (chociaż przypuszczam, że można użyć μClinux ).
Pobór energii
Jest to w zasadzie powtórzenie komentarzy innych, ale jest to dla mnie duży czynnik. Moja obecna platforma ARM 454 MHz pobiera 1/2 wata, 1 wata przy maks. Procesorze. Nie możesz nawet zbliżyć się do tego dzięki x86.
To właściwie moje rozumowanie. Nie widzę, żeby równanie zmieniło się w najbliższym czasie.
źródło
ARM przeszedł postępy:
Architektura ARM pozwala na wykonywanie bardzo skomplikowanych operacji bardzo szybko - znacznie szybciej niż na jakimkolwiek innym układzie. Na przykład (przy użyciu ARM7-TDMI):
Każdy moduł obsługi jest przechowywany jako bajt, co daje 1/4 przesunięcia adresu od początku tabeli. Efektem netto jest to, że po pobraniu zawartości magistrali adresowej potrzeba tylko sześciu cykli (dwóch instrukcji), aby przejść do modułu obsługi na podstawie pięciu górnych bitów pobranego pliku, używając 32-bajtowej tabeli skoków.
Odpowiadający kod THUMB byłby bardziej podobny do:
Z punktu widzenia gęstości kodu jest to w porządku, biorąc pod uwagę, że instrukcje są tylko w połowie tak duże jak oryginały, ale po pobraniu zajęłyby dziewięć cykli, a nie sześć. W aplikacji, w której obserwowany autobus będzie działał z własną prędkością, niezależnie od tego, czy ARM poradził sobie z tym, szybsze instrukcje ARM są dużym plusem.
Nawiasem mówiąc, Thumb2 jest binarnie kompatybilny z Thumb, co ułatwia korzystanie z wcześniejszych narzędzi, ale oznacza, że jest kilka rzeczy, których nie może zrobić tak dobrze, jak oryginalny ARM. Na przykład w ARM można „obrócić” bitmapę 8x8 przechowywaną w czterech rejestrach przy użyciu około 3 instrukcji na dwa bity:
W Thumb2 konieczne byłoby dodanie wyraźnych instrukcji warunkowych:
33% redukcja wydajności czasu i przestrzeni netto w porównaniu z ARM; oznacza to prawdopodobnie najgorszy przykład, że kod Kciuka jest mniej wydajny niż ARM, a nawet to nie jest aż tak straszne.
Jeszcze jedna niewielka wada Thumb2 w porównaniu z ARM: w kodzie ARM wszystkie instrukcje zaczynają się od granic pełnych słów, co ułatwia analizę statyczną. W Thumb2 instrukcje mogą dowolnie zaczynać się od granic półsłów i przekraczać granice pełnych słów. Analiza statyczna może być zatem znacznie trudniejsza.
źródło
Trochę to historia, Acorn chciał niestandardowego procesora (np. Z wbudowanymi kontrolkami pamięci itp.) Dla nowego komputera w latach 80. (8-bitowy 6502 ograniczał to, co mogli zrobić). Rozmawiali z Intelem, ale Intel nie udzieliłby im licencji na procesor.
Dlatego Acorn zaprojektował bardzo prosty procesor RISC, ale ponieważ nie byli producentem procesorów, byli gotowi udzielić licencji każdemu (i potrzebowali wszystkich szybkich pieniędzy, jakie mogli uzyskać!). (Wierzę, że procesor działał po raz pierwszy, częściowo dlatego, że był tak prosty, a także projektant stworzył wiele procesorów badawczych podczas Uniwersytetu Cambridge).
Z biegiem lat projektowanie procesora stawało się coraz łatwiejsze do uwzględnienia w projektowaniu układów klienta.
Producent chipów czuł się bezpiecznie licencjonowany przez Acorn, ponieważ nie byli konkurentami. Nikt też nie pomyślał, że jadą do rodzinnego miasta konkurenta, aby uzyskać licencję, ponieważ Acorn był w Cambridge (prawdziwy!) . (Czy szansa na „odkrycie faktów” podróży do Cambridge, aby odwiedzić Acorn, wpływa na zwarcie listy opcji w dowolnym momencie…)
Wiele projektów obejmujących procesor Acorn Risc Machine dotyczyło systemu osadzania, w którym zużycie energii było ważne. Dla procesora Acorn Risc Machine stworzono również tanie i dobre narzędzia programistyczne.
Kiedy więc telefony komórkowe zaczęły potrzebować niestandardowych układów z wbudowanym procesorem, Acorn został przemianowany na ARM, a reszta to już historia. (Być może nieco inaczej było, że inne procesory były w większości kontrolowane przez USA, ale telefony komórkowe najpierw stały się normalne w Europie)
(Czy coś z tego przypomina o Microsoft i Dos z małym nieznanym zespołem z IBM?)
Pomógł również fakt, że ARM był jednym z najlepszych procesorów w tamtym czasie (i nadal jest) do wielu zadań - ale samo posiadanie „najlepszej” konstrukcji procesora nie wystarczy.
źródło
Pomijając kwestie techniczne, istnieje wiele nietechnicznych powodów ARM. Ale szybka odpowiedź brzmi: to nie Intel (lub x86).
Jeśli spojrzysz na to, gdzie obecnie inwestowane są dolary R&D procesora, dzielą się one zasadniczo na dwa obozy: ARM i Intel. (Ignoruję małe MCU i wprowadzam AMD do Intela.) Bardzo mało pieniędzy idzie na PowerPC, MIPS, SPARC i inne duże procesory. ARM i Intel są jedynymi, które wciąż stoją.
Dzięki procesorom Intel i innym procesorom x86 zyskujesz ogromną ilość starszego bagażu. Na przykład potrzebujesz chipsetu, systemu BIOS i innych rzeczy. Nawet jeśli procesor był super energooszczędny, te inne urządzenia mają tendencję do obciążania systemu i zwiększania jego wydajności, zwiększania zużycia energii i zwiększania kosztów. Samo opracowanie płytki drukowanej z procesorem Intela jest ogromnym problemem, a następnie musisz negocjować z dostawcą BIOS-u itp. Co gorsza, wielu dostawców chipsetów, BIOS-ów, układów wideo itp. Po prostu nie chce robić interesy z małymi ludźmi, którzy nie sprzedają mniej niż milion jednostek rocznie.
Dzięki ARM nie masz tego bagażu. Istnieje wiele źródeł chipów od mikrokontrolerów do potworów wielordzeniowych. Nie musisz zajmować się licencjonowaniem systemu BIOS (co jest bardzo podobne do wizyty u sprzedawcy używanych samochodów). A producenci i dostawcy są ogólnie mili dla ciebie.
źródło
Porównaj ARM7 / ARM9 z MIPS IV, a korzyści wynikające z licencji są już dobrze wspomniane. Elementy wewnętrzne zestawu instrukcji MIPS i magistrali wewnętrznej sprawiają, że jest on lepszy (wydajność na koszt) w przypadku niektórych typów projektów; dlatego wiele routerów Wi-Fi używa rdzeni MIPS zamiast rdzeni ARM.
Ponieważ rdzenie ARM zostały zastosowane głównie w urządzeniach przenośnych, układy ASIC dodały więcej funkcji kontroli mocy, podczas gdy MIPS bardziej skupia się na wydajności na cykl niż na niższej mocy. Korzyść z RISC nad Intel x86 to inna dyskusja.
źródło
Nie ma prawdziwych zalet. Dołączone DSP i inne kontrolery, takie jak GSM, sprawiają, że są tak popularne.
źródło