Если процессор имеет 16-битную адресную шину и 8-битные слова, сколько памяти он может адресовать?


23

Я готовлюсь к концу семестра и меня смущает следующий вопрос. Если у ЦП есть 16-битная адресная шина и 8-битные слова, сколько памяти в КБ он может адресовать? Мое понимание скажет мне, что он может адресовать 64 КБ, однако для этого я просто использовал 2 ^ 16 = 65 536. Это вычисление никогда не принимало во внимание 8-битные слова, поэтому я не уверен, что это правильно. И что означает 8-битные слова?

ура


16
Вы использовали это косвенно: общий объем адресуемой памяти составляет 2 ^ 16 * 8 бит. Поскольку один байт = 8 бит, это 2 ^ 16 байтов, то есть 65536 байтов, или 64 КиБ. Обратите внимание, что K - это префикс SI для 1000. Если вы имеете в виду 1024, используйте Ki.
Jcaron

2
Следует учитывать разницу между килобайтами префикса SI (1000 байтов) и кибибайтами двоичного префикса (1024 байта). 2 ^ 16 = 65 536 = 64 киби ~ 65,5 кг. Требуемый ответ, вероятно, один, где килограмм означает киби, но бывают случаи, когда разница действительно имеет значение. Если вы хотите быть полностью уверенным, выберите безопасный маршрут и укажите количество байтов и предложите перевод для более удобных единиц, таких как килобайты или кибибайты, для вашего учителя. Сравните Википедию: двоичный префикс . Чипы памяти обычно указывают, например, 65 536x8 бит.
CVn


3
Я полагаю, вы предполагаете, что обмен банка не происходит. Большинство 16-битных процессоров используют некоторую форму обмена банками, что затрудняет ответ.
Джошуа

1
@ MichaelKjörling В вопросе говорится KB, что всегда означало 1024 байта.
Касперд

Ответы:


38

Одним словом, в большинстве архитектур это самый большой фрагмент данных, который может быть передан в рабочую память и из нее за одну операцию.

Максимально возможный размер адреса, используемый для обозначения места в памяти, обычно называется аппаратным словом.

Таким образом, ваш процессор сможет адресовать 64 КБ (2 ^ 16), но сможет передавать только за одну операцию 8 бит.


3
Я уверен, что этот ответ - тот, за которым учитель, но действительно ли он правильный? Не могли бы вы использовать что-то вроде PAE, чтобы разрешить трехуровневую иерархию (или даже больше), чтобы процессоры имели доступ к более чем 64 КБ? Я не специалист по аппаратному обеспечению, но разве Commodore 128 даже не смог сделать что-то подобное на 8-битной 16-битной шине, разрешив переключение банков ОЗУ?
Давидго

5
Не совсем уверен, что я понимаю ваше предложение "сможет передать только за одну операцию 256B (2 ^ 8)"? Он может передавать только 1 слово = 1 байт = 8 бит за одну операцию.
Jcaron

8
@davidgo все еще PAE требует, чтобы адресная шина имела соответствующий размер. Процессоры Intel, поддерживающие PAE, имеют адресную шину 36 бит.
Дмитрий Григорьев

6
PAE - это более или менее торговая марка / название, характерное для современных процессоров x86. Да, схемы для косвенного обращения к большим объемам памяти были реализованы целую вечность (например, XMS), в конце концов они рассматривают подсистему памяти как периферийное устройство, которое можно постоянно реконфигурировать, чтобы выставить другую память в меньшем адресном пространстве. Также посмотрите модель сегментированной памяти старой школы x86 ...
rackandboneman

6
@ Не забывай, ты должен немного уточнить свой ответ. Никто на самом деле не использует один B как единицу, и причина именно в том, что здесь произошло - вы путаете биты и байты. ОП гласит: «8-битные слова * - поэтому каждое слово имеет 8 бит (1 байт) и может передавать его только за одну операцию. 256 - это просто число возможных значений, которые имеет каждое слово, а не количество передаваемых данных».
adelphus

21

Машинное слово или обычно просто слово - это самая большая единица данных, которой ЦПУ может манипулировать в целом, используя общие инструкции. Это не имеет ничего общего с адресацией памяти.

Важно единица разрешения адресов , который обычно 8-битный байт даже на 16/32/64 битных архитектурах. Он не должен быть равен размеру машинного слова, но, вероятно, это в вашем случае.

8-разрядный адресуемый модуль в сочетании с 16-разрядной адресной шиной составляет 64 КБ ОЗУ, к которому может обращаться ЦП.


3
Но я использовал машины, где единица разрешения адреса была 16 бит. (Так что концепция имеет смысл.)
Мартин Боннер поддерживает Монику

4
@MartinBonner Тем не менее, он не имеет прямого отношения к размеру слова процессора.
glglgl

1
@glglgl - это очень связано. Я не верю , что есть какие - архитектуры , которые не имеют адрес единицы либо 8 бит или их размер слова.
Жюль

1
Я не согласен с утверждением, что слово - это самая большая единица, которой ЦП может манипулировать в целом. Intel i7 имеет 64-битную шину данных и все еще может использовать 256-битные инструкции SIMD. Если Википедия верна, то слово относится к ширине шины данных, а не к внутренним ресурсам ЦП.
Томас Веллер

1
@ThomasWeller: 8088 имеет 8-битную шину данных, но все еще 16-битные инструкции. На самом деле это 8086 с меньшей шиной данных. Примечание: ширина базы данных и фактическая передача также различаются (представьте, что данные выровнены).
Джакомо

1

И что означает 8-битные слова?

В контексте размер слова соответствует размеру адреса для описания шины памяти. В память уходит 16 бит, поэтому она может выбирать 64 места. Затем каждое местоположение содержит 8 битов.

Размер слова здесь может соответствовать или не соответствовать размеру блока вычислений ЦП, и это может соответствовать или не соответствовать логической детализации при адресации.

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

Обратите внимание, что переключение банков, PAE и т. Д., Упомянутые другими, здесь не имеют значения. Блок управления памятью может использовать 16-разрядные адреса и иметь 20-разрядный аппаратный адрес, поэтому ЦПУ необходимо переключать и отображать объекты, чтобы использовать фактический 20-разрядный диапазон адресов микросхем ОЗУ, которые можно адресовать.

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


0

Вы также должны использовать размер слова в расчетах. Ответ 64 КБ.

Вы можете адресовать 2 ^ 16 слов, и каждое слово является 8-битным (= 1 байт). Поэтому это 64 КБ.

Если размер слова был 16 бит. Ответ будет 128 КБ.


1
Ваше вычисление не выполняется для обычных 32-разрядных процессоров, которые по-прежнему могут адресовать 2 ^ 32 байта памяти (4 ГБ), а не (2 ^ 32) * 4 (16 ГБ).
Дмитрий Григорьев

Современные процессоры обращаются к большим «строкам» и имеют меньше адресных строк для сопоставления. Вопрос об адресной шине говорит о физической стороне вещей. Таким образом, умножение на размер слова этой шины (не на размер регистра ЦП) является правильным.
JDługosz

0

У этого есть две стороны: что ваш инструктор, вероятно, хочет, чтобы вы ему рассказали, и какова реальность.

Сначала то, что ваш инструктор, вероятно, хочет, чтобы вы сказали ему.

«16 бит могут адресовать 2 ^ 16 ячеек памяти, каждая ячейка имеет 8 бит. Таким образом, мы можем адресовать 524288 бит (65536 октетов) памяти».

Это, однако, отражает довольно упрощенное мировоззрение. В реальности все сложнее, и для окончательного ответа требуется больше информации. Некоторые из способов, которыми реальные системы могут быть более сложными, чем это, включают.

  • Многие процессоры не имеют выделенной карты ввода-вывода, поэтому части адресного пространства памяти, возможно, придется использовать для других целей, кроме памяти.
  • «Размер слова» процессора не всегда совпадает с шириной шины данных памяти или наименьшей адресуемой единицей памяти.
  • Некоторые шины позволяют перемещать блоки данных различного размера. Это требует дополнительной адресации, которая может обрабатываться или не обрабатываться битами главной адресной шины.
  • Некоторые шины мультиплексируют разные сигналы на одних и тех же линиях. Например, SDRAM дважды использует одни и те же строки адреса для отправки «адреса строки» и «адреса столбца».
  • Многие системы использовали подходы банковской коммутации, чтобы позволить программам получать доступ к большему объему памяти, чем процессор мог изначально адресовать.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.