>> В DEC все регистры и устройства отображались на ячейки памяти.
> Я в курсе как это, спасибо. Можешь не трудиться цитировать вику, я
> и без вики могу рассказать общую идею работы таких шин. А
> вот с размером int ты лоханулся. Дело в том что данные
> (в том числе и значения переменных) в подобных системах передаются по
> шине данных. Разрядность шины адреса волнует только адресную арифметику. А это
> в терминах сей уже скорее к размеру указателей вопросы будут.Нет. В языках программирования со статической типизацией (Algol, ADA, Pascal, C) размер типа данных int напрямую зависит от ширины шины адреса для адресации ячейки памяти (в которой по прежнему можно хранить только 1 байт). Так, на 8 битных компьютерах тип данных Integer (int) имел размерность 8 бит, на 16 битных — 16 бит, на 32 битных — 32 бит, на 64...
Wiki со мной согласна:
///---
Количество чисел в машинном изображении множества целых чисел зависит от длины машинного слова, обычно выражаемой в битах. Например, при длине машинного слова 1 байт (8 бит) диапазон представимых целых чисел со знаком от -128 до 127. В беззнаковом формате байтовое представление числа будет от 0 до 255 (2^8 - 1). Если используется 32-разрядное машинное слово, то целое со знаком будет представлять значения от −2 147 483 648 (-2^31) до 2 147 483 647 (2^31−1); всего 1 0000 000016 (4 294 967 29610) возможных значений.
Ограничение длины машинного слова, обусловленное конкретной электронной реализацией того или иного компьютера, не препятствие для обработки ими весьма длинных в битах представлений целых чисел, достигаемое усложнением программных алгоритмов. Естественное ограничение - конечность ёмкости памяти и разумное время на исполнение.
Целые числа и вычисления с целыми числами в современных компьютерах имеют очень важное значение (в подавляющем количестве приложений занимают больше ресурсов процессора, чем, арифметика с плавающей точкой). Вся адресная арифметика и операции с индексами массивов основаны на целочисленных операциях.
---///
Впрочем, сейчас это выродилось в представление типа целых независимо от разрядности процессора. Так, Java, например, примитивный тип данных int независимо от разрядности процессора представляет числа из диапазона от -2^31 до 2^31-1, то есть использует 32-разрядное представление чисел и, соответственно, необходимо 4 ячейки памяти для хранения целого числа. Во многом это обусловлено тем, что современные процессоры оперируют адресацией не на уровне машинного слова, а работают с памятью на уровне серий последовательно адресуемых ячеек, помещаемых в кэш процессора за одну команду. В распределённой NUMA-архитектуре в этом случае возникают накладные расходы на обращение к отдельной ячейке памяти без учёта подлежащей кэшированию всей серии ячеек, в которой она находится.