Что определяет адресное пространство процессора?

Мое замешательство основано на этих трех мыслях:

  1. Это 2 ^ (число всех контактных адресов, доступных на процессоре)?

  2. Это 2 ^ (размер одного конкретного регистра)?

  3. Это аппаратная схема, которая понимает все адреса в диапазоне адресов? Тогда что это?

Я не спрашиваю здесь о виртуальном адресном пространстве, я не знаю, как оно называется, может быть, это физическое адресное пространство всех физических устройств, включая оперативную память. Кроме того, даже если я получу правильный ответ, я хотел бы спросить, почему мой процессор имеет 2 ^ 39 бит (512 ГБ) адресного пространства памяти и 64 КБ + 3 пространства памяти ввода-вывода. Эта информация написана в документации Intel для моей системы в упаковке (intel core i3-4005U со встроенным PCH lynx point-m).

Вы можете отредактировать мой вопрос, если я задаю его неправильно. Спасибо.


person bipul kalita    schedule 05.11.2020    source источник


Ответы (1)


Размер физического адресного пространства ЦП является произвольным выбором разработчиков. Ширина тегов кеша и записей TLB должна быть достаточно широкой, потому что кеши физически помечены (включая L1d в большинстве процессоров, включая все Intel) и другие внутренние вещи, связанные с физическими адресами. (Как буфер хранилища, для сопоставления адресов загрузки с незавершенными хранилищами. А также для сопоставления хранилищ с адресами кода в полете.)

Все процессоры клиентов Haswell используют одну и ту же микроархитектуру ядра, поэтому, даже если чипу для ноутбука не нужно так много, некоторые настольные компьютеры с одним сокетом, отличным от Xeon, могут. (Я думаю, что это правда; экономия небольшого количества места и / или энергии за счет изменения ширины тега кэша на 1 или 2 бита может быть правдоподобной, но IDK, если Intel сделает это; я думаю, что они действительно хотят проверить дизайн только один раз.)

Помните, что память устройства (включая карту PCIe, такую ​​как VGA или вычислительная карта Xeon Phi) обычно сопоставляется с физическим адресным пространством, чтобы ЦП мог получить к ней доступ с загрузкой/сохранением. (после указания виртуальных страниц на эти области физического адресного пространства). PCIe использует ссылки фиксированной ширины и отправляет адреса как часть пакетов сообщений; дополнительные контакты не требуются для большего количества адресов.

Контроллеры DDR3 DRAM имеют несколько адресных линий на каждом канале для отправки адресов строк/столбцов; можно оставить один контакт неиспользованным. Он очень похож на другие версии DDR; В Википедии есть схема некоторых сигналов в статье DDR4: https://en.wikipedia.org/wiki/DDR4_SDRAM#Command_encoding

person Peter Cordes    schedule 05.11.2020
comment
Спасибо за ваши усилия. Вы сказали, что размер физического адресного пространства для ЦП - это произвольный выбор, сделанный разработчиками, скажем, они решили сделать его 39-битным. Тогда какая аппаратная схема будет изменена для этого. Я все еще в замешательстве. - person bipul kalita; 05.11.2020
comment
@bipulkalita: Как я уже сказал, кешировать теги в кэшах L1d/L1i, L2 и L3, iTLB и dTLB и TLB 2-го уровня, а также хранить записи буфера и их компараторы, обнаружение самомодифицирующегося кода и, возможно, некоторые фактические I/ О, связанный с этим материал в системном агенте, прыгающем по кольцевой шине. realworldtech.com/haswell-cpu не имеет большого значения из ширины физического адреса , но взгляните на блок-схему и помните обо всем, что связано с физическими адресами. - person Peter Cordes; 05.11.2020
comment
это действительно удовлетворительный ответ, но мне нужен полный список других вещей. - person bipul kalita; 05.11.2020
comment
@bipulkalita: обновил мой предыдущий комментарий. Зачем вам нужен этот полный список? что ты собираешься с этим делать? Конечно, это не повлияет на программу, которую вы напишете, и если бы вы проектировали свой собственный процессор, вы бы заметили, где у вас есть физический адрес. - person Peter Cordes; 05.11.2020
comment
извините, я отредактировал свой вопрос, поэтому он отображается ниже. Мне нужно научиться этим вещам, мне нужна точная и конкретная информация. Мне действительно трудно заглянуть в книгу и поискать в Интернете и ничего не найти для себя. Я хочу разбить все абстрактные слои информации высокого уровня, чтобы я мог видеть, что происходит внизу. - person bipul kalita; 05.11.2020
comment
@bipulkalita: я не думаю, что необходимо отслеживать каждое использование физических адресов внутри процессора Haswell. Основные факторы (и некоторые другие второстепенные, которые пришли мне в голову) — это те, которые я перечислил в своем первом комментарии, особенно ширина тега кеша. Ключевым моментом является то, что он не привязан к ширине регистра или внешним контактам ЦП, или даже к тому, сколько DRAM он может поддерживать. - person Peter Cordes; 05.11.2020
comment
Лучшая книга, которую вы можете предложить мне, чтобы изучить все эти низкоуровневые вещи? Меня удивляет, что даже в книге Уильяма Столлингса не написано о том, как определяется физический адрес. Я выпускница cs. Но я думаю, что я не многого добился в своей степени. Вот почему я провалился на некоторых конкурсных экзаменах. - person bipul kalita; 05.11.2020
comment
Это не совсем произвольный выбор, он определяется требованиями целевых сегментов рынка. Другое важное влияние, которое оказывает ширина физического адреса, — это количество проводов, по которым биты физического адреса передаются по всему чипу. Мультиплексирование адресов можно использовать, если это не влияет на производительность или если производительность считается менее важной, чем стоимость. Количество адресных контактов на корпусе определяется максимальным объемом поддерживаемой физической памяти, что является другим ограничением и выбором дизайна. (Унаследованное пространство ввода-вывода не имеет ничего общего с этими ограничениями.) - person Hadi Brais; 09.11.2020
comment
Количество адресных контактов на корпусе определяется максимальным объемом физической памяти, поддерживаемой на канал, и количеством каналов. - person Hadi Brais; 09.11.2020
comment
@HadiBrais: Конечно, это не произвольно в этом смысле, но это не подразумевается напрямую ни одним из факторов, предложенных в вопросе. Создание хорошего/успешного продукта — это вопрос правильного выбора из множества произвольных вариантов. например ширина конвейера, размеры кэша, дизайн ALU, ширина регистра, обработка угловых случаев, относящихся к обратной совместимости... - person Peter Cordes; 09.11.2020