Laptop biasanya memiliki paling banyak empat core, dan dualcores mungkin lebih umum. Saya baru-baru ini beralih dari quadcore ke dualcore dan saya dapat mengkonfirmasi ada sejumlah usecases untuk quadcore, bahkan dengan tugas-tugas intensif CPU.
Di sisi lain, di ponsel, quadcores, hexacores, dan octacores tampaknya umum. Mengapa? Tugas apa yang bisa memanfaatkannya?
Saya mengerti hal itu. LITTLE dapat menjadi bagian dari jawabannya. Artinya, manfaat utama dari begitu banyak core bukanlah kemampuan untuk menggunakan semuanya secara bersamaan, melainkan menggunakan inti dengan konsumsi daya yang sesuai untuk beban kerja saat ini. Namun, misalnya, Snapdragon 625 memiliki delapan inti Cortex-A53, yang tampaknya tidak menjadi masalah bagi big.LITTLE.
Mungkin arsitektur ARM memiliki titik kinerja optimal yang lebih rendah per watt. Yaitu, memiliki satu inti disetel untuk kinerja optimal per watt menghasilkan kinerja yang lebih rendah pada ARM daripada pada Intel. Jadi, lebih banyak core digunakan untuk memberikan kinerja. Ini hanya sebuah hipotesis.
Tetapi bahkan dalam kasus ini, saya tidak melihat beban kerja apa yang dapat digunakan secara efisien, katakanlah, delapan core pada ponsel. Di laptop, saya bisa membayangkan beberapa kompilasi penuh seperti proyek (non-incremental). Tetapi di telepon?
- Game bisa haus akan kinerja, tetapi biasanya membutuhkan kinerja GPU daripada CPU, bukan?
- Secara teoritis, beberapa core dapat mempercepat kompilasi Android Lollipop / Marshmallow AOT saat menginstal atau ketika meningkatkan (yaitu, fase "Mengoptimalkan aplikasi 3/121"). Namun, saya tidak yakin apakah ini dapat memanfaatkan banyak core. Sejauh yang saya ingat kode, hanya satu aplikasi sedang dikompilasi pada satu waktu, tetapi mungkin ada beberapa paralelisme dalam proses kompilasi itu sendiri.
- Android 7+ juga dapat menggunakan banyak core saat kompilasi. Namun karena dilaporkan dikompilasi saat idle dan charging, manfaatnya tampaknya agak minim. Setidaknya ketika seseorang mengisi baterai telepon semalam - saya benar-benar tidak peduli jika perlu 30 menit atau dua jam dalam skenario seperti itu.
Jawaban:
Seperti yang Anda sudah dicatat, yang big.LITTLE strategi kombinasi (secara teknis, HMP , heterogen Multi-Processing cluster) adalah alasan utama untuk begitu banyak (dan kadang-kadang sangat banyak) core. Perangkat seluler seringkali mengalami beberapa skenario, termasuk yang berat dan ringan.
Contoh kelas konsumen yang ekstrem adalah MediaTek's Helio X20, yang memiliki 2 core A72 yang berorientasi pada kinerja, 4 core A53 yang seimbang, ditambah 4 core A35 yang hemat energi. Itu sangat fleksibel di seluruh kasus penggunaan yang berbeda. Namun, saya pikir
8 core2 cluster biasanya cukup.Ada juga contoh seperti desktop lainnya, Qualcomm Snapdragon 800 series (S 800, S 801, dan S 805). Hanya ada 4 core mikroarsitektur yang sama di setiap SoC, dengan 2 clock lebih tinggi dan 2 clock lebih rendah. Qualcomm membuat SoC ini karena mereka sangat percaya diri dengan mikroarsitektur mereka sendiri (Krait 400 dan Krait 450).
Untuk game, bahkan jika mereka tampaknya menuntut kinerja GPU daripada CPU, mereka tetap menempatkan beban berat pada CPU. GPU tidak dapat bekerja sendiri tanpa ada yang menyediakan data untuk diproses, dan itu adalah salah satu pekerjaan utama yang dilakukan CPU saat Anda bermain game. Dalam sebagian besar kasus gim, GPU hanya menampilkan gambar, sementara semua pekerjaan lain seperti memuat data, sumber daya dan aset, dan menghitung mekanika dalam gim seperti sistem, lingkungan, dan fisika dilakukan oleh CPU. Anda tidak akan mengamati frame rate yang lebih tinggi jika Anda meningkatkan GPU Anda sementara tetap berpegang pada CPU low-end.
Alasan kedua adalah bagaimana Android menggunakan sumber daya CPU . Android cukup banyak membuat lingkungan aplikasi mereka sendiri. Tidak menggunakan apa pun kecuali kode (dan API) dari Jawa, tetapi ia memiliki mesin virtual sendiri bernama Dalvik, yang kemudian digantikan oleh ART (API Level 21). APK memiliki kode yang dapat dieksekusi dalam format "netral", seperti halnya
.class
file di Jawa. Sebelum dijalankan, kode-kode dikompilasi sekali lagi ke dalam instruksi asli mesin [1] . Proses kompilasi multi-threaded dan dapat memanfaatkan multi-core untuk meningkatkan kinerja.Dan ketika aplikasi sedang berjalan, ada beberapa proses dan mekanik lainnya (seperti Pengumpul Sampah) yang berjalan di samping, atau sejajar dengan aplikasi. Semakin banyak inti yang memungkinkan proses pendukung berjalan lebih efisien, serta aplikasi utama.
1. Jika Anda menggunakan pengenal jenis file, Anda akan menemukan bahwa file dex "yang dioptimalkan" berada dalam format ELF, sedangkan file dex "netral" hanya dalam formatnya sendiri.
Alasan lain yang lebih kecil adalah bahwa core ARM tidak dapat bekerja secepat chip Intel x86 . Mikroarsitektur Intel x86 dapat berasal dari tahun 1976, ketika chip Intel 8086 mulai dirancang, yang berarti bahwa x86 telah berkembang sejak lama. Inti ARM Cortex-A73 modern kelas atas hanya sekuat inti Intel Clarkdale, dengan mengambil Core i5-660 sebagai contoh (GeekBench, single-core). Ini karena x86 adalah mikroarsitektur CISC sedangkan ARM adalah RISCarsitektur mikro. Anda tentu tidak ingin ponsel yang menjadi lamban hanya dengan dua atau lebih aplikasi aktif. Semakin banyak inti akan membantu meringankan tekanan. Karena itulah SoC dual-core relatif populer hanya di jam tangan pintar. Siapa yang butuh kinerja pada jam tangan pintar?
Menariknya, lebih banyak core akan menghasilkan daya lebih sedikit daripada satu core pada beban yang sama . Hubungan antara frekuensi CPU dan konsumsi daya lebih dari linier, sehingga frekuensi dua kali akan selalu mengakibatkan menuntut lebih dari dua kali, atau bahkan 3x atau 4x lebih banyak daya, sementara memberikan kinerja kurang dari dua kali lipat (karena keterbatasan sumber daya lain seperti cache ). Jadi 4 core dapat dengan mudah mengalahkan satu inti pada beban yang sama, memberikan kinerja yang lebih baik dan secara bersamaan menuntut lebih sedikit daya.
Bacaan lebih lanjut:
sumber
Alasannya sesederhana dan rumit.
Jawaban singkatnya adalah "karena pasar ponsel tidak pernah dan tidak digerakkan oleh Intel".
Jawaban panjangnya adalah terlalu lama untuk dilanjutkan di sini, tetapi konsep dasarnya adalah bahwa Intel telah mendominasi pasar PC selama bertahun-tahun dengan segala cara yang mungkin, hingga membayar dan merusak (dan didenda karena ini) untuk menjadikan CPU-nya sebagai pilihan pertama dan satu-satunya untuk produsen PC.
Memiliki kontrol total pasar telah memungkinkan Intel untuk menaikkan harga CPU sementara secara artifisial menentukan fitur dan berapa banyak kekuatan pemrosesan yang seharusnya diinginkan pengguna, dan jika Anda menganalisis sedikit sejarah Intel, Anda akan melihat bahwa kekuatan utamanya pada dasarnya adalah di peningkatan frekuensi CPU, sehingga sebagian besar tidak pernah mencoba melakukan sesuatu yang benar-benar cerdas atau inovatif; dan itu tidak membutuhkannya, karena itu hanya bisa mengatakan kepada orang-orang "Anda tidak perlu lebih banyak core, tetapi saya memiliki CPU baru yang berair yang berjalan 100 MHz lebih cepat". Pada saat yang sama, ia dapat menjual CPU multicore di pasar server dengan harga yang sangat tinggi (karena server selalu membutuhkanton kekuatan paralel, sampai-sampai ada tren saat ini dalam mencoba mewujudkan server yang menggunakan ... coba tebak? Ratusan CPU ponsel murah Anda bekerja secara paralel)
Hal ini, pada gilirannya, telah tercermin ke dalam komunitas pengembang yang tidak pernah mengetahui pentingnya pemrograman paralel, sehingga banyak dari mereka yang sebagian besar tidak pernah repot menggunakan lebih dari satu utas pada waktu-atau, untuk mengekspresikannya dalam cara teknis, memiliki perangkat lunak mereka melakukan lebih dari satu tugas pada saat bersamaan. Omong-omong, masuk akal bila 99% basis pelanggan Anda memiliki dua inti pada maks. Sayangnya, ini telah mengarah pada legenda bahwa algoritma paralel benar-benar sulit untuk diterapkan dan hanya berlaku untuk sebagian kecil dari masalah.
Sebaliknya, akhirnya, pasar ponsel tidak pernah melihat kesuksesan Intel; sebaliknya, sebenarnya, seperti yang terjadi sebagian besar waktu ketika Intel mencoba melakukan sesuatu yang berbeda dari arsitektur X86 yang biasa. Jadi, kekurangan adalah pengaruh dan kendali pasar, produsen CPU lain telah pergi ke arah yang telah menjadi normal selama berabad-abad di luar pasar PC: komputasi paralel.
sumber
Ada dua faktor yang terjadi, yang satu sangat praktis dan yang lain historis.
Alasan praktisnya adalah penggunaan arsitektur campuran di telepon. Konsumsi daya sangat penting untuk ponsel dan ponsel menghabiskan banyak waktu dalam mode di mana mereka membutuhkan kinerja yang sangat sedikit. Masuk akal untuk memiliki beberapa core yang dioptimalkan untuk konsumsi daya minimal ketika sedikit kinerja yang dibutuhkan sementara beberapa core dioptimalkan untuk memberikan kinerja maksimum ketika dibutuhkan.
Alasan lainnya sebagian besar historis. Hingga 2005 atau lebih, CPU desktop semuanya adalah single core. Meningkatkan kinerja CPU desktop hampir secara eksklusif terdiri dari pembuatan inti yang dapat menjalankan sebanyak mungkin instruksi per detik. Bahkan hari ini, begitu banyak perangkat lunak desktop tidak dapat mengambil keuntungan penuh dari beberapa core sehingga banyak yang lebih suka CPU dengan 4 core daripada CPU 8 core dengan core 20% lebih lambat.
Mendapatkan sebanyak mungkin kinerja dari satu inti mungkin membutuhkan sejumlah besar CPU real estat. Ini adalah real estat yang dapat digunakan untuk menyediakan lebih banyak core. Inilah sebabnya mengapa CPU terbaru Kaby Lake dari Intel mencapai 4 core dan orang-orang membelinya karena setiap core lebih cepat dari core pendahulunya. Bagi banyak orang, mereka adalah upgrade bahkan dari CPU dengan jumlah inti yang lebih tinggi.
Seiring waktu, berharap untuk melihat lebih banyak perangkat lunak desktop yang sepenuhnya dioptimalkan untuk mendukung lebih banyak core. Ketika itu terjadi, pengorbanan teknik akan mulai mendukung lebih banyak core daripada core yang lebih cepat di desktop. Sementara core hampir pasti masih akan semakin cepat, Anda akan mulai melihat orang-orang lebih memilih CPU 8 inti daripada CPU 4 inti bahkan jika setiap core 20% lebih lambat. Desainer chip akan mengikuti pasar.
sumber
Sangat penting bagi ponsel untuk dapat memberikan daya komputasi dalam ledakan singkat (kita membutuhkan aplikasi tertentu untuk menjadi cepat) tetapi juga untuk menghindari panas berlebih (pembuangan panas jauh lebih sulit untuk ponsel daripada laptop atau PC). Untuk mencapai hal ini, arsitek merancang ponsel untuk menggunakan inti tunggal ketika beban kerjanya ringan dan memberikan core ekstra untuk meningkatkan kinerja saat dibutuhkan. Jika ponsel menggunakan inti yang lebih sedikit, terlalu panas akan menjadi masalah bahkan ketika beban kerjanya cukup ringan.
Sumber: Kursus arsitektur komputer tingkat pascasarjana.
sumber
Pertama, mesin virtual Java secara historis dapat mengambil manfaat dari multi-core lebih dari perangkat lunak desktop biasa. Bahkan jika Anda menulis aplikasi single-threaded di Jawa, itu akan berjalan lebih cepat di multicore karena sebagian besar kode pengumpul sampah akan berjalan bersama dengan aplikasi Anda.
Kedua, banyak hal terjadi di latar belakang ponsel Anda: pembaruan otomatis, unduhan iklan, perangkat lunak antivirus, pengelolaan modul GSM, dll. Di laptop, semua tugas ini akan membuat sibuk satu core, tetapi core ARM tetap jauh lebih kuat, jadi Anda mungkin ingin memiliki setidaknya beberapa dari mereka yang didedikasikan untuk tugas-tugas latar belakang jika Anda menginginkan sistem responsif.
Akhirnya, ada pemasaran. Tidak banyak pengguna yang mampu menilai apakah mereka akan mendapat manfaat dari 8 core, tetapi smartphone 8-core tentu terdengar lebih mahal daripada 2 atau 4 core.
sumber
Jawabannya sejauh ini menjelaskan beberapa sisi masalah yang menyebabkan banyaknya core CPU pada ponsel Android. Baca itu lagi; Ponsel Android. IPhone telah berhasil menempel hanya beberapa inti selama berabad-abad dan masih melakukan jauh lebih lancar daripada unggulan Android.
Perancang Android membuat pertaruhan besar ketika memutuskan untuk memilih pemrograman Java dan sebagai konsekuensinya JVM sebagai runtime aplikasi. Java, karena prinsip-prinsip desainnya memecahkan masalah perlu mengkompilasi dan membangun kode untuk setiap arsitektur CPU sebelum dapat dijalankan di atasnya dengan mengorbankan kinerja. Java memperkenalkan mesin virtual kelas berat dan besar yang biasanya disebut JVM. JVM sebenarnya mengemulasi CPU pada level perangkat lunak untuk menghindari perlunya mengkompilasi kode secara terpisah untuk setiap perangkat. Pikirkan JVM sebagai CPU virtual yang memiliki properti yang sama terlepas dari perangkat yang menjalankannya sehingga kode hanya perlu dikompilasi satu kali untuk JVM dan kemudian dapat dijalankan pada setiap perangkat. Hal ini memungkinkan produsen untuk membuang perangkat keras apa pun yang mereka inginkan sebelum perlu khawatir tentang kompatibilitas aplikasi.
JVM itu sendiri hanyalah spesifikasi dan orang bebas untuk mengembangkan JVM mereka sendiri selama itu mematuhi spesifikasi ini. JVM android asli disebut Dalvik. Saat ini Google telah menggantinya dengan ART.
Sekarang apa masalahnya dengan JVM? Ini adalah software yang sangat banyak yang menghabiskan banyak sumber daya komputasi. Tambahkan ke ini beberapa properti lain dari bahasa Jawa seperti Garbage Collection dan konsumsi sumber daya JVM menjadi terlalu banyak untuk perangkat dengan daya perangkat keras sederhana. Setiap aplikasi dan layanan sistem yang terbuka pada perangkat Anda sendiri merupakan instance dari ART JVM dan sekarang Anda dapat menyimpulkan bahwa mengelola semuanya memerlukan beberapa perangkat keras yang benar-benar mampu. Masalah akan menjadi lebih buruk ketika ada kebutuhan untuk menggambar antarmuka pengguna.
Setiap aplikasi berjalan pada sejumlah Thread. Setiap inti CPU hanya dapat menjalankan satu utas pada satu waktu. Setiap aplikasi memiliki satu utas utama di mana ia melakukan hal-hal yang terkait dengan antarmuka pengguna. Mungkin ada lebih banyak utas per aplikasi untuk melakukan akses file, jaringan, dll. Umumnya ada lebih banyak aplikasi (dan layanan sistem) yang terbuka daripada ada inti CPU dan sebagai hasilnya biasanya ada lebih banyak utas daripada inti CPU. Jadi masing-masing inti harus beralih di antara pemrosesan utas yang berbeda secara terus-menerus, melakukan sedikit masing-masing dan menuju ke yang berikutnya. Peralihan ini membutuhkan banyak waktu untuk CPU dan dalam kasus aplikasi yang pada dasarnya adalah JVM, tugas ini menjadi lebih lengkap.
Berdasarkan penjelasan ini orang dapat menyimpulkan bahwa android membutuhkan perangkat keras yang kuat untuk berjalan dengan lancar. Generasi awal perangkat Android terkenal dengan lagging, crashing, dan banyak hal malang lainnya. Tetapi selama bertahun-tahun masalah ini sebagian besar telah diselesaikan dengan mengandalkan perangkat keras yang kuat.
Di sisi lain, aplikasi iOS dikompilasi dengan kode mesin asli dan karenanya tidak perlu virtualisasi. Bahasa yang digunakan dan sistem operasi juga lebih efisien dan karenanya memungkinkan perangkat ini tetap mulus tanpa memerlukan chipset yang berlebihan.
sumber
Melanjutkan semua di atas, saya dapat mengatakan bahwa kasus penggunaan PC dan telepon sangat berbeda. PC paling sering digunakan dalam satu atau beberapa aplikasi (tentu saja browser dengan banyak tab memerlukan banyak core CPU, dapat tertinggal bahkan di atas i-3), ponsel yang digunakan untuk multitask. Setidaknya koneksi jaringan, undian UI, pemicu sistem, notifikasi. Jika Anda membuka task manager pada PC ada banyak proses juga, tetapi mereka menggunakan daya cpu kurang dari beberapa bahkan pada Core 2 duo lama. 4 core cukup murah (MTK 65x2 dikenakan biaya $ 1 saat memulai untuk OEM) Itu juga RISIKO vs CISC ketika terakhir kekurangan kinerja per inti. Hemat energi! = Kuat, seperti yang bisa kita lihat di sini . Multi-core sangat cocok untuk ponsel, karena tidak ada beban tapak tunggal yang berat dan pengalaman yang bertujuan multi-tugas (tetapi kita dapat melihat bahwa iPhone membutuhkan lebih sedikit core dan RAM karena perangkat lunak yang baikseperti di video ini atau yang lain )
sumber
Saya pikir salah satu faktor pendorong utama di luar 4 atau 8 (untuk besar: konfigurasi kecil) hanya pemasaran saat ini.
Satu masalah besar dari jumlah inti yang tinggi adalah ketika Anda mempertimbangkan ukuran memori. Biasanya di aplikasi desktop ketika Anda ingin meningkatkan pemanfaatan beberapa inti, Anda perlu menduplikasi struktur dan menggunakan lebih banyak memori kemudian dalam aplikasi berulir tunggal.
Ini tidak terjadi karena RAM sangat mahal (terutama dalam situasi krisis RAM 2017/2018). Pemasaran menginginkan angka tinggi tetapi mengendalikan ingin memangkas harga komponen. Jika Anda melihat keseimbangan yang kurang dari 1 Gigabyte RAM per inti maka Anda melihat kompromi yang gagal.
sumber