Блоки управления памятью при вводе-выводе
Как и обычные MMU-блоки, I/O MMU использует таблицы страниц для отображения адреса памяти, которым желает воспользоваться устройство (адрес устройства), на физический адрес. В виртуальной среде гипервизор может настроить таблицы страниц таким образом, что устройство, выполняющее DMA, не станет забираться в память, не принадлежащую виртуальной машине, от имени которой оно работает.
I/O MMU-блоки при работе с устройством в виртуализированном мире предлагают различные преимущества. Прямая передача устройства (device pass through) позволяет физическому устройству быть напрямую назначенным конкретной виртуальной машине. В общем, было бы идеально, если бы адресное пространство устройства совпадало с гостевым физическим адресным пространством. Но это вряд ли может произойти, пока у вас не будет I/O MMU. Блок управления памятью позволяет адресам пройти явное переназначение, и тогда как устройство, так и виртуальная машина будут пребывать в абсолютном неведении о производимом в аппаратных недрах преобразовании адресов.
Изоляция устройств (device isolation) гарантирует, что устройство, назначенное виртуальной машине, может напрямую обращаться к этой виртуальной машине, не подвергая опасности неприкосновенность других гостевых операционных систем.
Иными словами, I/O MMU предотвращает неконтролируемый DMA-трафик точно так же, как обычный MMU предотвращает неконтролируемое обращение к памяти из процессов. В обоих случаях обращение к неотображенным страницам влечет за собой сбой.Но, к сожалению, на DMA и адресах история ввода-вывода не заканчивается. Для полноты картины нам нужно также виртуализировать прерывания, чтобы прерывания, выданные устройством, попадали на нужную виртуальную машину, имея правильный номер. В связи с этим современные блоки I/O MMU поддерживают переназначение прерываний (interrupt remapping). Предположим, устройство отправило сообщение, оповещающее о прерывании с номером 1. Сначала это сообщение попадает в I/O MMU, чтобы преобразоваться в новое сообщение, предназначенное для центрального процессора, на котором в данный момент работает виртуальная машина, да еще и с номером вектора, ожидаемого этой виртуальной машиной (например, 66), будет использована таблица переназначения прерываний.
И наконец, наличие I/O MMU также помогает 32-разрядным устройствам иметь доступ к памяти, превышающей порог в 4 Гбайт. Обычно такие устройства (например, DMA) не могут обращаться к адресам за пределами 4 Гбайт, но I/O MMU может легко переназначить нижние адреса устройства на любые адреса в физическом более обширном адресном пространстве.
7.7.2.
Еще по теме Блоки управления памятью при вводе-выводе:
- Примечание 2. О вводе во владение
- Блоки и Защитные Системы
- БЛОКИ МОЗГА
- Глава 12 ЭНЕРГЕТИЧЕСКИЕ БЛОКИ И ЗАЩИТНЫЕ СИСТЕМЫ В АУРЕ
- Блоки и Защитные Системы. Типы Характеров Человека
- Блоки из ПРОШЛЫХ ЖИЗНЕЙ, МЕШАЮЩИЕ ЯСНО-ВИДЕНИЮ '
- ПРЕДСТАВЛЕНИЕ ПАМЯТИ
- Статья 1040. Обращение взыскания на имущество, переданное в управление, по требованию кредитора установщика управления
- Гигиена памяти.
- укрепление памяти