15

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

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

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

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

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

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

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

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

4 ответа4

12

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

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

1

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

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

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 байт оперативной памяти. Это было бы недоступно и в любом случае не подходило бы для обычного ПК. Эта память будет весить несколько миллионов тонн!

0

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

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

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

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

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