С 32-битной на 64-битную, пропуская 48-битную?

С 32-битной на 64-битную, пропуская 48-битную?

Архитектура компьютера обновлена ​​с 16-битной до 32-битной и до 64-битной. Какова логика пропуска 48-битной? Какая причина была использована для обновления до 64-битной, а не какой-то другой экспоненты?

В следующей таблице показано: 2^32 в 65536 раз больше, чем 2^16. Поэтому логично использовать 2^48, которое также в 65536 раз больше, чем 2^32. Использование 2^64 кажется огромным скачком по сравнению с этим. (Спустя 10 лет после появления amd64 настольные компьютеры продаются с двузначным числом ГБ ОЗУ, а серверы используют трехзначное число ГБ ОЗУ.)

    2^16                        65.536
    2^32                 4.294.967.296  2^16 X 65536
    2^48           281.474.976.710.656  2^32 X 65536
    2^64    18.446.744.073.709.600.000  2^32 X 4294967296

ИЗМЕНИТЬ НИЖЕ

Я использовалонлайн-конвертер десятичных чисел в двоичныеи я получаю эти результаты. По-видимому, 2^48 максимально ограничено 48 двоичными единицами.

    1111111111111111                      65535  2^16 - 1 (16 ones)
    10000000000000000                     65536  2^16

    11111111111111111111111111111111                    4294967295  2^32 - 1 (32 ones)
    100000000000000000000000000000000                   4294967296  2^32

    111111111111111111111111111111111111111111111111            281474976710655 2^48 - 1 (48 ones)
    1000000000000000000000000000000000000000000000000           281474976710656 2^48

    1111111111111111111111111111111111111111111111111111111111111111    18446744073709551615    2^64 - 1 (64 ones)
    10000000000000000000000000000000000000000000000000000000000000000   18446744073709551616    2^64

решение1

64-битная версия — это следующий логический шаг.

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

Например: 32-битная система может легко обрабатывать 64-битное число, сохраняя его в 2 32-битных переменных/регистрах.
Работа с 48-битным числом неудобна: вам нужно будет либо использовать 32-битную и 16-битную переменную вместе, либо использовать только часть 32-битной переменной, либо использовать 3 16-битных переменных. Ни одно из этих решений для 48-битной не является оптимальным.

В общем: любая система, работающая в X битах, может легко обрабатывать размеры (N * X) и (X / N), где N — степень числа 2. Таким образом, логика такова: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 и т. д.
Любой другой размер требует более сложной обработки в аппаратном и/или программном обеспечении и поэтому не является оптимальным.

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

(Все это относится к собственному размеру бит для регистров ЦП. Когда вы берете «количество адресных линий», которые адресуют чипы ОЗУ, вы действительно можете увидеть меньшее число, чем то, что естественно для архитектуры.
Внутренне эти ЦП используют больше бит, но не все биты подключены к реальным адресным линиям.
Например: 20 линий на ЦП 8088 и 8086, 20 линий на 80286 и 36 линий на Pentium II)

решение2

По сути, произошло байтовое адресование. До этого не было никаких веских причин, чтобы процессоры имели длину слова, равную степени двойки (хотя обычно были физические причины для кратности 2 или 4, поскольку схемы выпускались в таких кратностях).

До байтовой адресации слово памяти имело ту же ширину, что и слово процессора, и память (в основном) адресулась словами. Но с байтовой адресацией было преимущество иметь длину "слова" как степень двойки размера байта, так что границы "слов" попадали в хорошую двоичную прогрессию (удобную как для людей, так и для компьютерного оборудования).

(Что касается того, почему байтовая адресация стала «модной», я сейчас не могу предложить никаких убедительных аргументов.)

Вероятно, если бы стандартный символ был 10 бит вместо 8, у нас были бы процессоры с разрядностью 20, 40, 80 бит, а не 16, 32, 64.

Связанный контент