Яка перевага 64-бітного A7 в iPhone


21

Я намагаюся розібратися, чому перехід на 64-бітні процесори - така велика справа в iPhone. Я розумію, що регістрів буде вдвічі більше, щоб процесор міг працювати з вдвічі більшою кількістю даних, що повинно підвищити продуктивність.

Однак я не бачу, що незабаром багато телефонів збираються на 4 Гб пам'яті. Здається, це надмірно, і це негативно вплине на час автономної роботи.

Ще одна проблема, яку я бачу, полягає в тому, що більшості змінних зараз потрібно вдвічі більше пам’яті. Це створить проблеми в мобільному середовищі з невеликою кількістю пам'яті.

Я вважаю, що люди в Apple розумні, і вони, мабуть, мають великі причини для цього, я просто намагаюся їх зрозуміти.

EDIT

Не знаю багато про GPU, але мені сказали, що за допомогою 64-бітових регістрів у кожний реєстр можна завантажувати 2 пікселі, і операції з ними можна виконувати окремо. Чи є графічна перевага щодо 64 біт?


2
Як бічна примітка - більша потужність обробки означає, що програмісти можуть дозволити собі бути лінішими, ніж раніше (менше оптимізацій), причиною може бути заохочення розробників додатків.
Влад Преда

3
@ Chris.Stover - Сьогодні немає переваги. Звичайно завтра програма для iOS зможе використовувати більше пам’яті, як тільки телефони матимуть більше пам’яті. Всього за 5 років ємність пам'яті телефону зросла щонайменше на 200%. Якщо тенденція продовжиться, ми могли побачити телефони від 6 до 8 ГБ за дуже короткий час. Apple також з нетерпінням чекає, коли вони роблять щось подібне. Все зводиться до того, що ARM, ймовірно, збирається лише ліцензувати 64-бітні конструкції вперед. Це дійсно зводиться до того, що телефон зараз має більше регістрів, що дійсно робить його швидшим. 64-розрядна специфікація сьогодні не важлива.
Рамхаунд

1
Це не вдвічі, це на порядок більше. 32-бітні процесори можуть адресувати лише 4 ГБ вершини оперативної пам’яті. 64-бітні процесори можуть адресувати близько 18 екзабайт, що на 3 порядки вище.
Світовий інженер

7
не більше межі пам’яті на 640 кб
Реакційний

1
Підозрюється, що Nexus 5 матиме 3 ГБ оперативної пам’яті, і це буде запущено в наступному місяці. Я не думаю, що 4 ГБ + так далеко, як ви могли подумати.
Брендон

Відповіді:


25

Це здебільшого просто викидання великої кількості туди, бо це вражає маси. Більші числа, очевидно, переважають, тому що-небудь із 64-розрядним процесором явно краще, ніж щось із 32-бітовим процесором. Новий процесор значно краще , ніж його попередник , але, в Apple , моди, вони не збираються , щоб спробувати на основі маркетингу на технічні характеристики - вони просто збираються , щоб сказати вам , що 64-бітна A7 є новіше і краще , ніж 32- біт А-6 . Однак, дивлячись на технічні характеристики, ви бачите:

  • 28nm проти 32nm мікросхеми
  • Удосконалений інтегрований графічний процесор
  • ARM v8 архітектура проти ARM v7 (додає функції SIMD; переходить з 13 до 31 регістрів загального призначення)
  • On-die (тобто - швидша) основна пам'ять

Крім того, існує той факт, що сьогодні вони можуть почати розкручувати 64-розрядне обладнання 64-розрядних апаратних засобів, перш ніж зіткнутися зі стіною 4 Гб. Через кілька років, коли 64-розрядна стає необхідністю, все обладнання підтримуватиме її, і не потрібно буде обробляти застарілі 32-бітні архітектури.


1
Я фактично не можу знайти джерело інформації в статтях вікі. Інші сайти повідомляють про двоядерний процесор на частоті 1,5 ГГц. На одній вікі-сторінці написано, що A7 - 1,7 ГГц окта-ядро. Дивіться наступне: en.wikipedia.org/wiki/Apple_(system_on_chip) pdadb.net/index.php?m=pdacomparer&id1=4962&id2=4829
Chris.Stover

2
@ Chris.Stover просто показує, що Apple не продає обладнання на технічних характеристиках - вони просто хочуть натиснути "Новіше і краще!" з наступним поколінням, а не розповідати, чому нове обладнання насправді краще.
Шон Мак-Що-що

2
ARM v7 вже підтримує 40-бітові рядки адреси (1 ТБ оперативної пам’яті), хоча додатки з 32-бітної архітектурою можуть адресувати лише 4 ГБ кожен. В даний час Arm v8 підтримує 32-розрядні програми, тому сумісність у зворотному середовищі не є проблемою.
gbjbaanb

16

На ARMv7 немає "стіни 4 Гб" , оскільки багато ядер ARMv7 підтримують LPAE (Large Physical Address Extension), що є концептом, схожим на PAE на x86, за винятком того, що LPAE використовує 40-бітну адресацію. Значить, ARMv7, оснащений LPAE, може адресувати до 1 ТБ оперативної пам’яті .

Важливо також зазначити, що майбутні ядра ARMv8, включаючи A7, не використовуватимуть 64-бітну фізичну адресацію . Швидше за все, A7 використовуватиме або 40-бітну, або 44-бітну фізичну адресацію. Пізніше надається доступ до щонайбільше 16 ТБ ОЗУ.

Звичайно, або з LPAE на ARMv7, або в режимі AArch32 на ARMv8, додатки все ще є 32-бітними, тому сама програма може одночасно отримати доступ до 4 ГБ. Але я не думаю, що незабаром це стане проблемою для мобільних пристроїв.

Ви хвилюєтесь, що додатки будуть використовувати більше пам’яті (64-розрядні вказівники), але це не так, якщо вони працюють у 32-бітному режимі (AArch32).

З іншого боку, ARMv8 забезпечує інші архітектурні покращення над ARMv7, які не пов'язані з AArch64.

TL, DR: 64-розрядність A7 - це маркетинговий трюк. Навіть у системах з більш ніж 4 ГБ оперативної пам’яті це не дає значної переваги перед LPAE для 32-бітних додатків. І 64-бітні додатки не скоро з’являться.

Оновлення: Це підтверджено керівником відділу маркетингу Qualcomm (в даний час колишнім виконавчим директором, оскільки він був занижений за ці коментарі ).

"Я знаю, що багато шуму, тому що Apple зробила [64-бітну версію] на своєму A7", - заявив в інтерв'ю Ананд Чандрасехер, старший віце-президент і головний директор з маркетингу Qualcomm. "Я думаю, що вони роблять маркетинговий трюк. Споживач отримує нульову вигоду від цього".

Перевага 64-бітової полягає в більшій адресації пам'яті, але це не актуально для сучасних смартфонів чи планшетів, сказав Чандрасекер. У iPhone 5s є лише 1 Гб оперативної пам’яті.

"Переважно ... він вам потрібен для адресності пам'яті понад 4 Гб. Це все. Це вам не дуже потрібне для продуктивності, а типи програм, якими 64-розрядні користуються в основному, це великі програми серверного класу", - сказав Чандрасекер, який раніше керував групою мобільних платформ Intel. ( джерело )


9

Орієнтація виключно на A7те, ARMv8що є один очевидний виграш. ARM перезавантажує їх набір інструкцій та архітектуру.

ARMv7Наступна версія також стверджує, що є зворотною сумісністю

  • Новий набір інструкцій (A64)
  • Переглянуто обробку винятків для виключень у стані AArch64
  • Менше банківських регістрів і режимів

Таким чином, ARMv8кидає виклик ARMv7архітектурним відмінностям, забезпечуючи більш чистий інтерфейс для розробників системи, який, ймовірно, може видалити застарілі функції, що ведуть до кращої платформи. Що означає, що слід очікувати кращої продуктивності / енергії замість негативного впливу на акумулятор.

Дивіться більше про попередній перегляд ARM Architecture .


+1. Gruber також має хороший опис переваг, які ARMv8 на daringfireball.net/2013/09/the_iphone_5s_and_5c . (Прокрутіть униз до "A7: ARMv8 та 64-розрядна архітектура.")
Джош Келлі

4

Найбільша перевага перед 32-бітовим для 64-бітних процесорів - це рух пам’яті, а не розмір пам’яті. Хоча це правда, що 32-бітний може накладати обмеження на 4 Гб для прямого доступу. Існує багато апаратних та програмних рішень, щоб подолати цю межу.

64-бітні процесори можуть просто прочитати / записати більше даних за одну операцію процесора. Це дозволяє коду складання виконувати операції на 8 байтових блоках. Це може мати велику перевагу в порівнянні з 32-бітовими процесорами. Розрахунки з плаваючою комою швидші на 64, ніж на 32, і коли ЦП використовує подвійні регістри, він може працювати на 128-бітних блоках даних.

64-бітні процесори також мають більшу пропускну здатність до фізичної пам'яті. Якщо у вас є камера, яка записує 1080p і хочете редагувати це відео. Виконання операції над відеофайлом об'ємом 1 Гб просто буде швидше на 64-бітному.

Все вищесказане справедливо, навіть якщо ГГц процесора залишається колишнім.

Якщо 64-бітний настільки хороший, то чому б не 128-бітний?

Чим більше бітів ви додасте до конвеєра центрального процесора, тим більше даних, які повинен перемістити процесор. ЦП не може звузити пропускну здатність до 16 або 32. Отже, це створює проблему для розробників програмного забезпечення. Більшість програмного забезпечення (ваш календар, нотатки тощо) не залежать від великої кількості даних, і в результаті 128 біт залучають велику кількість витраченої пропускної здатності. Це може почати перешкоджати продуктивності та ресурсу акумулятора. Тому виробники процесора повинні знайти баланс між пропускною здатністю та вимогами до програмного забезпечення.

Я вражений тим, що Apple так швидко випустила новий 64 процесор у житті мобільних обчислень. Я думаю, що їх реальною мотивацією є 3D-графіка. За допомогою 64-розрядного процесора телефон може швидко переміщувати більше даних до GPU. Це дозволить отримати швидкі 3D ігри та більш вражаючу графіку. Ви дійсно почнете бачити переваги 64-розрядних 3D в реальному часі, оскільки цей процес дуже залежить від даних.


4
Останні / сучасні архітектури процесора набагато складніші, ніж ви описуєте тут. Процесори переміщують дані з пам'яті в одиницях, що називаються cache linesпо шинах пам'яті, які можуть мати 16-розрядні 32-бітні або, ймовірно, 64-бітні. Це не обов'язково відповідає розміру рідного слова арки CPU. Ви маєте рацію, що велика проблема - це переміщення даних, але ця проблема належить до іншого апаратного / архітектурного домену. FP робиться на FPU, які насправді є досить швидкими і можуть працювати з одно- чи подвійною точністю розмірів. Як і для декодування відео або 3D, насправді, у них є власні спеціальні програмні засоби, які не обов'язково мають 64-розрядні розряди.
auselen

4
Є надзвичайний документ, який можна назвати what every programmer should know about memoryбезкоштовно для допитливого розробника akkadia.org/drepper/cpumemory.pdf
auselen

2

Це полегшує справи при обробці великої кількості. Велика кількість надзвичайно важлива у криптографії (після PRISM, що має захищений мобільний телефон, стала дуже важливою) та наукових програмах.


1

Хоча ви, можливо, зараз не зіткнетеся з проблемами, якщо ви будете дотримуватися 32-бітових версій, то, безумовно, будуть проблеми найближчим часом. Урок, отриманий з настільного світу, полягає в тому, що перехід буде тривалим і важким процесом. Тож слід почати з цього раніше, ніж пізніше.

Мене навіть здивувало, що смартфонів не було 64-х бітових від початку.


Я перевірив це, перетворивши свій поточний додаток у 32 біт. Я мав ряд попереджень, але помилок не було. На щастя, у Apple було запропоноване виправлення для кожного попередження, тому я просто натиснув кожне попередження і натисніть клавішу Enter, щоб прийняти виправлення. Взяв близько 5 хвилин, і я працював у 64 біті. Без головного болю немає проблем ... поки що
Chris.Stover

0

Я не думаю, що технічних переваг багато. По-перше, я думаю, це має більше сенсу, якщо врахувати iPad (у нього більший акумулятор, тому він може підтримувати більше оперативної пам’яті, більше споживання енергії процесором тощо). По-друге, подивіться на інші оголошення, що тривають зараз. Компанія AMD щойно оголосила, що збирається поставляти 64-бітні процесори ARM у 2014 році. Це, в основному, Apple, що тримає лідерство на ринку перед обличчям того, що виходить на планшети Android та Win8 високого класу.


0

У короткому періоді майже нічого. Це насправді крок назад кількома способами. Є три основні переваги, про які я знаю.

  1. 64 біт набагато краще з більшими числами, що є користю для криптовалют. Що може бути цікавим поєднанням зі сканером відбитків пальців на телефоні.
  2. Знову ж таки, вдосконалення з 64-бітовою та великою кількістю допомагають фізичній візуалізації. Що зручно враховувати кількість фізики, що використовується в інтерфейсі iOS7. Це також приносить користь розробникам ігор, а також особливо на щось з великою нерухомістю екрану, як-от iPad.
  3. Це також додає певну ступінь майбутнього підтвердження поточних телефонів, використовуючи це.

0

Орієнтири.

Для деяких реалізацій, здатних використовувати 32-ти та 64-бітові архітектурні режими з x86, MIPS та ARM ISA, 64-бітний режим швидше орієнтується на певні важливі програми. Однією з ключових причин є те, що 64-бітні ISA новіші, і архітектори ISA, таким чином, знали більше про статистику додатків та як оптимізувати цей набір прикладних програм при визначенні ISA. І новий ISA-процесор повинен бути впевненим у майбутньому проти потреб пам’яті додатків, які зростають із закономірними темпами Мура і які вже зросли в мільйон разів в області мобільних пристроїв.

Таким чином, новий ISA arm64, швидше за все, швидше орієнтується на будь-який код з обмеженою продуктивністю, який ви можете розробити (він є в моєму коді), а також дозволить тупим вказівникам С звертатися до величезних віртуальних адресних просторів, які, можливо, стануть загальними через десять років і більше (що є набагато менше часу, ніж вже існував оригінальний 32-бітний ARM ISA).

Продуктивність у вашому конкретному наборі програм (міра для підтвердження) - чудова причина віддати перевагу arm64.


-4

64-бітний дозволяє значно більше ділитися кодом з настільними версіями OSX (які всі 64-бітні)


Але в даний час всі програми ios повинні підтримувати 32-бітну сумісність, тому будь-який 64-розрядний код в будь-якому випадку повинен бути перетворений в 32-розрядний.
Брайан Чен

1
Але вони все одно відрізняються архітектурою (x86-64 проти armv8). Нульовий виграш від цього (нормально написана програма на C / C ++ / ObjC буде працювати на будь-якій кількості біт, навіть якщо це не є вимогою).
Ян Худек
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.