Apakah Arsitektur x86 dirancang khusus untuk bekerja dengan keyboard sementara ARM berharap untuk dapat bergerak? Apa perbedaan utama antara keduanya?
Apakah Arsitektur x86 dirancang khusus untuk bekerja dengan keyboard sementara ARM berharap untuk dapat bergerak? Apa perbedaan utama antara keduanya?
Jawaban:
ARM
adalah arsitektur RISC (Reduced Instruction Set Computing) sementara itu x86
adalah CISC (Complex Instruction Set Computing).
Perbedaan utama antara mereka yang berada dalam aspek ini adalah bahwa instruksi ARM hanya beroperasi pada register dengan beberapa instruksi untuk memuat dan menyimpan data dari / ke memori sementara x86 dapat beroperasi secara langsung pada memori juga. Hingga v8 ARM adalah arsitektur asli 32 bit, lebih menyukai operasi empat byte daripada yang lain.
Jadi ARM adalah arsitektur yang lebih sederhana, mengarah ke area silikon kecil dan banyak fitur hemat daya sementara x86 menjadi binatang buas dalam hal konsumsi daya dan produksi.
Tentang pertanyaan pada " Apakah Arsitektur x86 dirancang khusus untuk bekerja dengan keyboard sementara ARM mengharapkan untuk mobile? ". x86
tidak dirancang khusus untuk bekerja dengan keyboard maupun ARM
untuk seluler. Namun sekali lagi karena pilihan arsitektur inti sebenarnya x86 juga memiliki instruksi untuk bekerja secara langsung IO
sementara ARM belum. Namun dengan bus IO khusus seperti USB, kebutuhan fitur-fitur tersebut juga menghilang.
Jika Anda membutuhkan dokumen untuk dikutip, inilah yang dikatakan Cortex-A Series Programmers Guide (4.0) tentang perbedaan antara arsitektur RISC dan CISC:
Prosesor ARM adalah prosesor Reduced Instruction Set Computer (RISC).
Prosesor Computer Instruction Set Computer (CISC), seperti x86, memiliki rangkaian instruksi yang kaya yang mampu melakukan hal-hal kompleks dengan satu instruksi. Prosesor seperti itu sering kali memiliki sejumlah besar logika internal yang menerjemahkan sandi instruksi mesin ke urutan operasi internal (mikrokode).
Arsitektur RISC, sebaliknya, memiliki lebih sedikit instruksi keperluan umum, yang dapat dieksekusi dengan transistor yang jauh lebih sedikit, membuat silikon lebih murah dan lebih hemat daya. Seperti arsitektur RISC lainnya, core ARM memiliki sejumlah besar register tujuan umum dan banyak instruksi dijalankan dalam satu siklus tunggal. Ini memiliki mode pengalamatan sederhana, di mana semua memuat / menyimpan alamat dapat ditentukan dari daftar isi dan bidang instruksi.
Perusahaan ARM juga menyediakan makalah berjudul Artikel Arsitektur, Prosesor, dan Pengembangan Perangkat yang menjelaskan bagaimana istilah-istilah tersebut berlaku untuk bisnis mereka.
Contoh membandingkan arsitektur kumpulan instruksi:
Sebagai contoh jika Anda akan memerlukan semacam blok perbandingan memori di aplikasi Anda (dihasilkan oleh kompiler, melewatkan detail), ini adalah bagaimana itu terlihat seperti pada x86
repe cmpsb /* repeat while equal compare string bytewise */
sementara pada ARM
formulir terpendek mungkin terlihat seperti (tanpa pemeriksaan kesalahan dll.)
top:
ldrb r2, [r0, #1]! /* load a byte from address in r0 into r2, increment r0 after */
ldrb r3, [r1, #1]! /* load a byte from address in r1 into r3, increment r1 after */
subs r2, r3, r2 /* subtract r2 from r3 and put result into r2 */
beq top /* branch(/jump) if result is zero */
yang seharusnya memberi Anda petunjuk tentang bagaimana set instruksi RISC dan CISC berbeda dalam kompleksitas.
Tidak ada yang spesifik untuk keyboard atau ponsel, selain fakta bahwa selama bertahun-tahun ARM memiliki keunggulan yang cukup besar dalam hal konsumsi daya, yang membuatnya menarik untuk semua jenis perangkat yang dioperasikan dengan baterai.
Sejauh perbedaan sebenarnya: ARM memiliki lebih banyak register, mendukung predikasi untuk sebagian besar instruksi jauh sebelum Intel menambahkannya, dan telah lama memasukkan semua jenis teknik (sebut saja "trik", jika Anda mau) untuk menghemat daya hampir di mana pun ia bisa.
Ada juga perbedaan yang cukup besar dalam cara keduanya menyandikan instruksi. Intel menggunakan pengkodean panjang variabel yang cukup rumit di mana sebuah instruksi dapat menempati mana saja dari 1 hingga 15 byte. Hal ini memungkinkan program menjadi sangat kecil, tetapi membuat decoding instruksi relatif sulit (seperti pada: instruksi decoding cepat secara paralel lebih seperti mimpi buruk lengkap).
ARM memiliki dua mode pengkodean instruksi yang berbeda: ARM dan THUMB. Dalam mode ARM, Anda mendapatkan akses ke semua instruksi, dan pengodeannya sangat sederhana dan cepat untuk diterjemahkan. Sayangnya, kode mode ARM cenderung cukup besar, sehingga cukup umum bagi sebuah program untuk menempati sekitar dua kali lebih banyak memori daripada kode Intel. Mode jempol mencoba untuk mengurangi itu. Ini masih menggunakan pengodean instruksi yang cukup teratur, tetapi mengurangi sebagian besar instruksi dari 32 bit menjadi 16 bit, seperti dengan mengurangi jumlah register, menghilangkan predikasi dari sebagian besar instruksi, dan mengurangi jangkauan cabang. Setidaknya dalam pengalaman saya, ini masih tidak biasanya memberi cukupsebagai padat coding sebagai kode x86 bisa dapatkan, tetapi cukup dekat, dan decoding masih cukup sederhana dan mudah. Kepadatan kode yang lebih rendah berarti Anda biasanya membutuhkan setidaknya sedikit lebih banyak memori dan (umumnya lebih serius) cache yang lebih besar untuk mendapatkan kinerja yang setara.
Pada suatu waktu Intel lebih menekankan pada kecepatan daripada konsumsi daya. Mereka mulai menekankan konsumsi daya terutama pada konteks laptop. Untuk laptop, tujuan daya tipikal mereka adalah 6 watt untuk laptop yang cukup kecil. Baru-baru ini ( banyak baru-baru ini) mereka sudah mulai menargetkan perangkat mobile (ponsel, tablet, dll) Untuk pasar ini, mereka sedang melihat beberapa watt atau lebih paling banyak. Mereka tampaknya melakukan cukup baik pada hal itu, meskipun pendekatan mereka secara substansial berbeda dari ARM, menekankan teknologi fabrikasi di mana ARM sebagian besar menekankan arsitektur mikro (tidak mengherankan, mengingat ARM menjual desain, dan meninggalkan fabrikasi kepada orang lain).
Tergantung pada situasinya, konsumsi energi CPU seringkali lebih penting daripada konsumsi dayanya. Setidaknya saat saya menggunakan istilah ini, konsumsi daya mengacu pada penggunaan daya berdasarkan (lebih atau kurang) secara instan. Akan tetapi, konsumsi energi menjadi normal untuk kecepatan, jadi jika (misalnya) CPU A mengkonsumsi 1 watt selama 2 detik untuk melakukan pekerjaan, dan CPU B mengkonsumsi 2 watt selama 1 detik untuk melakukan pekerjaan yang sama, kedua CPU mengkonsumsi jumlah total yang sama energi (dua watt detik) untuk melakukan pekerjaan itu - tetapi dengan CPU B, Anda mendapatkan hasil dua kali lebih cepat.
Prosesor ARM cenderung bekerja sangat baik dalam hal konsumsi daya. Jadi jika Anda membutuhkan sesuatu yang membutuhkan "kehadiran" prosesor hampir secara konstan, tetapi tidak benar-benar melakukan banyak pekerjaan, mereka dapat bekerja dengan cukup baik. Misalnya, jika Anda melakukan konferensi video, Anda mengumpulkan beberapa milidetik data, kompres, kirim, terima data dari orang lain, dekompres, putar kembali, dan ulangi. Bahkan prosesor yang sangat cepat tidak dapat menghabiskan banyak waktu untuk tidur, jadi untuk tugas seperti ini, ARM bekerja dengan sangat baik.
Prosesor Intel (khususnya prosesor Atom mereka, yang sebenarnya ditujukan untuk aplikasi berdaya rendah) sangat kompetitif dalam hal konsumsi energi. Sementara mereka berjalan mendekati kecepatan penuh mereka, mereka akan mengkonsumsi daya lebih dari kebanyakan prosesor ARM - tetapi mereka juga selesai bekerja dengan cepat, sehingga mereka dapat kembali tidur lebih cepat. Hasilnya, mereka dapat menggabungkan masa pakai baterai yang baik dengan kinerja yang baik.
Jadi, ketika membandingkan keduanya, Anda harus berhati-hati tentang apa yang Anda ukur, untuk memastikan bahwa itu mencerminkan apa yang benar-benar Anda pedulikan. ARM sangat baik dalam konsumsi daya, tetapi tergantung pada situasi Anda dapat dengan mudah lebih peduli tentang konsumsi energi daripada konsumsi daya sesaat.
Tambahan untuk paragraf pertama Jerry Coffin . Yaitu, desain ARM memberikan konsumsi daya yang lebih rendah.
Perusahaan ARM
, hanya melisensikan teknologi CPU. Mereka tidak membuat chip fisik. Ini memungkinkan perusahaan lain untuk menambahkan berbagai teknologi periferal, biasanya disebut SOC atau system-on-chip. Apakah perangkat itu tablet, ponsel, atau sistem hiburan dalam mobil. Ini memungkinkan vendor chip untuk menyesuaikan sisa chip dengan aplikasi tertentu. Ini memiliki manfaat tambahan,
ARM
mendukung vendor SOC dengan AMBA , memungkinkan pelaksana SOC untuk membeli dari rak modul pihak ke-3; seperti Ethernet, memori dan pengontrol interupsi. Beberapa platform CPU lain mendukung hal ini, seperti MIPS , tetapi MIPS tidak terlalu sadar daya.
Semua ini bermanfaat untuk desain yang dioperasikan dengan baterai / genggam. Beberapa hanya baik di sekitar. Selain itu, ARM
memiliki riwayat perangkat yang dioperasikan dengan baterai; Apple Newton , Penyelenggara Psion . The PDA software infra-struktur yang leveraged oleh beberapa perusahaan untuk membuat ponsel pintar jenis perangkat. Meskipun, lebih banyak keberhasilan dimiliki oleh mereka yang menemukan kembali GUI untuk digunakan dengan ponsel pintar .
Munculnya Open source
set alat dan operating systems
juga memfasilitasi berbagai SOC
chip. Organisasi tertutup akan mengalami masalah dalam mencoba mendukung semua perangkat yang tersedia untuk ARM. Dua platform seluler yang paling populer, Andriod dan OSx / IOS, berbasis Linux dan FreeBSD, Mach, dan NetBSD . Open Source
membantu SOC
vendor memberikan dukungan perangkat lunak untuk rangkaian chip mereka.
Mudah-mudahan, mengapa x86 digunakan untuk keyboard itu jelas. Ini memiliki perangkat lunak, dan yang lebih penting orang dilatih untuk menggunakan perangkat lunak itu. Netwinder adalah salah satu ARM
sistem yang awalnya dirancang untuk keyboard . Juga, pabrikan sedang mencari ARM64 untuk pasar server. Daya / panas menjadi perhatian di pusat data 24/7.
Jadi saya akan mengatakan bahwa ekosistem yang tumbuh di sekitar chip ini sama pentingnya dengan fitur seperti konsumsi daya yang rendah. ARM
telah berjuang untuk daya rendah, komputasi kinerja yang lebih tinggi untuk beberapa waktu (pertengahan hingga akhir 1980-an) dan mereka memiliki banyak orang.
Catatan1: Beberapa chip memerlukan driver bus untuk berkomunikasi dengan voltase dan drive yang diketahui. Juga, biasanya chip yang terpisah membutuhkan kapasitor dukungan dan komponen daya lain yang dapat dibagi dalam sistem SOC .
ARM seperti mobil sport Italia:
X86 seperti mobil otot Amerika:
Singkatnya: x86 didasarkan pada desain dari tahun 1974 dan bagus dalam garis lurus (tetapi menggunakan banyak bahan bakar). Lengan menggunakan sedikit bahan bakar, tidak memperlambat untuk sudut (cabang).
Metafora atas, berikut adalah beberapa perbedaan nyata.
Arsitektur ARM awalnya dirancang untuk komputer pribadi Acorn (Lihat Acorn Archimedes , sekitar 1987, dan RiscPC ), yang sama banyaknya dengan komputer pribadi berbasis-keyboard seperti model PC IBM berbasis x86. Hanya kemudian implementasi ARM ditargetkan pada segmen pasar seluler dan tertanam.
Awalnya, CPU RISC sederhana dengan kinerja yang hampir setara dapat dirancang oleh tim teknik yang jauh lebih kecil (lihat Berkeley RISC ) daripada yang bekerja pada pengembangan x86 di Intel.
Tetapi, saat ini, chip ARM tercepat memiliki unit pengiriman instruksi multi-isu yang sangat kompleks yang dirancang oleh tim teknik besar, dan core x86 mungkin memiliki sesuatu seperti inti RISC yang diumpankan oleh unit terjemahan instruksi.
Jadi, setiap perbedaan saat ini antara kedua arsitektur lebih terkait dengan kebutuhan pasar spesifik dari ceruk produk yang ditargetkan oleh tim pengembangan. (Pendapat acak: ARM mungkin menghasilkan lebih banyak biaya lisensi dari aplikasi yang disematkan yang cenderung jauh lebih banyak daya dan biaya terkendala. Dan Intel perlu mempertahankan keunggulan kinerja di PC dan server untuk margin keuntungan mereka. Dengan demikian Anda dapat melihat berbagai optimasi implementasi.)