5

Архитектура компьютера обновлена с 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 двоичными 1 с.

    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

2 ответа2

9

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)

1

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

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

(Относительно того, почему адресация байтов стала "неотъемлемой частью", я не могу сейчас предложить никаких веских аргументов.)

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .