Ширина в битах шины физического адреса может быть больше или меньше, чем ширина в конкретном адресе памяти, так как есть все виды аппаратных взломов, которые вы можете создать в системе, чтобы разрешить странные режимы адресации. Например, в некоторых 32-битных системах адресная шина имеет ширину 52 бита. В качестве другого примера, некоторые инструкции ЦП могут декодировать более длинный адрес, используя комбинацию базового адреса и таблицы поиска.
В конце концов, задача аппаратного обеспечения - интерпретировать адрес памяти от процессора. Процессор просто вычисляет необходимый ему адрес памяти и отправляет его на контроллер памяти материнской платы (помните, мы говорим здесь об аппаратном, а не о программном обеспечении, см. Мое последнее примечание внизу). Задача контроллера памяти состоит в том, чтобы интерпретировать этот адрес и поместить соответствующие данные в шину памяти.
Поскольку все это обрабатывается на аппаратном уровне, вы можете фактически увеличить физическое адресное пространство некоторых младших систем памяти, используя расширение физических адресов. Опять же, то, как обрабатываются эти расширенные адреса, является частью того, как была реализована система / оборудование.
Наконец, чтобы дать еще больше преимуществ аппаратным хакам, о которых я упоминал выше, одним хорошим примером является ввод-вывод с отображением в памяти (для краткости MMIO). Это позволяет ЦП получать доступ как к периферии, так и к ОЗУ через саму адресную шину. Обычно это делается через адреса памяти более высокого порядка, чтобы избежать конфликтов адресов более низкого порядка. Однако это привело к появлению общеизвестного барьера памяти объемом 3 ГБ во всех пользовательских вариантах 32-разрядных операционных систем Windows. Опять же, это просто, чтобы показать вам, что возможно на аппаратном уровне.
С точки зрения программиста высокого уровня, это не имеет ничего общего с переменными-указателями. Они всегда имеют одинаковый размер данных, поскольку эти расширения адресов обрабатываются для вас операционной системой и / или самим оборудованием. Размеры, адреса и смещения указателей устанавливаются / вычисляются компилятором.