Программисты просматривают представление памяти v / s микроархитектору в многопроцессорных системах. - PullRequest
0 голосов
/ 03 мая 2020

Я читал Руководства для разработчиков программного обеспечения Intel. Глава 8 тома 3А: Управление несколькими процессорами дает представление «программиста» о многопроцессорной системе как о нескольких процессорах, подключенных к «системной шине», в которой также имеется память, соединенная контроллером памяти. Что это за "системная шина"? Это абстракция программиста, где то, что реализовано на самом деле, может быть совершенно другим?

Более того, я обеспокоен этими "LOCKED ATOMI C ОПЕРАЦИЯМИ". Например, в руководстве говорится, что загрузка и хранение гарантированно будут составлять атомы c через механизм блокировки системной шины. Это означает, что во время такой операции атома c устанавливается «стопорный штифт» на системной шине, что делает другие процессоры невозможно получить доступ к памяти (точнее, к контроллеру памяти) в течение этого периода. Это чисто программистское представление ??? То есть представление уровня архитектуры ISA ?? Если бы это был микроархитектурный вид, я могу понять, как существовал бы глобальный порядок памяти , потому что только один процессор может одновременно обращаться к памяти (контроллеру).

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

...