1

Я занимаюсь исследованием новых компьютерных архитектур и мне нужно более четкое представление о том, как Memory Control работает на ПК.

Короче говоря, я хотел бы знать, может ли устройство PCI-E, такое как GPU, получать доступ к ОЗУ и осуществлять запись в ОЗУ без необходимости обращаться к ЦП. Предположим, что система знает, куда ей разрешено записывать (что-то вроде виртуальной машины), чтобы ваша система не выходила из строя.

Очень хотелось бы получить краткое четкое описание того, как контроллер памяти и процессор взаимодействуют и как устройства GPU или PCI-E обращаются к системной памяти.

Заранее спасибо, Геккон

2 ответа2

2

Одним словом да. Первоначально (в 8086 году) он назывался DMA, или Прямой доступ к памяти. В то время существовал специальный чип контроллера DMA, который ЦПУ должен был запрограммировать для передачи данных между оперативной памятью и периферийными устройствами, но, по крайней мере, еще в первые дни PCI (и я думаю, что на оригинальной шине ISA тоже, но я не известно о любых устройствах, которые это сделали), сами периферийные устройства также могут быть мастерами шины и передавать данные сами.

Как правило, они по-прежнему требуют, чтобы процессор сообщал им, к каким частям памяти они должны обращаться, но некоторые устройства с плохим поведением, такие как контроллеры firewire, открывают доступ DMA ко всему оперативной памяти системы по указанию какого-либо внешнего устройства на шине firewire. Некоторые современные системы PCIe имеют интеллектуальные мосты PCIe, которые можно запрограммировать на выполнение трансляции адресов и ограничений доступа, поэтому ЦП может запретить подключенным к ним устройствам доступ к памяти, которого они не должны, но в настоящее время это кажется ограниченным для материнских плат большого типа сервера, а не для вашего рабочий стол.

Что касается того, как шина PCI(e) позволяет любому устройству выполнять чтение / запись по любому адресу, будь то в основной системной памяти (как правило, управляется непосредственно ЦП в эти дни) или на каком-либо другом устройстве на шине. Таким образом, одно устройство PCI(e) может напрямую обращаться к памяти или регистрам другого устройства PCI(e) или оперативной памяти основной системы, независимо от того, где оно находится. Мосты PCI(e) направляют запрос к соответствующему устройству, так как они настроены (микропрограммой / BIOS системы и, возможно, позже ядром ОС), чтобы знать, какие диапазоны адресов "принадлежат" какому-либо устройству.

1

Я хотел бы знать, может ли устройство PCI-E, такое как GPU, получать доступ к ОЗУ и записывать в ОЗУ, не связываясь с процессором.

Да, это называется автобусным мастерингом.
Адаптер PCI/PCIe может получить контроль над шиной и конкурировать за циклы памяти. Процессор, контроллер DMA и мастера шины могут конкурировать за доступ к памяти. Арбитр памяти обычно предпочитает процессор, которому обычно назначается самый высокий приоритет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .