Mike Ash berdedikasi di blog beliau implikasi praktikal bertukar kepada seni bina 64-bit dalam iPhone 5S. Artikel ini merujuk kepada penemuannya.
Sebab teks ini adalah disebabkan oleh banyaknya maklumat salah yang disebarkan tentang maksud sebenar iPhone 5s baharu dengan pemproses ARM 64-bit untuk pengguna dan pasaran. Di sini kami akan cuba membawa maklumat objektif tentang prestasi, keupayaan dan implikasi peralihan ini untuk pembangun.
"64 bit"
Terdapat dua bahagian pemproses yang boleh dirujuk oleh label "X-bit" - lebar daftar integer dan lebar penunjuk. Nasib baik, pada kebanyakan pemproses moden, lebar ini adalah sama, jadi dalam kes A7 ini bermakna daftar integer 64-bit dan penunjuk 64-bit.
Walau bagaimanapun, adalah sama penting untuk menunjukkan apa yang "64bit" TIDAK bermaksud: Saiz alamat fizikal RAM. Bilangan bit untuk berkomunikasi dengan RAM (dengan itu jumlah RAM yang boleh disokong oleh peranti) tidak berkaitan dengan bilangan bit CPU. Pemproses ARM mempunyai mana-mana antara alamat 26- dan 40-bit dan boleh ditukar secara bebas daripada seluruh sistem.
- Saiz bas data. Jumlah data yang diterima daripada RAM atau memori penimbal adalah sama bebas daripada faktor ini. Arahan pemproses individu mungkin meminta jumlah data yang berbeza, tetapi ia sama ada dihantar dalam ketulan atau menerima lebih daripada yang diperlukan daripada memori. Ia bergantung kepada saiz kuantum data. IPhone 5 sudah menerima data daripada memori dalam kuanta 64-bit (dan mempunyai pemproses 32-bit), dan kita boleh menemui saiz sehingga 192 bit.
- Apa-apa sahaja yang berkaitan dengan titik terapung. Saiz daftar tersebut (FPU) sekali lagi tidak bergantung pada kerja dalaman pemproses. ARM telah menggunakan FPU 64-bit sejak sebelum ARM64 (pemproses ARM 64-bit).
Kelebihan dan keburukan am
Jika kita membandingkan seni bina 32bit dan 64bit yang serupa, ia biasanya tidak begitu berbeza. Ini adalah salah satu sebab kekeliruan umum orang ramai mencari sebab mengapa Apple beralih ke 64bit dalam peranti mudah alih juga. Walau bagaimanapun, semuanya datang daripada parameter khusus pemproses A7 (ARM64) dan cara Apple menggunakannya, bukan hanya dari fakta bahawa pemproses itu mempunyai seni bina 64-bit.
Walau bagaimanapun, jika kita masih melihat perbezaan antara kedua-dua seni bina ini, kita akan mendapati beberapa perbezaan. Yang jelas ialah daftar integer 64-bit boleh mengendalikan integer 64-bit dengan lebih cekap. Malah sebelum ini, adalah mungkin untuk bekerja dengan mereka pada pemproses 32-bit, tetapi ini biasanya bermakna membahagikannya kepada kepingan panjang 32-bit, yang menyebabkan pengiraan lebih perlahan. Jadi pemproses 64-bit secara amnya boleh mengira dengan jenis 64-bit sepantas dengan jenis 32-bit. Ini bermakna aplikasi yang biasanya menggunakan jenis 64-bit boleh berjalan dengan lebih pantas pada pemproses 64-bit.
Walaupun 64bit tidak menjejaskan jumlah RAM yang boleh digunakan oleh pemproses, ia boleh memudahkan untuk bekerja dengan sebahagian besar RAM dalam satu program. Mana-mana program tunggal yang dijalankan pada pemproses 32-bit hanya mempunyai kira-kira 4 GB ruang alamat. Dengan mengambil kira bahawa sistem pengendalian dan perpustakaan standard mengambil sesuatu, ini meninggalkan program dengan jarak antara 1-3 GB untuk kegunaan aplikasi. Walau bagaimanapun, jika sistem 32-bit mempunyai lebih daripada 4 GB RAM, menggunakan memori itu adalah sedikit lebih rumit. Kita perlu memaksa sistem pengendalian untuk memetakan cebisan memori yang lebih besar ini untuk atur cara kita (pemayaan memori), atau kita boleh membahagikan atur cara kepada beberapa proses (di mana setiap proses sekali lagi secara teorinya mempunyai 4GB memori yang tersedia untuk pengalamatan terus).
Walau bagaimanapun, "godam" ini sangat sukar dan perlahan sehinggakan sekurang-kurangnya aplikasi menggunakannya. Pada praktiknya, pada pemproses 32-bit, setiap program hanya akan menggunakan memori 1-3 GBnya, dan lebih banyak RAM yang tersedia boleh digunakan untuk menjalankan berbilang program pada masa yang sama atau menggunakan memori ini sebagai penimbal (caching). Kegunaan ini adalah praktikal, tetapi kami ingin mana-mana program boleh menggunakan cebisan memori yang lebih besar daripada 4GB dengan mudah.
Sekarang kita sampai kepada dakwaan yang kerap (sebenarnya tidak betul) bahawa tanpa lebih daripada 4GB memori, seni bina 64-bit tidak berguna. Ruang alamat yang lebih besar berguna walaupun pada sistem yang kurang memori. Fail yang dipetakan memori ialah alat yang berguna di mana sebahagian daripada kandungan fail dipautkan secara logik ke memori proses tanpa keseluruhan fail perlu dimuatkan ke dalam memori. Sistem boleh, sebagai contoh, memproses fail besar secara beransur-ansur berkali-kali lebih besar daripada kapasiti RAM. Pada sistem 32-bit, fail besar seperti itu tidak boleh dipetakan memori dengan pasti, manakala pada sistem 64-bit, ia adalah sekeping kek, terima kasih kepada ruang alamat yang lebih besar.
Walau bagaimanapun, saiz penunjuk yang lebih besar juga membawa satu kelemahan besar: jika tidak program yang sama memerlukan lebih banyak memori pada pemproses 64-bit (penunjuk yang lebih besar ini perlu disimpan di suatu tempat). Memandangkan penunjuk adalah bahagian yang kerap dalam program, perbezaan ini boleh membebankan cache, yang seterusnya menyebabkan keseluruhan sistem berjalan lebih perlahan. Jadi dalam perspektif, kita dapat melihat bahawa jika kita hanya menukar seni bina pemproses kepada 64-bit, ia sebenarnya akan melambatkan keseluruhan sistem. Jadi faktor ini perlu diimbangi dengan lebih banyak pengoptimuman di tempat lain.
ARM64
A7, pemproses 64-bit yang menjanakan iPhone 5s baharu, bukan sekadar pemproses ARM biasa dengan daftar yang lebih luas. ARM64 mengandungi peningkatan besar berbanding versi 32-bit yang lebih lama.
pendaftaran
ARM64 memegang dua kali lebih banyak daftar integer berbanding ARM 32-bit (berhati-hati agar tidak mengelirukan nombor dan lebar daftar - kami bercakap tentang lebar dalam bahagian "64-bit". Jadi ARM64 mempunyai kedua-dua daftar dua kali lebih lebar dan dua kali lebih banyak daftar). ARM 32-bit mempunyai 16 daftar integer: satu pembilang program (PC - mengandungi nombor arahan semasa), penuding tindanan (penunjuk kepada fungsi yang sedang berjalan), daftar pautan (penunjuk ke pemulangan selepas tamat. fungsi), dan baki 13 adalah untuk kegunaan aplikasi. Walau bagaimanapun, ARM64 mempunyai 32 daftar integer, termasuk satu daftar sifar, daftar pautan, penunjuk bingkai (serupa dengan penuding tindanan), dan satu dikhaskan untuk masa hadapan. Ini memberikan kami 28 daftar untuk kegunaan aplikasi, lebih daripada dua kali ganda ARM 32-bit. Pada masa yang sama, ARM64 menggandakan bilangan daftar nombor titik terapung (FPU) daripada 16 kepada 32 daftar 128-bit.
Tetapi mengapa bilangan daftar begitu penting? Memori biasanya lebih perlahan daripada pengiraan CPU dan membaca/menulis boleh mengambil masa yang sangat lama. Ini akan menjadikan pemproses pantas perlu terus menunggu memori dan kami akan mencapai had kelajuan semula jadi sistem. Pemproses cuba menyembunyikan kecacatan ini dengan lapisan penimbal, tetapi walaupun yang terpantas (L1) masih lebih perlahan daripada pengiraan pemproses. Walau bagaimanapun, daftar ialah sel memori terus dalam pemproses dan bacaan/penulisannya cukup pantas untuk tidak memperlahankan pemproses. Bilangan daftar secara praktikal bermaksud jumlah memori terpantas untuk pengiraan pemproses, yang sangat mempengaruhi kelajuan keseluruhan sistem.
Pada masa yang sama, kelajuan ini memerlukan sokongan pengoptimuman yang baik daripada pengkompil supaya bahasa boleh menggunakan daftar ini dan tidak perlu menyimpan segala-galanya dalam memori aplikasi umum (perlahan).
Set arahan
ARM64 juga membawa perubahan besar pada set arahan. Set arahan ialah satu set operasi atom yang boleh dilakukan oleh pemproses (cth 'TAMBAH daftar1 daftar2' menambah nombor dalam dua daftar). Fungsi yang tersedia untuk bahasa individu terdiri daripada arahan ini. Fungsi yang lebih kompleks mesti melaksanakan lebih banyak arahan, supaya ia boleh menjadi lebih perlahan.
Baharu dalam ARM64 ialah arahan untuk penyulitan AES, fungsi cincang SHA-1 dan SHA-256. Oleh itu, bukannya pelaksanaan yang rumit, hanya bahasa yang akan memanggil arahan ini - yang akan membawa kelajuan yang besar kepada pengiraan fungsi tersebut dan diharapkan menambah keselamatan dalam aplikasi. Cth. Touch ID baharu juga menggunakan arahan ini dalam penyulitan, membenarkan kelajuan dan keselamatan sebenar (secara teori, penyerang perlu mengubah suai pemproses itu sendiri untuk mengakses data - tidak praktikal untuk mengatakan sekurang-kurangnya memandangkan saiz kecilnya).
Keserasian dengan 32bit
Adalah penting untuk menyebut bahawa A7 boleh berjalan sepenuhnya dalam mod 32-bit tanpa memerlukan emulasi. Ini bermakna bahawa iPhone 5s baharu boleh menjalankan aplikasi yang disusun pada ARM 32-bit tanpa sebarang kelembapan. Walau bagaimanapun, ia tidak boleh menggunakan fungsi ARM64 baharu, jadi ia sentiasa berbaloi untuk membuat binaan khas hanya untuk A7, yang sepatutnya berjalan lebih pantas.
Perubahan masa jalan
Runtime ialah kod yang menambah fungsi pada bahasa pengaturcaraan, yang ia boleh gunakan semasa aplikasi berjalan, sehingga selepas terjemahan. Memandangkan Apple tidak perlu mengekalkan keserasian aplikasi (bahawa perduaan 64-bit berjalan pada 32-bit), mereka mampu untuk membuat beberapa penambahbaikan lagi pada bahasa Objektif-C.
Salah satunya adalah yang dipanggil penunjuk bertanda (penunjuk bertanda). Biasanya, objek dan penunjuk kepada objek tersebut disimpan dalam bahagian memori yang berasingan. Walau bagaimanapun, jenis penuding baharu membenarkan kelas dengan sedikit data untuk menyimpan objek terus dalam penuding. Langkah ini menghapuskan keperluan untuk memperuntukkan memori secara langsung untuk objek, hanya buat penunjuk dan objek di dalamnya. Penunjuk bertanda hanya disokong dalam seni bina 64-bit juga disebabkan oleh fakta bahawa tiada lagi ruang yang cukup dalam penuding 32-bit untuk menyimpan data berguna yang mencukupi. Oleh itu, iOS, tidak seperti OS X, belum lagi menyokong ciri ini. Walau bagaimanapun, dengan ketibaan ARM64, ini berubah, dan iOS telah mengejar OS X dalam hal ini juga.
Walaupun penunjuk adalah 64 bit panjang, pada ARM64 hanya 33 bit digunakan untuk alamat penuding sendiri. Dan jika kami dapat membuka topeng bit penuding yang lain dengan pasti, kami boleh menggunakan ruang ini untuk menyimpan data tambahan - seperti dalam kes penunjuk berteg yang disebutkan. Dari segi konsep, ini adalah salah satu perubahan terbesar dalam sejarah Objektif-C, walaupun ia bukan ciri yang boleh dipasarkan - jadi kebanyakan pengguna tidak akan tahu bagaimana Apple menggerakkan Objektif-C ke hadapan.
Bagi data berguna yang boleh disimpan dalam ruang baki penunjuk yang ditandakan, Objective-C, sebagai contoh, kini menggunakannya untuk menyimpan apa yang dipanggil kiraan rujukan (bilangan rujukan). Sebelum ini, kiraan rujukan disimpan di tempat yang berbeza dalam ingatan, dalam jadual cincang yang disediakan untuknya, tetapi ini boleh melambatkan keseluruhan sistem dalam kes sejumlah besar panggilan alloc/dealloc/retain/release. Meja terpaksa dikunci kerana keselamatan benang, jadi kiraan rujukan dua objek dalam dua utas tidak boleh ditukar pada masa yang sama. Walau bagaimanapun, nilai ini baru dimasukkan ke dalam yang lain yang dipanggil isa penunjuk. Ini adalah satu lagi kelebihan dan pecutan yang tidak mencolok, tetapi besar pada masa hadapan. Walau bagaimanapun, ini tidak boleh dicapai dalam seni bina 32-bit.
Maklumat tentang objek yang berkaitan, sama ada objek dirujuk dengan lemah, sama ada perlu untuk menjana pemusnah untuk objek, dsb., juga baru dimasukkan ke dalam baki tempat penunjuk ke objek. Terima kasih kepada maklumat ini, Objektif-C runtime mampu mempercepatkan runtime secara asasnya, yang ditunjukkan dalam kelajuan setiap aplikasi. Daripada ujian, ini bermakna kira-kira 40-50% mempercepatkan semua panggilan pengurusan memori. Hanya dengan bertukar kepada penunjuk 64-bit dan menggunakan ruang baharu ini.
Kesimpulan
Walaupun pesaing akan cuba menyebarkan idea bahawa beralih kepada seni bina 64-bit adalah tidak perlu, anda akan tahu bahawa ini hanyalah pendapat yang tidak dimaklumkan. Memang benar bahawa menukar kepada 64-bit tanpa menyesuaikan bahasa atau aplikasi anda tidak bermakna apa-apa - malah ia memperlahankan keseluruhan sistem. Tetapi A7 baharu menggunakan ARM64 moden dengan set arahan baharu, dan Apple telah mengambil masalah untuk memodenkan keseluruhan bahasa Objektif-C dan memanfaatkan keupayaan baharu - justeru mempercepatkan yang dijanjikan.
Di sini kami telah menyebut sejumlah besar sebab mengapa seni bina 64-bit adalah langkah yang betul ke hadapan. Ia adalah satu lagi revolusi "di bawah hud", yang mana Apple akan cuba kekal di barisan hadapan bukan sahaja dengan reka bentuk, antara muka pengguna dan ekosistem yang kaya, tetapi terutamanya dengan teknologi paling moden di pasaran.
Ramai orang Android/Samsung yang tidak berpengetahuan harus membaca artikel ini dan kemudian bersembunyi di sudut.
Baiklah, kita kena kasihankan mereka. Selama bertahun-tahun mereka memaafkan UX dan UI Android yang menyedihkan dengan mengatakan bahawa mereka mempunyai OS yang paling maju dari segi teknologi dengan ciri dan kini mereka mendapati bahawa mereka telah ketinggalan bertahun-tahun lagi :)
Jika seseorang itu bukan biri-biri dan mendengar iklan (dan dia pandai melakukannya), maka selepas pengalaman peribadi dia boleh membentuk pendapatnya sendiri :-).
Saya mencuba hampir semua pertandingan dan membentuk pendapat saya sendiri.
Bagi saya, saya memerlukan telefon bimbit super berprestasi tinggi baharu, kerana saya tidak membelanjakan banyak untuknya. Itu dia Saya memerlukan prestasi yang kurang untuk harga yang lebih murah ;-). Mungkin saya lebih suka yang lebih perlahan dengan bateri yang lebih besar.
Sebaliknya, procak baharu akan berguna untuk iPad di mana terdapat banyak permainan :-).
Saya Android/HTC :) kerana IT agak menyeronokkan bagi saya dan mengakar serta menukar HW berkualiti tinggi menjadi pejuang pantas adalah hobi saya. Dan iOS tidak akan membenarkan saya berbuat demikian. (Ia tidak perlu pun. Lebih kurang, iOS direka supaya semuanya berfungsi sebagaimana mestinya dan anda tidak perlu melakukan apa-apa di sana. Apabila saya berhenti menikmati bermain, saya akan membeli epal dan menikmatinya). Tetapi saya tidak tahu mengapa anda terus menyerang antara satu sama lain seperti kanak-kanak. Apple benar-benar seperti Android. Ia seperti membandingkan Demokrasi dengan Diktator dan seumpamanya... Saya menonton persidangan itu apabila iPhone 5S diperkenalkan dan walaupun pada hakikatnya saya tidak memiliki apa-apa daripada Apple, saya menyukai 64bit dan penambahbaikan lain yang datang. Tetapi bukan kerana saya seorang honimír yang kompleks yang duduk di belakang PC dan mengejar Android atau Apple, tetapi kerana saya melihat KEMAJUAN yang tidak akan membuatkan saya menunggu lama. Orang ramai harus mula bekerja keras supaya mereka tidak mempunyai masa untuk berurusan dengan omong kosong, untuk mengatakannya dengan sopan.
sumbangan membina dari pihak lain :) kiez ia akan membuka mata baki 99% android positif
mungkin 99% fanatik epal perlu dibincangkan dahulu, barulah kita boleh berbual yang membina
perkara yang sangat kompleks dijelaskan secara ringkas... terima kasih
Artikel yang bagus! Ya, saya bersetuju bahawa pengguna Android/WP harus membaca artikel ini sebagai satu kemestian. Daripada trolling dan bercakap bijak tentang "bagaimana 64b tidak berguna dalam telefon bimbit"…
anda mungkin tidak pernah mempunyai wp di tangan anda, jika tidak, anda tidak akan mempunyai ini
Sejak kejayaan pertamanya dalam pasaran mudah alih, Samsung tidak melakukan apa-apa selain memburukkan persaingan, tetapi pada dasarnya, ia telah mengikuti jejaknya selama ini. Apple sentiasa menjadi model peranan untuk syarikat teknologi, dan jika mereka hanya menumpukan pada mengejek dan sentiasa memberi maklumat salah kepada pelanggan, mereka akan tersandung tidak lama lagi. Apple sentiasa mengikut caranya sendiri dan ia sentiasa menjadi masalah masa yang sangat baik, yang kekurangan banyak syarikat pesaing dalam industri.
Seseorang boleh mengatakan bahawa Samsung sedang menunggang gelombang dan mengambil kesempatan daripada kemungkinannya. Dia bertaruh pada Android, dia mempunyai HW yang hebat, dia membuat banyak perkara sendiri, dia mempunyai sokongan yang baik. Dan seperti mana-mana syarikat Asia pemangsa, ia menggunakan semua kemungkinan pengiklanan. Dan sudah tentu dia mencuri dan meniru. Yang pandai "bermata serong" ialah meniru. Mereka telah mengira dengan baik bahawa ia jauh lebih murah daripada mengikut cara mereka sendiri, langkah demi langkah. Dan sebagai sebuah syarikat yang kukuh, ia hanya mampu membelinya. Namun…
Saya hanya tidak faham mengapa kelajuan telefon terus meningkat, berikan saya beberapa contoh untuk kegunaan anda, ia perlahan-lahan tidak masuk akal untuk saya meningkatkan prestasi telefon bimbit, tetapi saya akan membuang perkataan pemasaran.
Permainan, permainan yang kurang dioptimumkan. Selain itu, Transport Tycoon pada iPad 3 tidak berjalan dengan lancar dan dalam resolusi yang sama seperti pada desktop. Contoh.
Saya hanya tidak faham mengapa kelajuan telefon terus meningkat, berikan saya beberapa contoh untuk kegunaan anda, ia perlahan-lahan tidak masuk akal untuk saya meningkatkan prestasi telefon bimbit, jika saya mengeluarkan perkataan pemasaran daripadanya .
Untuk pemprosesan video, audio dan imej. Dan seterusnya ke permainan.
Sesiapa sahaja yang menggunakan iPhone hanya untuk menelefon, menghantar mesej teks, dan sekali-sekala membaca atau menghantar e-mel dan sekali-sekala melayari Internet akan memerlukan iPhone 4. Saya percaya terdapat ramai pengguna sedemikian. Tidak semua orang memerlukan telefon terbaik di dunia :-)
biri-biri
Adakah pertukaran fizikal antara perkakasan dan perisian tidak bermakna bagi anda? Ini mengingatkan saya sedikit pada akhir abad ke-19, apabila ahli fizik pada masa itu mengatakan bahawa segala-galanya dalam fizik telah ditemui dan tidak perlu diteruskan (sedekad sebelum teori relativiti dan tiga sebelum teori kuantum) .
Mengejar yang terbaik tidak pernah berakhir. Kadangkala perisian mendahului dan kadangkala perkakasan. Tetapi jika seseorang terperangkap, ia tidak akan melepaskan yang lain. Kami tidak akan mementingkan diri sendiri kepada keturunan kami :) Jadi untuk ulasan anda - telefon yang lebih pantas akan membolehkan aplikasi yang lebih berkuasa, yang akan dapat melakukan lebih daripada pemacu. Dan sekali perkara yang walaupun komputer hari ini tidak mencukupi. Masa depan adalah mengujakan.
betul-betul :)
Artikel yang bagus, tetapi saya tidak faham mengapa Apple tidak meletakkan 7GB RAM dalam A2. Ya, berbilang tugas iOS tidak semestinya 2GB diperlukan, tetapi memandangkan dua kali panjang penuding memori, ia adalah lebih sesuai.
Tetapi sebaliknya saya bersetuju bahawa pemproses 64-bit adalah "tidak diperlukan" untuk telefon mudah alih, sama seperti paparan retina atau tetikus optik dan bukannya bola adalah tidak diperlukan - semua ciptaan ini dilabelkan sebagai "tidak perlu", tetapi pada pendapat saya perkataan yang betul adalah "abadi", kerana sekali mesti datang dan Apple tidak takut untuk menghasilkan sesuatu yang baru.
Saya menyokong itu. Malangnya, walaupun "tidak berguna" bukanlah ungkapan yang tepat. Tidak perlu bermaksud sesuatu yang keutamaannya tidak diketahui oleh seseorang. Itu pasti tidak benar. Kelajuan mungkin tidak memerlukan kelajuan sedemikian, tetapi ia pasti akan mengenalinya. Dan apabila perisian mengejar perkakasan, akan ada ruang untuk penambahbaikan lagi.
Sudah tentu, saya memihak, maksud saya iP5 adalah telefon pintar yang cukup pantas, jadi 5S tidak semestinya 64bit sama sekali. Tetapi suatu hari seseorang terpaksa berurusan dengannya sekali lagi dan ia adalah Apple dan sekarang. Sejauh yang saya ingat, pakar juga telah bercakap tentang bagaimana pemproses 64-bit akan menjadi tidak berguna walaupun dalam komputer.
Bagi saya, sebagai orang awam IT yang hampir gagal matrik, kesimpulan itu penting. Keseluruhan artikel (disokong oleh komen) nampaknya cukup bernas kepada saya, dan walaupun saya tidak akan dapat menjelaskannya, A7 dengan seni bina 64-bit adalah satu langkah ke hadapan. Terima kasih atas maklumat.
Saya akan mengedit tajuk artikel, kerana ia adalah langkah pemasaran. Setiap inovasi pada asasnya adalah langkah pemasaran. :-)
Saya tidak fikir. Sebagai contoh, Samsung menggunakan langkah pemasaran. Mereka muncul dengan RAM, yang iPhone tidak perlukan sama sekali. Mereka melarikan diri dengan ciri yang tidak boleh digunakan sama sekali. Mereka sengaja meningkatkan prestasi pemproses untuk ujian. Dan lain-lain. Itulah pemasaran, walaupun ya, ia mengelirukan, yang tidak sepatutnya mereka lepaskan begitu sahaja;)