Введение

как 31/32 бит применяется к сети и 31 бит маскам подсети В компьютерной архитектуре, 31 бит целых чисел, адреса памяти или другие единицы данных являются теми, которые имеют 31 бит шириной. В 1983 году IBM представила 31 битный адрес в архитектуре мейнфрейма System/370 XA в качестве обновления до 24 битного физического и виртуального, а также переходного 24 битного виртуального/26 битного физического адреса в System/370. Это улучшение позволило расширить адресные пространства в 128 раз, что позволило программам адресовать память более 16 МБ (называемую "выше строки").

31-битный компьютер

Librascope LGP 30 был первым компьютером, вышедшим из продажи. LGP 30 был впервые изготовлен в 1956 году по розничной цене 47 000 долларов, 47000.0 в 1956 году эквивалентно приблизительно <расчетной сумме> в последние годы. Это был двоичный, 31-битный словарный компьютер с 4096 слов в барабанной памяти. Было 32 битных местоположений на барабанное слово, но использовались только 31, что позволяло "восстановить магнитный поток в голове" в 32-битный момент. Количество вакуумных труб было сведено к минимуму за счет использования логики твердотельного диода, бит-серийной архитектуры и многократного использования каждого из 15 флип-флопов. LGP 30 обычно называли настольным компьютером. Его высота, ширина и глубина, не считая полки для пишущей машинки, составляли 33 на 44 на 26 дюймов (84 на 112 на 66 см). Он весил около 360 кг и был установлен на прочных роликах, которые облегчали перемещение устройства.

IBM мейнфрейм с 31-битным адресованием

В System/360, кроме 360/67, и ранних архитектур System/370, регистры общего назначения были 32 бита в ширину, машина выполняла 32 бит арифметические операции, и адреса всегда хранились в 32 битных словах, поэтому архитектура считалась 32-битной, но машины игнорировали верхние 8 бит адреса, в результате чего получались 24-битные адреса. В архитектуре System/370 XA и IBM Enterprise Systems Architecture, в дополнение к 24-битному режиму адресации для совместимости со старыми приложениями, существует 31-битный режим адресации, в котором для адресации игнорируется только бит высшего порядка (бит 0) в слове. Исключением является то, что инструкции по переключению режимов также используют бит 0. Существовали по крайней мере две причины, по которым IBM не внедрила 32-битный адресирование 360/67 Инструкции управления циклами BXH и BXLE сделали подписаны сравнения. Большая часть существующего программного обеспечения использовала бит 0 в качестве индикатора окончания списка. 64-битная z/архитектура также поддерживает 24-битный и 31-битный режимы адресации для совместимости с более старыми приложениями.

Руби и Смоллток

Интерпретаторы для языков Ruby и Smalltalk используют самый низкий бит, чтобы определить, является ли значение неразборным целым числом или нет. Это означает, что на 32-битовых машинах (или 16-битовых машинах с 32-битовыми указателями) 31 битовые целые числа не вставляются в коробку. В случае переполнения, результат помещается в коробку, что означает, что он должен быть выделен и мусор собран. Таким образом, если у вас есть 32-битные значения, которые не вписываются в 31-битный формат, они будут очень неэффективными в этих интерпретаторах. То же самое с 63-битными неразборчивыми целыми числами на 64-битных компьютерах. Подобные конструкции можно найти в LISP и некоторых других языках, переменные которых могут принимать значения любого типа. В некоторых случаях была аппаратная поддержка для такого рода дизайна: см. Tagged architecture и Lisp machine.