В чем преимущество 64-битной A7 в iPhone


21

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

Однако я не вижу, чтобы в скором времени многие телефоны занимали более 4 ГБ памяти. Это кажется чрезмерным, и это отрицательно скажется на сроке службы батареи.

Другая проблема, которую я вижу, состоит в том, что большинству переменных сейчас требуется вдвое больше памяти. Это создаст проблемы в мобильной среде с небольшими объемами памяти.

Я считаю, что люди в Apple умны, и у них, вероятно, есть веские причины для этого, я просто пытаюсь понять их.

РЕДАКТИРОВАТЬ

Не знаю много о графических процессорах, но мне сказали, что с 64-битными регистрами в каждый регистр можно загрузить 2 пикселя, и операции с ними могут выполняться индивидуально. Есть ли графическое преимущество относительно 64 бит?


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

3
@ Chris.Stover - Сегодня нет никаких преимуществ. Конечно, завтра приложение для iOS сможет использовать больше памяти, когда у телефонов будет больше памяти. Всего за 5 лет объем памяти телефона увеличился как минимум на 200%. Если тенденция сохранится, мы сможем увидеть телефоны 6 ГБ-8 ГБ за очень короткое время. Apple также с нетерпением ждет, когда они сделают что-то подобное. Все сводится к тому, что ARM, скорее всего, будет продолжать лицензировать только 64-битные разработки. Это действительно сводится к тому, что у телефона теперь больше регистров, что действительно делает его быстрее. 64-битная спецификация сегодня не важна.
Ramhound

1
Это не в два раза, это на несколько порядков больше. 32-разрядные процессоры могут обрабатывать только 4 ГБ памяти. 64-разрядные процессоры могут адресовать около 18 эксабайт, что на 3 порядка выше.
Мировой инженер

7
не более 640 Кб памяти
Reactgular

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

Ответы:


25

В основном это просто выброс большого числа, потому что это впечатляет массы. Большие числа явно превосходят, поэтому все, что с 64-битным процессором, явно лучше, чем что-то с 32-битным процессором. Новый процессор значительно лучше своего предшественника , но в Apple , моды, они не собираются попробовать маркетинг , основанный на технических спецификациях - они просто собираются , чтобы сказать вам , что 64-битная A7 является новее и лучше , чем 32- бит А-6 . Однако, глядя на технические характеристики, вы видите:

  • 28 нм против 32 нм процесс
  • Улучшенный встроенный графический процессор
  • Архитектура ARM v8 v. ARM v7 (добавляет функции SIMD; переключается с 13 на 31 регистр общего назначения)
  • Оперативная (то есть - быстрее) основная память

Помимо этого, существует тот факт, что они могут начать развертывать (обратно совместимые) 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 не продает оборудование по техническим характеристикам - они просто хотят нажать «Новее и лучше!» со следующим поколением, а не рассказывать вам, почему новое оборудование на самом деле лучше.
Шон МакSomething

2
ARM v7 уже поддерживает 40-битные адресные строки (1 ТБ ОЗУ), хотя приложения в этой 32-битной архитектуре могут адресовать только 4 ГБ каждая. Arm v8 в настоящее время поддерживает 32-битные приложения, поэтому обратная совместимость не является проблемой.
gbjbaanb

16

В ARMv7 нет «стены 4 ГБ» , так как многие ядра ARMv7 поддерживают LPAE (расширение большого физического адреса), которое является концепцией, сходной с 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 ГБ DRAM.

«Преимущественно ... вам это нужно для адресации памяти, превышающей 4 ГБ. Вот и все. В действительности вам это не нужно для производительности, а типы приложений, в которых 64-битные приложения используются в основном, - это большие серверные приложения», - сказал он. Чандрасехер, который ранее руководил группой мобильных платформ Intel. ( источник )


9

Сосредоточение только на том, A7чтобы быть, ARMv8есть одно очевидное преимущество. ARM перезагружает их набор команд и архитектуру.

Будучи обратно совместимым с ARMv7, следующая версия также утверждает

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

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

Смотрите больше на ARM Architecture Preview .


+1. Грубер также имеет хорошее описание преимуществ 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-разрядному процессору телефон может быстро передавать больше данных в графический процессор. Это позволит создавать быстрые 3D-игры и более впечатляющую графику. Вы действительно начнете видеть преимущества 64-битной 3D-графики в реальном времени, потому что этот процесс сильно зависит от данных.


4
Современные / современные архитектуры процессоров намного сложнее, чем вы описываете здесь. Процессоры перемещают данные из памяти в блоки, называемые cache linesпо шинам памяти, которые могут иметь 16-битные 32-битные или, возможно, 64-битные. Это не обязательно соответствует собственному размеру слова CPU arch. Вы правы, что большая проблема заключается в перемещении данных, но эта проблема относится к какой-то другой аппаратной / архитектурной области. FP выполняется на FPU, которые на самом деле довольно быстрые и могут работать с одинарной или двойной точностью размеров. То же самое для декодирования видео или 3D на самом деле, они имеют все свое собственное оборудование, которое не обязательно является 64-битным.
августа

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-битных архитектурных режимах с ISA x86, MIPS и ARM, 64-битный режим быстрее тестировался в определенных важных приложениях. Одна из ключевых причин заключается в том, что 64-разрядные ISA являются более новыми, и поэтому архитекторы ISA знали больше о статистике приложений и о том, как оптимизировать этот набор поведений приложений при определении ISA. И новый процессор ISA должен быть ориентирован на будущее, учитывая потребности приложений в памяти, которые растут со скоростью закона Мура и уже выросли в миллион раз в области мобильных устройств.

Таким образом, новый ISA arm64, скорее всего, сравнительно быстрее тестирует любой код с ограниченной производительностью, который вы можете разработать (он имеет в моем коде), а также позволяет тупым указателям на C обращаться к обширным виртуальным адресным пространствам, которые, вероятно, станут обычными через десятилетие или более (что является гораздо меньше времени, чем у оригинального 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.