Объяснение 64-битности процессора

Пока все гадают зачем же iPhone 5s нужен 64-битный процессор (а Samsung срочно копирует Apple, готовя к выпуску 64-ядерный 64-битный процессор для смартфона диагональю 64 дюйма), многие задаются вопросом о том, что же это вообще такое. Я наткнулся на объяснение, которое максимально простым языком объясняет это так, что не понять невозможно.

Перевод текста отсюда:

Представьте себе iPhone в виде огромной библиотеки. Там есть всевозможные виды книг (система хранения данных), а также библиотекарь, который помогает определить, какая же книга вам нужна. У библиотекаря есть 32 помощника, которые уезжают за книгами на велосипедах и привозят их к библиотекарю. Если кто-то приходит и хочет получить все книги о динозаврах, а таких книг в библиотеке всего 65 штук, то книги будут доставлены к библиотекарю за 3 поездки. В первую поездку поедут все помощники и привезут 32 книги, затем они съездят еще раз, и привезут еще 32 книги, а в третью поездку поедет только один и принесет недостающую книгу, но эта поездка у него займет столько же времени, и в этом случае важно, сколько времени занимает поездка.
Так что чтобы привезти эти книги требуется три поездки на велосипеде (назовем их циклы — то есть три цикла). Однако, если у библиотекаря есть 64 помощника, это займет только 2 цикла. Так что повышение производительности будет значительным, но не в ДВА раза, поскольку все равно остается еще одна поездка, где нужна помощь одного ассистента, в то время как другие будут ждать его и без возможности ускорить его.
Если же о динозаврах имеется 256 книг, тогда 32 помощника потратят 8 циклов на то, чтобы их принести, а с 64 помощниками процесс займет 4 цикла.
iPhone работает примерно так же. iPhone получает данные из памяти, но может обрабатывать ограниченное количество за один раз. iPhone, работающий на 32 битах может обрабатывать только 32 бита данных за один цикл. 64-битный iPhone может получать и обрабатывать 64 бита данных за один цикл, что означает улучшение производительности, мощности и эффективности.

Так что чисто в теории 64-битный процессор — это хорошо, это ускорение работы приложений, оперирующих большими объемами данных, в частности, например, для игр. Реальный прирост производительности, конечно, будет процентов 30, но он будет достаточным для того, чтобы его было заметно даже невооруженным взглядом обычному пользователю. И те долгосрочные планы, которые могут быть у Apple для применения подобных процессоров, мы узнаем довольно скоро — уже через 1-2 года, я думаю.

26 thoughts on “Объяснение 64-битности процессора

  1. Ох… Вчера AppleInsider.Ru обделался с этим описанием 64-битности, сегодня вы. Ну не работает так процессор, матчасть нужно изучать. В реальности 64 бита вам дают возможность работать с более чем 4 гигами памяти (точнее до 16 эксабайт, надолго нам хватит), не более чем. Как загружались ваши данные в регистры, так и будут загружаться, только количество значений у примитивных типов будет больше (на платфромо-зависимых языках). Оптимизация работы программы под то, что вы описали обернётся невероятным геморроем и никто этим заниматься не будет. При этом почему-то никто не указывает, что сами указатели станут в 2 раза больше и положительно на производительность это точно не повлияет.

    • Почему вы путаете 64 битные указатели с 64 битными операциями.
      Например инвертирование 64 битного числа графики – это одна 64 битная операция и к такой операции указатели не имеют никакого прямого отношения, не правда ли?
      Мне кажется программисты уже забыли, как работает процессор и что это. Вот вы пишите что указатели станут в 2 раза больше и это будет плохо. Но для 64 битного процессора, который за один такт читает 64 битный указатель – это точно не станет медленнее.
      Мне кажется вы плохо представляете себе, что такое процессор. Как и те возражающие, которые возражали автору на английском.

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

        • Так они же сразу заявили, прямо на презентации, что ускорятся процессы по обработке графики.
          Так что все честно.
          Но аналогия верная. Чем при обработке графических массивов аналогия с 64 посыльными, каждый из которых тащит (правильнее обрабатывает) свой бит неверна?

          • Графику рисует GPU. Работа CPU сделать несколько буферов с координатами и гранями, всяко от 64бит скорости не прибавится. Про какие такие массивы вы говорите?

          • Между тем не все операции с графикой идут на GPU. С данными так обычно вообще GPU не при делах. Если вы допустим фоточку решили в сепию инвертировать или сразу видеопоток в сепию, то GPU тут не друг, а операции идут с графическими данными, правда?

          • Да, правда. Сепию может и не делают на GPU. Только 64бита врядли сильно ускорит. К тому же, NEON инструкции для этого подходят гораздо лучше. Ну и пост эффекты это конечно аргумент. Юз кейс намбер ван.

          • ну справедливости ради стоит заметить, что для вывода сепии в реалтайме возможно использовать пиксельные шейдеры 🙂

          • Опять таки, вот тесты http://www.iphones.ru/iNotes/323375
            Тесты сырые и не 64 битные (но тесты это ж не рассуждения, а по сути факт). Кроме как тестами показать рост производительности имхо нельзя. На правильных тестах вылазят все бытылочные горлышки.

  2. Осталось только посмотреть на энергопотребление этого процессора. Плюс, конечно, 8-ГБ версии станут вообще неактуальны – потому что 64-битные приложения, вроде бы, весят поболее 32-х.

    • Вывод: Почему до сих пор никто этого (64-битный ARM-процессор) не сделал? Да потому что оно, по большому счёту, пока что никому не нужно.

  3. Если данные влезают в 4 ГБ, то реальный прирост производительности не 30%, а ноль.
    Доказано десктопами.

    • Только если работа процессора связана только с адресацией данных.
      Но те же графические библиотеки на побитовых сдвигах должны ускориться почти в 2 раза.

        • Бутылочное горлышко – это если память не справляется.
          Но вы ведь не знаете характеристик памяти? Правда? Опять таки Apple проводил тесты, если в них усомниться – нужно провести свои тесты.

  4. Все просто: у ARM выпущены 64-разрядные ЦП для серверных ферм, Яббл решил, что пришить их к франкенштейну 5S будет круто.

  5. Новый процессор А7, на котором работает iPhone 5S, также может
    обеспечить Apple преимущество над конкурентами на некоторое время. С
    другой стороны, возможности, которые может предоставить 64-битный
    процессор сам по себе, вряд ли будут сильно отличаться от возможностей
    других телефонов.
    http://blogs.pcmag.ru/node/2119

  6. Боже мой, какая чушь!
    Автор статьи статьи спутал разрядность шины данных процессора, с разрядностью внутренних регистров процессора.
    А на самом деле разрядность внешних шин ничего не говорят о разрядности регистров…
    Приведу пример из мира ПК – ещё первый пентиум будучи 32’битным имел 64-битную шину данных. И он-же, будучи 32-битным, имел 80-битные регистры MMX. Тридцатидвухбитный второй пентиум – так вообще имел 128’битные регистры SSE. И, что первый пентиум, что второй, третий, четвертый, и даже CoreDow, Core i3, i5, i7 – общаются с памятью все с 64-битной шиной данных. А вот разрядность адреса – поменялось, и теперь стало возможным адресовать гораздо больший объем.
    Абсолютно то-же самое и с ARM. Разрядность адреса как была, так и осталось. Скорость доступа к памяти – аналогично.
    Так, что – автор спорол чушь.

Leave a Reply