Нужно немного больше разъяснений по адресным строкам процессора - PullRequest
3 голосов
/ 11 июля 2010

Вчера, когда я размышлял над Почему ОС не может использовать целые 64-битные адресации? Я обнаружил еще одну интересную вещь. Например, процессор Intel Core 2 Duo.

Из "Справочника 4.2 по алфавитным сигналам" Процессоры Intel Core 2 Duo серии E8000 и E7000 - таблица данных Я узнал, что он имеет 36 строк адреса и 64 строки данных. В листе данных адресные строки обозначаются как A [35: 3], а строки данных - как D [63: 0].

Что именно это означает? Это мое понимание (с несколькими оставшимися без ответа вопросами) сверху:

  1. Так как есть 36 адресных строк. Общая адресуемая память составляет 2 ^ 36 = 64 ГБ, а каждая ячейка физической памяти (байт) адресуется 36-битным числом.
  2. Поскольку A [2: 0] не упоминается. Это означает, что MMU (если быть точнее, пейджинговым блоком) после преобразования виртуального адреса в физический адрес (с помощью таблиц адресов) помещает только 33 старших разряда в адресные строки A [35: 3]. RAM отправляет все 8 возможных байтов (с 3 LSB, A [2: 0]), т.е. для любого запроса в этом диапазоне 8 байтов. ОЗУ отправляет те же 8-байтовые данные. право? Я полагаю, это сделано в целях эффективности.
  3. Что будет дальше? Я имею в виду, что для MMU требовались данные в 1 байт, а в ОЗУ отправлено 8 байт. Как это с этим справится?
  4. Является ли ширина этой адресной шины 36-битной после включения Intel PAE?
  5. Я не могу найти адресную шину и ширину шины данных в новых таблицах процессоров (Intel® Core ™ i7 Processor Extreme Edition ). :( Помоги мне!

Ответы [ 2 ]

2 голосов
/ 12 июля 2010

Выводы в байтовом разрешении (BE) микросхемы определяют, какие из битов в 8-байтовом блоке действительно актуальны.

Чтобы получить доступ к адресу 0x1, вы помещаете все нули в A [35: 3] и устанавливаетеBE [1] (у меня могут быть неправильные номера контактов и полярность для BE, но идея все еще верна).

Для доступа к байтам 0x3: 0x0 вы помещаете все нули в A [35: 3]и установите BE [3: 0].

Это должно ответить на вопросы 1, 2 и 3.

Что касается вопроса 4, то фактически PAE позволит вам использовать 36 бит адреса,В более поздних процессорах то же самое может быть достигнуто с подкачкой в ​​64-битном режиме.

не может помочь с 5 ...

0 голосов
/ 14 июля 2010

около 5: В архитектуре Core i7 используется 3 (встроенных в чип) контроллера памяти (для каждого контроллера первого канала) с шириной 64 бита для каждого канала.

Но , конечно, вы не можете использовать 3 * 64-битные, потому что блоки SSE соединены с 128-битными линиями в кэш-памяти L1 (это, конечно, две 64-битные линии Chache).

Три канала полезны только для быстрой предварительной выборки разных адресов одновременно.

Но на GPR вы можете использовать только 64-битные (потому что это 64-битная архитектура).

Адресное пространство также должно быть 36 бит, потому что для чего вам понадобятся другие биты, если вы никогда не сможете подключить столько памяти.

...