Mike Ash didedikasikan di blognya implikasi praktis peralihan ke arsitektur 64-bit di iPhone 5S. Artikel ini mengacu pada temuannya.
Alasan munculnya teks ini terutama karena banyaknya misinformasi yang tersebar tentang arti sebenarnya iPhone 5s baru dengan prosesor ARM 64-bit bagi pengguna dan pasar. Di sini kami akan mencoba memberikan informasi objektif tentang kinerja, kemampuan, dan implikasi transisi ini bagi pengembang.
"64bit"
Ada dua bagian prosesor yang dapat dirujuk oleh label "X-bit" - lebar register integer dan lebar pointer. Untungnya, pada sebagian besar prosesor modern, lebar ini sama, jadi dalam kasus A7 ini berarti register integer 64-bit dan pointer 64-bit.
Namun, penting juga untuk menunjukkan apa yang TIDAK dimaksud dengan "64bit": Ukuran alamat fisik RAM. Jumlah bit untuk berkomunikasi dengan RAM (dengan demikian jumlah RAM yang dapat didukung perangkat) tidak berhubungan dengan jumlah bit CPU. Prosesor ARM memiliki alamat antara 26 dan 40-bit dan dapat diubah secara independen dari sistem lainnya.
- Ukuran bus data. Jumlah data yang diterima dari RAM atau memori buffer juga tidak bergantung pada faktor ini. Instruksi prosesor individual mungkin meminta jumlah data yang berbeda, namun dikirimkan dalam bentuk potongan atau diterima lebih dari yang dibutuhkan dari memori. Itu tergantung pada ukuran kuantum data. IPhone 5 sudah menerima data dari memori dalam kuanta 64-bit (dan memiliki prosesor 32-bit), dan kita dapat menemukan ukuran hingga 192 bit.
- Segala sesuatu yang berhubungan dengan floating point. Ukuran register tersebut (FPU) sekali lagi tidak bergantung pada cara kerja internal prosesor. ARM telah menggunakan FPU 64-bit sejak sebelum ARM64 (prosesor ARM 64-bit).
Kelebihan dan kekurangan secara umum
Jika kita membandingkan arsitektur 32bit dan 64bit yang identik, secara umum keduanya tidak jauh berbeda. Inilah salah satu alasan kebingungan umum masyarakat mencari alasan mengapa Apple juga beralih ke 64bit di perangkat seluler. Namun, itu semua berasal dari parameter spesifik prosesor A7 (ARM64) dan cara Apple menggunakannya, bukan hanya dari fakta bahwa prosesor tersebut memiliki arsitektur 64-bit.
Namun jika kita tetap melihat perbedaan kedua arsitektur ini, kita akan menemukan beberapa perbedaan. Yang jelas adalah register bilangan bulat 64-bit dapat menangani bilangan bulat 64-bit dengan lebih efisien. Bahkan sebelumnya, dimungkinkan untuk bekerja dengan mereka pada prosesor 32-bit, tetapi ini biasanya berarti membaginya menjadi bagian-bagian yang panjangnya 32-bit, yang menyebabkan perhitungan lebih lambat. Jadi prosesor 64-bit umumnya dapat melakukan komputasi dengan tipe 64-bit sama cepatnya dengan komputasi 32-bit. Artinya, aplikasi yang umumnya menggunakan tipe 64-bit bisa berjalan jauh lebih cepat di prosesor 64-bit.
Meskipun 64bit tidak mempengaruhi jumlah total RAM yang dapat digunakan prosesor, namun hal ini dapat mempermudah bekerja dengan potongan RAM yang besar dalam satu program. Setiap program yang berjalan pada prosesor 32-bit hanya memiliki ruang alamat sekitar 4 GB. Mempertimbangkan bahwa sistem operasi dan perpustakaan standar memakan sesuatu, hal ini menyisakan program antara 1-3 GB untuk penggunaan aplikasi. Namun, jika sistem 32-bit memiliki RAM lebih dari 4 GB, penggunaan memori tersebut akan sedikit lebih rumit. Kita harus memaksa sistem operasi untuk memetakan potongan memori yang lebih besar ini untuk program kita (virtualisasi memori), atau kita dapat membagi program menjadi beberapa proses (di mana setiap proses secara teoritis memiliki 4 GB memori yang tersedia untuk pengalamatan langsung).
Namun, "peretasan" ini sangat sulit dan lambat sehingga hanya sedikit aplikasi yang menggunakannya. Dalam praktiknya, pada prosesor 32-bit, setiap program hanya akan menggunakan memorinya sebesar 1-3 GB, dan lebih banyak RAM yang tersedia dapat digunakan untuk menjalankan beberapa program secara bersamaan atau menggunakan memori ini sebagai buffer (caching). Penggunaan ini praktis, namun kami ingin program apa pun dapat dengan mudah menggunakan potongan memori yang lebih besar dari 4 GB.
Sekarang kita sampai pada klaim yang sering (sebenarnya salah) bahwa tanpa memori lebih dari 4GB, arsitektur 64-bit tidak ada gunanya. Ruang alamat yang lebih besar berguna bahkan pada sistem dengan memori lebih sedikit. File yang dipetakan memori adalah alat yang berguna di mana sebagian konten file dihubungkan secara logis ke memori proses tanpa seluruh file harus dimuat ke dalam memori. Dengan demikian, sistem dapat, misalnya, secara bertahap memproses file besar yang berkali-kali lipat lebih besar dari kapasitas RAM. Pada sistem 32-bit, file besar seperti itu tidak dapat dipetakan dengan andal di memori, sedangkan pada sistem 64-bit, hal ini mudah dilakukan, berkat ruang alamat yang jauh lebih besar.
Namun, ukuran pointer yang lebih besar juga membawa satu kelemahan besar: jika tidak, program yang identik memerlukan lebih banyak memori pada prosesor 64-bit (pointer yang lebih besar ini harus disimpan di suatu tempat). Karena pointer sering menjadi bagian dari program, perbedaan ini dapat membebani cache, yang pada gilirannya menyebabkan keseluruhan sistem berjalan lebih lambat. Jadi dalam perspektif, kita dapat melihat bahwa jika kita mengubah arsitektur prosesor menjadi 64-bit, hal itu justru akan memperlambat keseluruhan sistem. Jadi faktor ini harus diimbangi dengan lebih banyak optimasi di tempat lain.
ARM64
A7, prosesor 64-bit yang menggerakkan iPhone 5s baru, bukan sekadar prosesor ARM biasa dengan register yang lebih lebar. ARM64 berisi perbaikan besar dibandingkan versi 32-bit yang lebih lama.
pendaftaran
ARM64 menampung register bilangan bulat dua kali lebih banyak daripada ARM 32-bit (berhati-hatilah agar tidak membingungkan jumlah dan lebar register - kita berbicara tentang lebar di bagian "64-bit". Jadi ARM64 memiliki register dua kali lebih lebar dan dua kali lebih banyak register register). ARM 32-bit memiliki 16 register bilangan bulat: satu penghitung program (PC - berisi nomor instruksi saat ini), penunjuk tumpukan (penunjuk ke fungsi yang sedang berlangsung), register tautan (penunjuk ke kembali setelah akhir fungsi), dan 13 sisanya untuk penggunaan aplikasi. Namun, ARM64 memiliki 32 register bilangan bulat, termasuk satu register nol, register tautan, penunjuk bingkai (mirip dengan penunjuk tumpukan), dan satu lagi dicadangkan untuk masa depan. Ini menyisakan 28 register untuk penggunaan aplikasi, lebih dari dua kali lipat ARM 32-bit. Pada saat yang sama, ARM64 menggandakan jumlah register floating-point number (FPU) dari 16 menjadi 32 register 128-bit.
Tapi mengapa jumlah register begitu penting? Memori umumnya lebih lambat dibandingkan perhitungan CPU dan membaca/menulis bisa memakan waktu sangat lama. Hal ini akan membuat prosesor yang cepat harus terus menunggu memori dan kita akan mencapai batas kecepatan alami sistem. Prosesor mencoba menyembunyikan cacat ini dengan lapisan buffer, namun yang tercepat (L1) pun masih lebih lambat dibandingkan perhitungan prosesor. Namun, register adalah sel memori yang langsung ada di prosesor dan pembacaan/penulisannya cukup cepat sehingga tidak memperlambat prosesor. Jumlah register secara praktis berarti jumlah memori tercepat untuk perhitungan prosesor, yang sangat mempengaruhi kecepatan keseluruhan sistem.
Pada saat yang sama, kecepatan ini memerlukan dukungan optimasi yang baik dari kompiler agar bahasa dapat menggunakan register tersebut dan tidak harus menyimpan semuanya di memori aplikasi umum (yang lambat).
Kumpulan instruksi
ARM64 juga membawa perubahan besar pada set instruksi. Set instruksi adalah sekumpulan operasi atomik yang dapat dilakukan oleh prosesor (misalnya 'TAMBAHKAN register1 register2' menambahkan angka dalam dua register). Fungsi yang tersedia untuk masing-masing bahasa terdiri dari instruksi ini. Fungsi yang lebih kompleks harus menjalankan lebih banyak instruksi, sehingga bisa lebih lambat.
Yang baru di ARM64 adalah instruksi untuk enkripsi AES, fungsi hash SHA-1 dan SHA-256. Jadi alih-alih implementasi yang rumit, hanya bahasa yang akan memanggil instruksi ini - yang akan mempercepat komputasi fungsi-fungsi tersebut dan semoga menambah keamanan dalam aplikasi. Misalnya. Touch ID baru juga menggunakan instruksi ini dalam enkripsi, memungkinkan kecepatan dan keamanan nyata (secara teori, penyerang harus memodifikasi prosesor itu sendiri untuk mengakses data - setidaknya tidak praktis mengingat ukurannya yang mini).
Kompatibilitas dengan 32bit
Penting untuk disebutkan bahwa A7 dapat berjalan sepenuhnya dalam mode 32-bit tanpa memerlukan emulasi. Artinya, iPhone 5s baru dapat menjalankan aplikasi yang dikompilasi pada ARM 32-bit tanpa perlambatan apa pun. Namun, ia tidak dapat menggunakan fungsi ARM64 yang baru, jadi sebaiknya selalu membuat build khusus hanya untuk A7, yang seharusnya berjalan lebih cepat.
Perubahan waktu proses
Runtime adalah kode yang menambahkan fungsi ke bahasa pemrograman, yang dapat digunakan saat aplikasi sedang berjalan, hingga setelah terjemahan. Karena Apple tidak perlu menjaga kompatibilitas aplikasi (biner 64-bit berjalan pada 32-bit), mereka dapat melakukan beberapa perbaikan lagi pada bahasa Objective-C.
Salah satunya adalah yang disebut penunjuk yang ditandai (indikator yang ditandai). Biasanya, objek dan penunjuk ke objek tersebut disimpan di bagian memori yang terpisah. Namun, tipe pointer baru memungkinkan kelas dengan sedikit data untuk menyimpan objek secara langsung di pointer. Langkah ini menghilangkan kebutuhan untuk mengalokasikan memori secara langsung untuk objek, cukup buat pointer dan objek di dalamnya. Pointer yang diberi tag hanya didukung dalam arsitektur 64-bit juga karena fakta bahwa tidak ada lagi cukup ruang dalam pointer 32-bit untuk menyimpan cukup data berguna. Oleh karena itu, iOS, tidak seperti OS X, belum mendukung fitur ini. Namun, dengan hadirnya ARM64, hal ini berubah, dan iOS juga telah menyusul OS X dalam hal ini.
Meskipun panjang pointer adalah 64 bit, pada ARM64 hanya 33 bit yang digunakan untuk alamat pointer itu sendiri. Dan jika kita dapat membuka tabir sisa bit penunjuk dengan andal, kita dapat menggunakan ruang ini untuk menyimpan data tambahan – seperti dalam kasus penunjuk yang diberi tag yang disebutkan. Secara konseptual, ini adalah salah satu perubahan terbesar dalam sejarah Objective-C, meskipun ini bukan fitur yang dapat dipasarkan - sehingga sebagian besar pengguna tidak akan mengetahui bagaimana Apple memajukan Objective-C.
Adapun data berguna yang dapat disimpan di ruang tersisa dari penunjuk yang diberi tag, Objective-C, misalnya, sekarang menggunakannya untuk menyimpan apa yang disebut jumlah referensi (jumlah referensi). Sebelumnya, jumlah referensi disimpan di tempat berbeda di memori, dalam tabel hash yang disiapkan untuk itu, namun hal ini dapat memperlambat keseluruhan sistem jika terjadi panggilan alokasi/dealloc/retain/release dalam jumlah besar. Tabel harus dikunci karena keamanan thread, sehingga jumlah referensi dua objek di dua thread tidak dapat diubah secara bersamaan. Namun, nilai ini baru dimasukkan ke dalam nilai lainnya yang disebut isa indikator. Ini adalah keuntungan dan percepatan lain yang tidak mencolok namun sangat besar di masa depan. Namun, hal ini tidak akan pernah dapat dicapai dalam arsitektur 32-bit.
Informasi tentang objek terkait, apakah objek tersebut direferensikan dengan lemah, apakah perlu untuk menghasilkan destruktor untuk objek tersebut, dll., juga baru dimasukkan ke dalam sisa tempat penunjuk ke objek. Berkat informasi ini, Objective-C runtime mampu mempercepat runtime secara mendasar, yang tercermin dalam kecepatan setiap aplikasi. Dari pengujian, ini berarti percepatan sekitar 40-50% dari semua panggilan manajemen memori. Hanya dengan beralih ke pointer 64-bit dan menggunakan ruang baru ini.
záver
Meskipun pesaing akan mencoba menyebarkan gagasan bahwa berpindah ke arsitektur 64-bit tidak diperlukan, Anda pasti sudah tahu bahwa ini hanyalah opini yang kurang informasi. Memang benar bahwa beralih ke 64bit tanpa mengadaptasi bahasa atau aplikasi tidak berarti apa-apa - bahkan memperlambat keseluruhan sistem. Namun A7 baru menggunakan ARM64 modern dengan set instruksi baru, dan Apple telah bersusah payah memodernisasi seluruh bahasa Objective-C dan memanfaatkan kemampuan baru - oleh karena itu percepatan yang dijanjikan.
Di sini kami telah menyebutkan sejumlah besar alasan mengapa arsitektur 64-bit adalah langkah maju yang tepat. Ini adalah revolusi lain yang "tersembunyi", berkat Apple yang akan berusaha untuk tetap menjadi yang terdepan tidak hanya dengan desain, antarmuka pengguna, dan ekosistem yang kaya, tetapi terutama dengan teknologi paling modern di pasar.
Banyak orang Android/Samsung yang kurang informasi harus membaca artikel ini dan kemudian bersembunyi di pojok.
Ya, kita harus merasa kasihan pada mereka. Selama bertahun-tahun mereka memaafkan UX dan UI Android yang tragis dengan mengatakan bahwa mereka memiliki OS paling berteknologi maju dengan fitur-fiturnya dan sekarang mereka menyadari bahwa mereka sudah ketinggalan bertahun-tahun lagi :)
Jika seseorang bukan domba dan mendengarkan iklan (dan dia pandai dalam hal itu), maka setelah pengalaman pribadi dia dapat membentuk opininya sendiri :-).
Saya mencoba hampir semua kompetisi dan membentuk opini saya sendiri.
Bagi saya, saya memerlukan ponsel baru yang berperforma super tinggi, karena saya tidak menghabiskan banyak uang untuk itu. Itu adalah Saya membutuhkan lebih sedikit kinerja dengan harga lebih murah ;-). Mungkin saya lebih suka yang lebih lambat dengan baterai lebih besar.
Di sisi lain, procak baru akan berguna untuk iPad yang memiliki banyak permainan :-).
Saya Android/HTC :) karena cukup menyenangkan bagi saya dan melakukan rooting serta mengubah HW berkualitas tinggi menjadi petarung cepat adalah hobi saya. Dan iOS tidak mengizinkan saya melakukan itu. (Bahkan tidak perlu. Kurang lebih, iOS dirancang agar semuanya berfungsi sebagaimana mestinya dan Anda tidak perlu melakukan apa pun di sana. Saat saya berhenti menikmati permainan, saya akan membeli apel dan menikmatinya). Tapi saya tidak tahu mengapa Anda terus menyerang satu sama lain seperti anak-anak. Apple sepenuhnya seperti Android. Ini seperti membandingkan Demokrasi dengan Kediktatoran dan sejenisnya... Saya menonton konferensi tersebut ketika iPhone 5S diperkenalkan dan meskipun saya tidak memiliki apa pun dari Apple, saya menyukai 64bit dan peningkatan lain yang datang. Tapi bukan karena saya seorang honimír trtko kompleks yang duduk di belakang PC dan mengejar Android atau Apple, tapi karena saya melihat KEMAJUAN yang tidak akan membuat saya menunggu lama. Orang-orang harus mulai bekerja sangat keras sehingga mereka tidak punya waktu untuk menghadapi omong kosong, dengan kata lain, dengan sopan.
kontribusi konstruktif dari pihak lain :) kiez itu akan membuka mata sisa 99% android positif
mungkin 99% pecinta apel sebaiknya berdiskusi dulu, baru kita bisa ngobrol yang membangun
hal-hal yang sangat rumit dijelaskan secara sederhana... terima kasih
Artikel bagus! Ya, saya setuju bahwa pengguna Android/WP harus membaca artikel ini sebagai suatu keharusan. Daripada mengolok-olok dan berbicara cerdas tentang "bagaimana 64b tidak berguna di ponsel"…
Anda mungkin tidak pernah memiliki wp di tangan Anda, jika tidak, Anda tidak akan memilikinya
Sejak kesuksesan pertamanya di pasar ponsel, Samsung tidak melakukan apa pun selain mencoreng persaingan, namun pada intinya, Samsung telah mengikuti jejaknya selama ini. Apple selalu menjadi panutan bagi perusahaan teknologi, dan jika mereka hanya berfokus pada mengejek dan terus-menerus memberikan informasi yang salah kepada pelanggan, mereka akan segera tersandung. Apple selalu menempuh jalannya sendiri dan ini selalu merupakan masalah waktu yang sangat tepat, yang tidak dimiliki oleh banyak perusahaan pesaing di industri ini.
Dapat dikatakan bahwa Samsung sedang memanfaatkan gelombang tersebut dan memanfaatkan segala kemungkinan yang ada. Dia bertaruh pada Android, dia punya HW hebat, dia membuat banyak hal sendiri, dia punya dukungan yang lumayan. Dan seperti perusahaan predator Asia lainnya, perusahaan ini menggunakan semua kemungkinan periklanan. Dan tentu saja dia mencuri dan menyalin. Apa yang bisa dilakukan oleh "bermata sipit" adalah menyalin. Mereka telah memperhitungkan dengan sangat baik bahwa hal ini jauh lebih murah dibandingkan menempuh jalan mereka sendiri, selangkah demi selangkah. Dan sebagai perusahaan yang kuat, mereka mampu melakukan hal tersebut. Belum…
Saya hanya tidak mengerti kenapa kecepatan ponsel terus meningkat, berikan saya beberapa contoh kegunaannya, perlahan tidak masuk akal bagi saya untuk meningkatkan kinerja ponsel, tetapi saya akan menghilangkan kata pemasaran.
Game, game yang tidak dioptimalkan dengan baik. Selain itu, Transport Tycoon di iPad 3 tidak berjalan semulus dan dalam resolusi yang sama seperti di desktop. Contoh.
Saya hanya tidak mengerti mengapa kecepatan ponsel terus meningkat, beri saya beberapa contoh untuk apa Anda menggunakannya, perlahan-lahan tidak masuk akal bagi saya untuk meningkatkan kinerja ponsel, jika saya menghilangkan kata pemasaran darinya .
Untuk pemrosesan video, audio dan gambar. Dan ke permainan.
Siapapun yang menggunakan iPhone hanya untuk menelepon, mengirim SMS, dan sesekali membaca atau mengirim email dan sesekali berselancar di Internet akan membutuhkan iPhone 4. Saya yakin ada banyak pengguna seperti itu. Tidak semua orang membutuhkan ponsel terbaik di dunia :-)
domba
Bukankah pertukaran fisik antara perangkat keras dan perangkat lunak tidak ada artinya bagi Anda? Hal ini sedikit mengingatkan saya pada akhir abad ke-19, ketika para fisikawan pada masa itu mengatakan bahwa segala sesuatu dalam fisika telah ditemukan dan tidak perlu dilanjutkan (satu dekade sebelum teori relativitas dan tiga dekade sebelum teori kuantum) .
Mengejar yang terbaik tidak pernah berakhir. Terkadang perangkat lunak memimpin dan terkadang perangkat keras. Namun jika salah satu terjebak, maka yang lain tidak akan lepas. Kami tidak akan terlalu egois terhadap keturunan kami :) Jadi untuk komentar Anda - telepon yang lebih cepat akan memungkinkan aplikasi yang lebih kuat, yang akan mampu melakukan lebih banyak hal daripada mengemudi. Dan suatu saat hal-hal yang bahkan komputer saat ini tidak cukup untuk melakukannya. Masa depan sangat menarik.
Tepat :)
Artikel bagus, tapi saya tidak mengerti mengapa Apple tidak memasang RAM 7GB di A2. Ya, multitasking iOS tidak memerlukan 2GB, tetapi mengingat panjang penunjuk memori dua kali lipat, itu akan jauh lebih cocok.
Namun sebaliknya, saya setuju bahwa prosesor 64-bit "tidak diperlukan" untuk ponsel, sama seperti layar retina atau mouse optik sebagai pengganti bola tidak diperlukan - semua penemuan ini diberi label "tidak perlu", tetapi menurut saya kata yang tepat adalah "abadi", karena suatu saat pasti akan datang dan Apple tidak takut untuk menghadirkan sesuatu yang baru.
Saya setuju dengan itu. Sayangnya, bahkan "tidak berguna" bukanlah ungkapan yang akurat. Tidak perlu artinya sesuatu yang prioritasnya tidak diketahui seseorang. Hal itu jelas tidak benar. Kecepatan mungkin tidak memerlukan kecepatan seperti itu, tetapi ia pasti akan mengenalinya. Dan ketika perangkat lunak berhasil menyusul perangkat keras, akan ada ruang untuk perbaikan lagi.
Tentu, saya setuju, maksud saya iP5 adalah smartphone yang cukup cepat, jadi 5S tidak harus 64bit sama sekali. Namun suatu hari seseorang harus menghadapinya lagi dan itu adalah Apple dan sekaranglah yang terjadi. Sepanjang ingatan saya, para ahli juga telah membicarakan tentang bagaimana prosesor 64-bit tidak akan berguna bahkan di komputer.
Bagi saya, sebagai orang awam IT yang hampir gagal dalam matriks, kesimpulannya penting. Keseluruhan artikel (didukung oleh komentar) tampaknya cukup memberi wawasan bagi saya, dan meskipun saya tidak dapat menjelaskannya, A7 dengan arsitektur 64-bit adalah sebuah langkah maju. Terimakasih atas infonya.
Saya akan mengedit judul artikel karena ini adalah taktik pemasaran. Setiap inovasi pada dasarnya adalah langkah pemasaran. :-)
Aku tidak berpikir. Misalnya, Samsung menggunakan gerakan pemasaran. Mereka muncul dengan RAM, yang tidak dibutuhkan iPhone sama sekali. Mereka lolos dengan fitur-fitur yang tidak dapat digunakan sama sekali. Mereka sengaja meningkatkan kinerja prosesor untuk pengujian. Dll. Itu pemasaran, walaupun ya, itu menyesatkan, yang tidak boleh mereka tinggalkan begitu saja ;)