Ответ на самом деле «исторические причины».
Память компьютера должна быть адресуемая на некотором уровне. Когда вы запрашиваете информацию о своей ОЗУ, вам нужно указать, какую информацию вы хотите - и она вернет это вам. Теоретически можно создать бит-адресуемую память: вы просите один бит, вы получите один бит назад.
Но это не очень эффективно, так как интерфейс, соединяющий процессор с памятью, должен иметь возможность передавать достаточно информации, чтобы указать, какой адрес он хочет. Чем меньше гранулярность доступа, тем больше проводов вам нужно (или, тем более, толкает по тому же количеству проводов), прежде чем вы получите достаточно точный адрес для извлечения. Кроме того, возврат одного бита несколько раз менее эффективен, чем возврат нескольких бит один раз (сторона примечание: true в целом. Это дискуссия по последовательному и параллельному вариантам, а из-за ограниченной сложности системы и физики последовательные интерфейсы обычно работают быстрее. Но в целом, больше бит одновременно эффективнее).
Во-вторых, общий объем памяти в системе ограничен частично размером наименьшего адресуемого блока, так как, если вы не использовали переменно размера адреса памяти, у вас есть только конечное число адресов для работы с - но каждый адрес представляет собой несколько бит, которые вы можете выбрать. Таким образом, система с логически байт-адресуемой памятью может содержать в восемь раз оперативную память одного с логически бит-адресной памятью.
Итак, мы используем логически адресуемую память на менее точных уровнях (хотя физически чип RAM не возвращает только один байт). Для этого действительно существуют только две силы, и исторически уровень доступа был байтом. Так же легко можно было бы получить грызть или двухбайтовое слово, а на самом деле старые системы имели меньшие куски, чем восемь бит.
Сейчас, конечно, современные процессоры в основном едят память с шагом кэш-линии размера, но наши средства выражения группировки и деля теперь виртуальное адресное пространство остается, а наименьшее количество памяти, инструкция CPU может получить доступ напрямую по-прежнему восьмибитовый кусок.Машинный код для инструкций ЦП (и/или путей, идущих в процессор) должен был бы расти так же, как количество проводов, соединяющихся с контроллером памяти, для адресации адресов - это та же проблема, что и при использовании доступность системной памяти, о которой я говорил раньше.
Это было не всегда 8 бит - см. Http://en.wikipedia.org/wiki/Word_(data_type)#Word_size_choice для таблицы различных архитектур и выбора их размера слова –
О, да, однажды я услышал, что более старый код использовал 6 бит, и после этого люди начали использовать первые 2 бита, чтобы представить, был ли это продолжение или что-то еще, и все еще использовали другие 6 бит для данных ... – Gabe