Запущенный в 2013 году iPhone 5S стал первым в мире смартфоном на базе 64-битного процессора, когда даже многие настольные компьютеры были 32-битными.
Обычно такая перемена нужна компьютерам, которые требуют больше 4 ГБ оперативной памяти. Но в iPhone 5s стоял всего 1 ГБ, и, судя по количеству оперативной памяти в следующих моделях, Apple могла ещё пять лет выпускать 32-битные смартфоны.
Оказывается, переводить iPhone на архитектуру настолько уровня так рано пришлось совсем по другой причине. Дело в том, что в 2038 году любой гаджет на базе 32-битной системы навсегда сломается.
Если кажется, что эта дата далеко, напоминаю: до неё осталось ровно столько же, сколько прошло с анонса первого iPhone.
Ниже разберёмся, что такое процессоры на базе 64 бит и 32 бит, зачем на них нужно было переходить, в чём настоящая проблема старых CPU и как гениальный маркетинг Apple в очередной раз замаскировал необходимый и стрессовый для индустрии технический скачок, а мы и не заметили.
КРАТКО◦ Почему переход на 64 бит нужен не только для увеличения RAM
◦ Как часто в прошлом компьютеры переходили на новую битность
◦ Почему Apple перевела чипы на 64 бит так рано
◦ Как громкий редизайн iOS 7 оказался маскировкой для перехода на 64 бит
◦ Какие компьютеры скоро начнут работать с ошибками
О чём говорят, когда называют систему 64‑битной
Данные переносятся с постоянного хранилища в оперативную память и затем в CPU. В зависимости от битности процессора зависит скорость, с которой данные переносятся
Система компьютера называется 64-битной, потому что была написана под 64-битные процессоры CPU.
64-битный CPU, в свою очередь, разрабатывается на железном уровне. Это значит, что он может обрабатывать числа длиной до 64 бит за один шаг вычислений благодаря повышенной пропускной способности своих компонентов – в первую очередь, шины и регистров данных.
В итоге это помогает в ускорении логических операций, обращении к памяти и обработки адреса данных.
Битность процессора диктует ширину шины, по которой данные попадают из RAM в CPU. От этого зависит скорость передачи данных
Современная RAM доставляет данные в мультипотоке, который в два раза шире того, что был на 32-битных системах
Обычно процессор за один такт (1 Гц) получает инструкцию, которая включает код операции и адрес данных в памяти RAM.
‣ Поскольку адреса тоже хранятся как числа, то, чем шире адрес, тем больше объём оперативной памяти сможет охватить процессор.
Например.
В 32-битных процессорах адреса состоят из 32 бит, и это ограничивает максимальный объём доступной памяти до 4 ГБ (2 в 32 степени байт).
В 64-битных системах адрес состоит из 64 бит, и теоретически можно обратиться к 16 миллионам ТБ оперативной памяти (2 в 64 степени байт).
Это не значит, что процессор обрабатывает 16 миллионов терабайт данных за раз. Он просто может адресовать любую ячейку в этом диапазоне без дополнительных операций.
Однако это не значит, что для ускорения системы нужно использовать сразу такой объём RAM в 64-битной архитектуре.
Почему переход на 64 бит нужен не только для увеличения RAM
Как выяснили, 64-битные процессоры поддерживают огромный объём оперативной памяти: они физически способны работать с адресами, охватывающими до 16 миллионов ТБ RAM.
Но переход на новую разрядность нужен не только для увеличения RAM.
Дело в том, что архитектура CPU меняется физически, и шины, по которым идёт информация, начинают пропускать более крупные данные.
Даже при прежнем объёме памяти инженеры могут разработать на железном уровне новые наборы инструкций в CPU.
Это оптимизирует регистры и вычислительные блоки-калькуляторы (ALU) внутри CPU под новые переменные, тем самым ускоряя доступ к данным и их обработку.
Как часто в прошлом компьютеры переходили на новую битность





Первый настоящий процессор Intel 4004 имел разрядность 4 бита. Он максимально поддерживал 16 бит или 2 байта.
Его вычислительной ёмкости стало мало уже через год, и с тех пор CPU активно переводили на новую архитектуру.
Так выгляди хронология первых процессоров с новой разрядностью:
▪︎ 4-битный: Intel 4004 (1971 год) — первый коммерческий процессор, использовался в калькуляторах
▪︎ 8-битные: Intel 8008 (1972 год) — основа первых домашних компьютеров Apple II, Commodore 64
▪︎ 16-битные: Intel 8086 (1978 год) — платформа IBM PC и MS-DOS
▪︎ 32-битные: Intel 80386 (1985 год) — первая массовая архитектура с поддержкой многозадачности и виртуальной памяти свопа
▪︎ 64-битные: AMD Athlon 64 (2003 год) и Intel EMT64 (2004 год).
В мире смартфонов массовый переход начался с Apple A7 в 2013 году с запуском iPhone 5S. Тогда у многих был вопрос: зачем, если там всего 1 ГБ оперативной памяти.
Хотя Apple объяснила своё решение на презентации, реальная причина могла быть другой.
Почему Apple перевела чипы на 64 бит так рано
Фото из нашего обзора iPhone 5S
Первым iPhone с 6 ГБ оперативной памяти был iPhone 12 Pro, вышедший в 2020 году. Теоретически, до этого момента компания могла спокойно выпускать модели на архитектуре 32 бит.
Несмотря на то, что Apple разрабатывает дизайн своих чипов самостоятельно, она опирается на набор инструкций, которые создаёт компания-лицензиатор ARM. Часть логики разных модулей CPU продумывают и продают в пользование Apple, Qualcomm и другим именно там.
Поскольку разработчики ARM не были связаны только мобильной платформой, они предоставляли лицензии на ядра и отдельные их компоненты в том числе для десктопных процессоров, рассчитанных на работу в разрядности 64 бита.
Вероятно, в Apple увидели, насколько эти инструкции и регистры эффективнее тех, что были созданы для 32-битных систем, в, например декодировании видеопотока и компиляции, и поняли что за ним будущее. Как упоминал выше, эффективность эта повышается за счёт более гибкого доступа к данным.
На презентации iPhone 5S Фил Шиллер упомянул, что в A7 производительность CPU и GPU увеличили до двух раз как раз благодаря этим современным наборам инструкций.
Поэтому компания перевела свои процессоры на 64-битную архитектуру до того, как смартфонам понадобилось больше 4 ГБ памяти.
Как громкий редизайн iOS 7 оказался маскировкой для перехода на CPU 64 бит
С большой вероятностью, Apple запустила полностью новую iOS 7 в том же году по той же причине.
Дело в том что для перевода устройств на 64-битные процессоры нужно обязательно сформировать новую программную базу для этого, в том числе полностью переписать операционную систему на самом низком уровне и адаптировать приложения и API для совместимости с графикой и вычислениями.
Поскольку iOS 7 выглядела и работала абсолютно иначе по сравнению с iOS 6, скорее всего, она изначально была написана как 64-битная для задела обновлений на будущее. А затем была адаптирована под старые 32-битные устройства.
Вероятно, по той же причине некоторые устройства не обновились до iOS 7 (iPod Touch 4), а другие работали плохо (iPad 4).
Также Apple могла перейти на 64 бит как можно раньше, поскольку любой компьютер и телефон на базе 32-битной системы является бомбой отложенного действия.
Какие компьютеры начнут работать с ошибками в 2038 году
Пострадают любые iPhone старше iPhone 5S
Из-за особенностей подсчёта времени все компьютеры на базе 32-битных CPU в реальной опасности.
Эти устройства считают время как количество секунд с 1970 года. Они хранят это число в формате, который ограничен до 2 147 483 647 секунд (2,15 млрд) или 68 лет.
19 января 2038 года секунды кончатся, поэтому счётчик достигнет максимума и перепрыгнет назад в 1900 год. Они обнулятся до формата «00» с того века, в котором начали отсчёт.
❗️ Начнутся масштабные сбои: гаджеты будут показывать неправильную дату или в принципе перестанут работать.
Это сломает абсолютно всю вычислительную технику, которая работает на 32-битной системе. Сюда включаются не только ваши старые домашние компьютеры и iPhone 5, iPhone 4S и старше.
Проблема коснётся любой кассы, банкомата, старенького сервера в больнице, компьютеров в боулинг-машинах и аттракционах, и первых автомобилей с операционными системами, которые используют 32-битные CPU.


То есть пострадает весь корпоративный и госсектор, который не обновит своё железо в течение следующих 18 лет. Учитывая, что в России до сих пор есть терминалы на базе Windows XP, риски реальнее, чем кажутся.
‣ Похожая проблема назрела в конце 1990-ых, когда дни компьютеры рассчитывали дату в шестизначном виде (ЧЧ.ММ.ГГ), а другие в более ёмкой, восьмизначной (ЧЧ.ММ.ГГГГ).
По этой причине 1 января 2000 года некоторые системы могли начали отсчёт с 1900-ых, что вызвало много проблем в банках, больницах и инфраструктуре.
О том, как мир потратил сумасшедшие суммы на подготовку к этому дню, я пять лет назад рассказывал в статье о десяти самых крупных (на тот момент) ошибках программистов.

26 комментариев
Форум →