Размер шины адреса или шины данных определяет «8-битные, 16-битные, 32-битные, 64-битные» системы?

15

Мое простое понимание заключается в следующем.

Память (RAM) состоит из битов, групп по 8, которые образуют байты, каждый из которых может быть адресован, и, следовательно, байтово адресуемой памяти.

Адресная шина хранит расположение байта памяти.

Если адресная шина имеет размер 32 бита, это означает, что она может содержать до 2 32 цифр и, следовательно, может ссылаться на 2 32 байта памяти = 4 ГБ памяти и любая память больше этой бесполезной.

Шина данных используется для отправки значения для записи в / считывания из памяти. Если у меня есть шина данных размером 32 бита, это означает, что максимум 4 байта могут быть записаны в / считаны из памяти за один раз. Я не вижу связи между этим размером и максимально возможным объемом памяти.

Но я прочитал здесь, что:

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

Это говорит о том, что размер шины данных дает ОС имя 8 бит, 16 бит и так далее. Что не так с моим пониманием?

ученик
источник
« Что не так с моим пониманием? » - вы пытаетесь сделать одно определение подходящим для разных вещей. Дескриптор размера в битах использовался в разное время для разных вещей.
опилки
1
Это означает то, что говорит производитель. Как правило, это будет что-то похожее на размер регистра, но есть много способов его подделать.
Даниэль Р Хикс

Ответы:

12

Как правило, размер шины данных определяется размером регистров процессора. Зачастую размер регистров процессора определяет тип ОС (64 против 32). Размеры физической шины технически могут отличаться от этого (например, 8088), но это настолько редко, что автор вашей цитаты, вероятно, связывает их вместе.

Как правило, размер указателя также соответствует размеру регистра, но ширина шины физического адреса может быть больше (как у 1686-битного 8086 при 20) или меньше (как у 64-битного AMD на 48)

Dougvj
источник
2
« Ширина шины физического адреса может быть больше » - особенно с 4-битными и 8-битными процессорами!
опилки
Ладно. Но я пытаюсь понять это тривиально. Я не мог найти связь между размером шины данных и максимально возможной памятью, как я мог бы объяснить размером шины адреса. Таким образом, ответом будет «НЕ РАЗМЕР ШИНЫ АДРЕСА, а РАЗМЕР ШИНЫ ДАННЫХ» (потому что он обычно такой большой, как регистр процессора). Я что-то пропустил?
ученик
@learner Правильно, путаница также заключается в том, что максимальный размер указателя системы равен размеру регистров процессора. В плоском адресном пространстве, как и в большинстве современных систем, это равносильно ограничению размерами регистров процессора, отсюда и ограничения адресации, как вы указали. Некоторые процессоры, особенно старые, использовали такие приемы, как специальная сегментированная адресация, чтобы обойти это.
Dougvj
@Dougvj, ладно, проясняется. Но почему они сделали размеры адресной шины отличными от размеров регистров процессора? Не будет ли больше смысла держать их такими же? И я не понимаю, где хранятся адреса? (адресная шина или регистр процессора?) Спасибо
ученик
1
@learner Это правильно. Подведем итог: обозначение ОС точно соответствует размеру регистров процессора. Адресная шина может иметь или не иметь тот же размер, что и регистр процессора, поэтому максимально возможная адресуемая ОЗУ не зависит от этого. Внутренний процессор, однако, почти всегда имеет некоторую схему адресации, включающую указатели того же размера, что и регистры процессора.
Дугвй
1

Это размер регистра и обработка памяти внутри процессора.

Используя хитрости, один 16-битный процессор имел 20-битную адресную шину, поэтому он не является внешней памятью процессора.

Fiasco Labs
источник
1

Там нет «чистой» 32- или 64-битной системы, и поэтому термины в любом случае являются лишь приблизительными.

Например , принять ваше заявление «Память (RAM) состоит из битов, группы 8 , которые образуют байт, каждый из которых могут быть решены» . Это не очень часто. ПК имеют ОЗУ на модулях DIMM, а их ширина составляет 64 бита. Еще в 90-х у вас были SIMM, и они были шириной 32 бита.

В некоторых системах модули DIMM должны или могут быть сопряжены («объединенные» / «двухканальные»), что составляет 128-битную шину данных. Эта концепция предшествует так называемым «64-битным» процессорам AMD и Intel.

Эти группы из 64 битов из одного DIMM действительно могут быть разделены на 8 байтов. Это довольно прозрачно для вашего процессора. Он также может разбивать 64 бита на 4 * 16 бит, 2 * 32 бита или просто использовать все 64 бита как одну переменную.

Однако самый важный вопрос - это ширина адреса. Каждый байт в памяти имеет свой собственный адрес, но не каждый бит. Это означает, что 64 бита, которые вы получаете от одного DIMM, имеют 8 адресов. Самый низкий из них всегда кратен 8. Теперь, сколько разных адресов поддерживает ЦП? Есть два общих ответа, по крайней мере, в теории. Некоторые процессоры поддерживают 2 32 разных адреса, некоторые поддерживают 2 64 . Это различие является наиболее распространенным различием между 32- и 64-битными системами.

На практике 64-разрядные системы сегодня поддерживают менее 2 64 байт оперативной памяти. Это было бы недоступно и в любом случае не подходило бы для обычного ПК. Эта память будет весить несколько миллионов тонн!

MSalters
источник
Это регистр процессора, где хранится адрес, или это адресная шина? Вы говорите: «Некоторые процессоры поддерживают 2 ^ 32 разных адресов ...». Чем они конкретно ограничены?
ученик
Как правило, размеры регистров и MMU (блок управления памятью, часть ЦП, которая непосредственно отвечает за память).
MSalters
0

Оба на самом деле.

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

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

А также имеет смысл иметь 32-битную адресную шину по двум причинам. Большая адресная шина затруднит косвенную адресацию, потому что у вас не будет достаточно большего регистра для хранения адреса памяти, или ЦП потребуется специализированный регистр для адресации памяти, обратите внимание, что старые процессоры, такие как Intel 8080, были 8-разрядными и имели 16 битная адресная шина. Напротив, адресная шина, меньшая, чем регистр, является просто пустой тратой ресурсов. Есть микроконтроллеры, которые используют меньшую адресную шину.

h0m3
источник