Что такое машинное слово (word size) в архитектуре процессора?

«Что такое машинное слово (word size) в архитектуре процессора?» — вопрос из категории Swift Core, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Машинное слово — это фиксированное количество бит (обычно 16, 32, 64), которое процессор обрабатывает как единое целое за одну операцию. Оно определяет разрядность (битность) архитектуры CPU и является фундаментальным параметром, влияющим на:

  • Размер указателя (адреса в памяти).
  • Размер и диапазон значений стандартных целочисленных типов (например, Int, UInt).
  • Максимальный объем адресуемой оперативной памяти.
  • Пропускную способность шины данных.

Пример для 64-битной (ARM64) системы, используемой в современных iOS-устройствах:

// Размеры типов в байтах на 64-битной платформе:
print(MemoryLayout<Int>.size)      // 8
print(MemoryLayout<Int32>.size)    // 4
print(MemoryLayout<UnsafeRawPointer>.size) // 8 (размер указателя)

Ключевые следствия:

  1. 64-битная архитектура (например, ARMv8-A) позволяет адресовать эксабайты памяти, что снимает прежние ограничения 32-битных систем (~4 ГБ).
  2. Производительность: Обработка большего объема данных за такт может ускорить вычисления.
  3. Потребление памяти: Типы, выровненные по размеру слова (например, Int), могут занимать больше памяти, чем это необходимо для хранения данных.

В Swift тип Int является машинно-зависимым и автоматически соответствует размеру машинного слова текущей платформы.