Apa yang hebat tentang ARM?

61

Dalam komentar untuk jawaban ini Kortuk bertanya apa keuntungan ARM . Saya pertama kali menambahkan beberapa argumen dalam jawaban saya, tetapi saya pikir pertanyaannya cukup menarik untuk dijadikan pertanyaan, sehingga lebih banyak jawaban yang mungkin.

stevenvh
sumber
1
jawaban Anda tampaknya konstruktif pada pertanyaan yang paling tidak konstruktif, tetapi saya khawatir orang lain akan menulis jawaban yang sangat keras kepala. Kami akan melihat apakah orang mencoba untuk merintangi bilah yang telah Anda tetapkan.
Kortuk
@Kortuk - Jangan ragu untuk mengedit kata-kata dari pertanyaan atau judul jika menurut Anda mungkin membantu untuk mendapatkan jawaban yang lebih baik. (Lagi pula itu adalah pertanyaan Anda)
stevenvh
5
Pertanyaan ini menanyakan perang agama. Jika bukan karena orang-orang bertanya dan berkomentar, saya akan memilih untuk segera menutup ini. Ingat, Anda tahu bahwa Anda selalu benar dan orang lain adalah seorang kafir yang biadab ketika itu adalah masalah iman. Biarkan jihad dimulai ...
Olin Lathrop
@olinLathrop, itulah yang saya tonton. Saat ini sepertinya kami mendapatkan jawaban berkualitas sangat tinggi tanpa pertengkaran. Saya mungkin akan membuat ini jangka panjang CW dan memungkinkan umpan google ditambah dengan informasi menarik di lengan untuk hidup. Saya biasanya menutup ini langsung tetapi @stevenvh memang membukanya dengan jawaban yang bagus dan tampaknya telah menetapkan nada kualitas.
Kortuk

Jawaban:

51

Kinerja adalah satu keuntungan. Menjadi prosesor 32-bit itu mengungguli (hampir) semua pengontrol 8-bit DMIPS-bijaksana. Inti juga telah melewati beberapa generasi, baca optimasi.
Optimalisasi ini tidak hanya menunjukkan angka kinerja, tetapi juga konsumsi daya . Inti terbaru telah menggandakan rasio DMIPS / mW dibandingkan dengan generasi sebelumnya (lihat juga jawaban ini ).
ARM tersedia dari banyak pabrikan , lebih banyak daripada mikrokontroler lainnya, dan masing-masing memiliki sejumlah versi untuk dipilih, dengan kombinasi berbeda dari periferal dan memori on-chip, serta paket. Contoh kasus: NXP menawarkan tidak kurang dari 35 pengontrol dengan Ethernet on-chip .
ARM adalahmurah ; ARM mungkin merupakan pengontrol 32-bit pertama yang menembus batas USD 1.

Kombinasi kinerja , penawaran luas, dan biaya rendah ini menjadikan Anda tidak bisa mengabaikan ARM:

Pada tahun 2005 sekitar 98 persen dari semua ponsel menggunakan setidaknya satu inti ARM yang dirancang pada motherboard mereka, menurut penelitian dari perusahaan analis Grup Linley. ( sumber )

Pasar ponsel juga memiliki efek lain. Ponsel sangat terbatas ruang dan membutuhkan paket kecil. LPC1102 NXP hadir dalam paket WLP-16 hanya 5mm , skala yang sebelumnya hanya digunakan oleh mikrokontroler 8-bit pin-count rendah.2

stevenvh
sumber
1
Saya hanya bisa menambahkan, bahwa ARM pasti mikro 32-bit pertama yang menembus titik harga $ 0,5 (Cortex M0 dalam kuantiny)
BarsMonster
@Barsmonster - Keren! Sepertinya satu-satunya masa depan untuk 8-bit adalah dalam 2mm x 3mm DFN
stevenvh
@ Diri - dan mungkin bahkan tidak. Lihat tambahan tentang LPC1102 dalam jawaban saya.
stevenvh
@stevenvh - Yah masih ada keunggulan konsumsi daya. Mode tidur LPC1102 @ 12MHz menggunakan 1mA. Tidak buruk, tetapi sekitar 1000 kali lebih banyak dari [16 bit] msp430.
Imbrondir
1
@diri - Gosok keunggulan itu juga. Setelah beberapa pencarian tampaknya Energy Micro memiliki M3 yang dalam mode tidur + RTC dapat turun ke 0,6uA.
Imbrondir
37

Satu hal yang belum disebutkan: Pada tahun 1908, seorang pria bernama Tn. PL Robertson menemukan kepala sekrup dan pengemudi yang lebih baik . Dia ingin menjadi satu-satunya orang yang membuat sekrup dan driver untuk desainnya. Beberapa dekade kemudian, seseorang bernama Mr. Henry F. Phillips datang dengan desain alternatif . Tidak seperti Mr. Robertson, Mr. Phillips lebih tertarik untuk melisensikan desainnya daripada memproduksi sekrup dan driver.

Demikian juga, pada 1970-an, Sony muncul dengan teknologi yang disebut Betamax ; JVC datang dengan satu yang disebut VHS. Sony tertarik untuk memproduksi VCR; JVC lebih tertarik pada perizinan.

Tampaknya ada pola di sini. (Catatan: Untuk sementara, Intel memang melisensikan teknologi 80x86 -nya , tetapi selama beberapa dekade lebih fokus pada pengembangan teknologi untuk penggunaan internalnya.)

Peter Mortensen
sumber
4
Iya. Saya pikir skema lisensi untuk kekayaan intelektual ARM adalah penyebab kesuksesan.
10
ARM memungkinkan sejumlah besar fleksibilitas dengan lisensinya. Jika Anda hanya perlu IP untuk pasangan inti, tidak perlu terlalu banyak biaya. Tetapi jika Anda ingin membuat chip yang sangat disesuaikan, dioptimalkan sepenuhnya oleh desainer chip Anda, harganya lebih mahal tetapi merupakan pilihan yang tersedia. Jadi perusahaan seperti Apple dapat mengembangkan lini prosesornya sendiri yang dioptimalkan untuk aplikasi mereka. Sebagian besar perusahaan tidak akan membiarkan perhiasan mahkota sebanyak itu berada di luar kendali mereka.
Mike DeSimone
Penting untuk dicatat bahwa ARM tidak bersaing dengan jajaran x86 Intel (bahkan tidak juga di ruang yang digunakan prosesor Atom baru). Jika jawaban Anda dimaksudkan untuk menyatakan hal itu, itu tidak benar. Arsitektur Intel Moorestown dan Medfield (dimaksudkan untuk) bersaing dalam ruang yang sama dengan ARM.
Markus
1
Sudah lama sejak garis 80x86 Intel telah kompetitif dalam jenis aplikasi di mana ARM akan digunakan hari ini, tetapi 8088, 8086, 80286, dan 80386, yang semuanya berlisensi, populer dengan sistem embedded. Komentar saya tentang Intel terutama untuk mengakui bahwa Intel populer hari ini terlepas dari kenyataan bahwa itu tidak berlisensi seperti ARM.
supercat
@supercat: Intel banyak lisensi IP lunak hari ini. Ini juga menyediakan alat desain dan SIP untuk desain FPGA ( intel.com/content/www/us/en/fpga/ip-and-design-tools.html )
jbord39
32
  1. Perangkat keras / lunak yang sama untuk dikembangkan untuk ARM dari semua vendor. Anda membeli JLINK / ULINK dan beberapa IDE Keil satu kali, dan dapat menggunakannya untuk mengembangkan, meniru, dan men-debug hampir semua ARM di planet.

  2. Tidak perlu mempelajari arsitektur baru ketika pindah ke vendor chip baru => lebih sedikit vendor lockin => lebih banyak kompetisi => harga yang lebih rendah

  3. Dalam proses teknologi modern (0.18um dan di bawah) inti ARM sangat kecil, sehingga mengorbankannya untuk inti 8bit tidak akan menghemat sebagian kecil dari harga yang terlihat. Oleh karena itu alasan pergi untuk arsitektur standar kinerja tinggi namun murah.

  4. Kinerja - hanya dengan ARM Anda dapat memiliki jam tunggal 32 * 32-> 32 multiplikasi dan dukungan perangkat keras untuk 32 * 32-> 64 dan pembagian untuk perangkat sub-1dollar (yaitu, STM32 kelas bawah misalnya)

  5. ARM tidak terlalu serakah, dan tidak mengenakan biaya yang tidak masuk akal untuk lisensi, sehingga produsen dapat menghasilkan micros murah.

BarsMonster
sumber
27

Saya fokus pada prosesor ARM mid-range karena alasan berikut:

  1. Dukungan Linux penuh

    Ini berarti driver perangkat hampir gratis. Saya sudah melakukan cukup host USB dan kode perangkat, saya tidak ingin melakukan itu lagi. Saya juga tidak terlalu senang tentang mencoba untuk menambahkan TCP / IP untuk platform prosesor acak (meskipun lwIP / uIP bukan yang buruk). Saya bahkan tidak pernah mencoba melakukan Wi-Fi, tumpukan Bluetooth nyata, webcam, dll. Menggunakan Linux berarti berbagai perangkat yang sangat luas menjadi lebih mudah untuk diajak bicara.

    Saya juga sangat kagum pada betapa rasional dan mudahnya menulis driver perangkat Linux. Setelah melakukan beberapa driver perangkat Windows, Linux adalah mimpi. (Agar adil, kerangka kerja driver Windows telah meningkat banyak sejak saya melakukannya.)

    Platform perangkat lunaknya juga luar biasa. Saya mendapatkan enkripsi SSL, sistem file, manajemen jarak jauh, pembaruan aplikasi yang mudah (menyalin file alih-alih bootloader yang kompleks), dll. Oh, dan banyak utilitas yang ada jika Anda perlu melakukan sesuatu.

    Ini juga bebas royalti dan jauh lebih mudah untuk tunduk pada keinginan Anda daripada mengatakan platform WinCE sumber tertutup . (Bukan berarti saya benar-benar idealis open source ... itu semua alasan yang sangat praktis bagi saya.)

    Saya berbicara tentang ARM core dengan MMU yang sebenarnya , jadi ini untuk chip menengah ke atas (walaupun Anda bisa menggunakan μClinux, saya kira).

  2. Konsumsi daya

    Ini pada dasarnya adalah pengulangan dari komentar orang lain, tetapi itu adalah faktor besar bagi saya. Platform ARM 454 MHz saya saat ini menghasilkan 1/2 watt, 1 watt pada CPU maks. Anda bahkan tidak bisa mendekati itu dengan x86.

Itu alasan saya. Saya tidak melihat persamaan berubah dalam waktu dekat.

darron
sumber
2
Terkait: Beberapa opsi RTOS.
Steve S
Sebagian besar jawaban Anda hanya berlaku untuk sebagian besar arsitektur CPU di luar sana seperti halnya untuk ARM. Banyak dari mereka berlaku untuk 2) juga. Daftar arsitektur yang didukung oleh Linux adalah PANJANG dan ARM hanya salah satunya.
Markus
19

ARM telah mengalami kemajuan:

  1. Arsitektur 32-bit-instruksi, yang memiliki kode lebih besar daripada banyak arsitektur lain, tetapi yang dapat diterjemahkan dengan cepat dan dapat melakukan banyak operasi dengan instruksi lebih sedikit daripada arsitektur yang bersaing
  2. Arsitektur format dua instruksi, yang dapat beralih di antara set instruksi ARM yang bagus dan kuat (tapi sayangnya agak membengkak), dan set instruksi "Thumb" 16-bit yang kurang kuat (tapi jauh lebih ringkas). Setiap instruksi Jempol memiliki instruksi ARM yang sesuai, meminimalkan kebutuhan programmer untuk mempelajari dua set instruksi.
  3. Arsitektur Thumb2, yang menambahkan instruksi dua kata ke set instruksi Thumb, menghasilkan apa yang sebagian besar win-win: kode ARM khas akan berisi campuran instruksi yang hanya tersedia di ARM, dan instruksi yang akan tersedia di Thumb tetapi harus direpresentasikan sebagai 32 bit; di Thumb2, kode tersebut mendapat manfaat ruang menggantikan beberapa instruksi 32-bit dengan yang 16-bit.
  4. Arsitektur khusus-jempol, yang lebih membatasi daripada yang saya rawat, tetapi yang lebih kecil dan lebih murah daripada yang lain.

Arsitektur ARM memungkinkan beberapa operasi yang agak canggih untuk dilakukan dengan sangat cepat - jauh lebih cepat daripada chip lainnya. Misalnya (menggunakan ARM7-TDMI):

  ldrh r0, [r10, # ADDR_BUS_OFS]; Baca bus alamat sistem target (13 bit)
  ldrb r1, [r9, r0, lsr # 8]; Gunakan bit atas untuk mencari alamat di tabel penangan
  tambahkan pc, r9, r1 lsl # 2; Pergi ke penangan yang tepat

Setiap handler disimpan sebagai byte, yang memberikan 1/4 perpindahan alamat dari awal tabel. Efek bersihnya adalah setelah isi bus alamat diambil, hanya dibutuhkan enam siklus (dua instruksi) untuk melompat ke handler berdasarkan lima bit teratas dari yang diambil, menggunakan tabel lompat 32-byte.

Kode THUMB yang sesuai akan lebih seperti:

; Dengan asumsi kita tidak perlu r6 / r7 untuk hal lain, mereka dipindahkan dari r9 / r10
  ldrh r0, [r7, # ADDR_BUS_OFS]
  mov r1, r0
  lsr r1, r1, # 8; THUMB membutuhkan sumber dan tujuan yang sama
  ldrb r1, [r6, r1]
  lsl r1, r1, # 1; Bisa menggunakan shift-left-two, jika alamat target disejajarkan dengan kata lengkap
  tambahkan pc, r1

Itu bagus dari sudut pandang kepadatan kode, mengingat bahwa instruksi hanya setengah sebesar aslinya, tetapi akan mengambil sembilan siklus setelah pengambilan daripada enam. Dalam aplikasi di mana bus yang diawasi akan berjalan dengan kecepatannya sendiri apakah ARM berhasil menanganinya, instruksi ARM yang lebih cepat adalah nilai tambah yang besar.

Kebetulan, Thumb2 adalah biner yang kompatibel dengan Thumb, yang memfasilitasi penggunaan alat sebelumnya, tetapi berarti ada beberapa hal yang tidak dapat dilakukan serta ARM asli. Misalnya, dalam ARM, seseorang dapat "memutar" bitmap 8x8 yang disimpan dalam empat register menggunakan sekitar 3 instruksi per dua bit:

  movs r0, r4, lsl # 25; Masukkan bit atas LSB ke dalam C dan bit berikutnya ke N
  orrcs r6, # 0x00000001
  orrmi r6, # 0x00000100

Di Thumb2, perlu menambahkan instruksi kondisional eksplisit:

  movs r0, r4, lsl # 25; Masukkan bit atas LSB ke dalam C dan bit berikutnya ke N
  itcs
  orrcs r6, # 0x00000001
  itmi
  orrmi r6, # 0x00000100

Net 33% pengurangan efisiensi waktu dan ruang dibandingkan dengan ARM; itu mungkin tentang contoh terburuk dari kode Jempol yang kurang efisien daripada ARM, dan bahkan itu tidak sepenuhnya mengerikan.

Satu kerugian kecil lain dari Thumb2 dibandingkan dengan ARM: dalam kode ARM, semua instruksi mulai dari batas kata penuh, memfasilitasi analisis statis. Di Thumb2, instruksi bisa secara sewenang-wenang mulai dari batas setengah kata dan mengangkangi batas kata penuh. Analisis statis dapat jauh lebih sulit.

supercat
sumber
14

Sedikit adalah sejarah, Acorn menginginkan CPU kustom (misalnya dengan built in memory control dll) untuk komputer baru pada 1980-an (The 8 bit 6502 membatasi apa yang bisa mereka lakukan). Mereka berbicara dengan Intel, tetapi Intel tidak akan memberikan lisensi CPU kepada mereka.

Jadi Acorn merancang CPU RISC yang sangat sederhana, tetapi karena mereka bukan produsen CPU, mereka bersedia melisensikannya kepada siapa pun (dan membutuhkan semua uang cepat yang bisa mereka dapatkan!). (Saya percaya CPU bekerja pertama kali, sebagian karena itu sangat sederhana dan juga perancang telah menciptakan banyak CPU penelitian selama di Universitas Cambridge.)

Selama bertahun-tahun desain CPU menjadi lebih mudah dan lebih mudah untuk dimasukkan dalam desain chip pelanggan.

Pembuat chip merasa lisensi aman dari Acorn karena mereka bukan pesaing. Juga tidak ada yang mengira mereka akan pergi ke kota asal pesaing untuk mendapatkan lisensi, karena Acorn ada di Cambridge (yang asli!) . (Apakah ada kemungkinan perjalanan “pencarian fakta” ​​ke Cambridge sehingga untuk mengunjungi Acorn memengaruhi shorting daftar opsi di setiap titik….)

Banyak desain yang termasuk CPU Acorn Risc Machine untuk sistem embed adalah penggunaan daya adalah penting. Alat pengembangan yang murah dan bagus juga diciptakan untuk CPU Mesin Acorn Risc.

Jadi ketika ponsel mulai membutuhkan chip khusus dengan CPU yang disematkan, Acorn diubah namanya menjadi ARM dan sisanya adalah sejarah. (Mungkin itu juga sedikit bahwa sebagian besar CPU lain dikendalikan oleh AS, tetapi ponsel pertama kali menjadi normal di Eropa)

(Apakah semua ini mengingatkan Anda tentang Microsoft dan Dos dengan tim kecil yang tidak dikenal dari IBM?)

Fakta bahwa ARM adalah salah satu CPU terbaik pada saat itu (dan masih) untuk banyak tugas memang membantu juga - tetapi hanya memiliki desain CPU "terbaik" tidak cukup.

Ian Ringrose
sumber
Acorn RISC Machine sebenarnya diubah namanya menjadi Advanced RISC Machines (yang merinci ARM). Juga hanya cabang CPU ARM dari Acorn yang independen dan dikenal sebagai Advanced RISC Machines. Acorn melanjutkan pengembangan RISC-OS-nya dan saya percaya ini sekarang diketahui oleh yang terakhir juga.
jippie
13

Selain masalah teknis, ada banyak alasan non-teknis untuk ARM. Tetapi jawaban cepatnya adalah ini: Ini bukan Intel (atau x86).

Jika Anda melihat di mana CPU R&D dolar diinvestasikan sekarang, pada dasarnya mereka jatuh ke dalam dua kubu: ARM dan Intel. (Saya mengabaikan MCU kecil, dan saya menyamakan AMD dengan Intel.) Ada sangat sedikit uang masuk ke PowerPC, MIPS, SPARC, dan CPU besar lainnya. ARM dan Intel adalah satu-satunya yang masih berdiri.

Dengan Intel dan CPU x86 lainnya, Anda mendapatkan banyak bagasi warisan. Misalnya, Anda memerlukan chipset, BIOS, dan hal-hal lainnya. Sekalipun CPU itu sangat hemat daya, perangkat-perangkat lain itu cenderung membebani sistem Anda dan membuatnya lebih besar, lebih lapar daya, dan lebih mahal. Hanya mengembangkan PCB dengan CPU Intel adalah masalah besar, dan kemudian Anda harus bernegosiasi dengan vendor BIOS, dll. Untuk memperburuk keadaan, banyak vendor untuk chipset, BIOS, chip video, dll. Hanya tidak ingin untuk melakukan bisnis dengan orang-orang kecil yang tidak akan menjual kurang dari satu juta unit setahun.

Dengan ARM, Anda tidak memiliki bagasi itu. Ada banyak sumber chip dari hal-hal mikrokontroler hingga monster multi-core. Anda tidak perlu berurusan dengan lisensi BIOS (yang seperti pergi ke penjual mobil bekas). Dan manufaktur dan vendor umumnya baik untuk Anda.

pengguna3624
sumber
2
Jangan abaikan MCU kecil. ARM juga mendapatkan pangsa pasar yang besar dengan seri Cortex-M mereka. Saya akan berpikir dua kali hari ini tentang menggunakan pengontrol 32-bit non-ARM.
Mike DeSimone
Ya, saya setuju @Mike. ARM saat ini berusaha untuk memperluas ke pasar daya tinggi yang mendominasi intel seperti server. Mereka dikenal dengan mikrokontroler jarak menengah ke atas dan mikroprosesor rentang menengah ke bawah
Kortuk
Intel melisensikan lebih banyak IP hari ini (terutama akuisisi Altera). Lihat: intel.com/content/www/us/en/fpga/ip-and-design-tools.html misalnya.
jbord39
12

Bandingkan ARM7 / ARM9 dengan MIPS IV dan ada sedikit keuntungan selain masalah lisensi yang telah disebutkan dengan baik. Internal dari set instruksi MIPS dan bus internal membuatnya unggul (kinerja per biaya) untuk jenis desain tertentu; itulah sebabnya banyak router Wi-Fi menggunakan core MIPS daripada core ARM.

Karena core ARM diterapkan sebagian besar ke perangkat genggam, ASIC menambahkan lebih banyak fitur kontrol daya sedangkan MIPS lebih berfokus pada kinerja per siklus daripada daya yang lebih rendah. Manfaat RISC dibandingkan Intel x86 adalah diskusi yang berbeda.

Peter Mortensen
sumber
1
Perhatikan bahwa garis PIC 32 Microchip menggunakan inti MIPS. MIPS karena itu tersedia dalam paket kecil, murah, mandiri, dan berdaya rendah juga. Selanjutnya, Anda dapat menggunakan MPLAB pada mereka, yang merupakan sesuatu yang tidak dapat Anda lakukan dengan ARM apa pun.
Olin Lathrop
Komentar lain yang saya dengar dari desainer ASIC adalah bahwa ARM AHB dan APB sulit untuk dikerjakan (mungkin karena lisensi yang terpisah, atau masalah desain). Sedangkan bus MIPS entah bagaimana lebih mudah. Artinya: inti adalah satu hal; periferal di luar inti juga perlu dipertimbangkan.
Jonathan Cline
-8

Tidak ada keuntungan nyata. Terlampir DSP dan pengendali lain, seperti GSM adalah apa yang membuatnya begitu populer.

Peter Mortensen
sumber
3
jawaban lain tampaknya tidak setuju.
Kortuk
1
-1 Segala sesuatu di Bumi memiliki kelebihan dan kekurangan!
RHaguiuda