ГОСТ РМЭК 821-2000
2.3.8Ф у н к ц и о н а л ь н а яв о з м о ж н о с т ьЧ т е и и е—М о д и ф и к а ц и я -
З а п и с ь
В мультипроцессорных системах, совместно использующих ресурсы, такие как устройства
памяти и ввода/вывода, нужен алгоритм по распределению этих ресурсов. Одна из очень важных целей
этого алгоритма распределения состоит в том, чтобы гарантировать невозможность одновременного
использования какого-либо ресурса двумя задачами. Лучше всего эта проблема может быть проиллю
стрирована следующим примером.
Два процессора в мультипроцессорной системе совместно используют какой-то общий ресурс
(например, принтер). Влюбой момагг времени ресурс может быть использован только одним процес
сором. Этот ресурс распределяется каким-либо разрядом в памяти, т.е. когда разряд установлен, то
ресурс занят, когдаон очищен, ресурс свободен. Для получения ресурса в свое распоряжение процес
сор А считывает разряд и проверяет его содержимое, чтобы определить, очищен ли он. Если разряд
очищен, процессор А устанавливает его. чтобы заблокировать использование принтера процессором
В. Эта операция состоит из двух пересылок данных: считывание разряда для его проверки и записи
для его установки. Однако может возникнуть проблема, если между этими двумя пересылками шина
будет предоставленапроцессору В. Вэтом случае процессор В можеттоже установить, что упомянутый
разряд очищен, и сделать вывод, что ресурс свободен. Далее оба будутустанавливать этот разряд в
следующий свободный цикл и попытаются использовать ресурс.
Этот конфликт разрешается введением цикла Чтение—Модификация—Запись, который пре
дотвращает передачу управления шиной пересылки данных междуфазами считывания и записи этого
цикла. Этотцикл очень напоминает совокупностьдвух циклов: цикласчитывания и непосредственно
следующего за ним цикла записи. Отличие заключается в том, что в цикле Чтение—Модификация-
Запись адресный строб удерживается низким впроцессе обеих пересылок. Эго гарантирует невозмож
ность передачи управления шиной пересылки данных во время цикла Чтение—Модификация-
Запись в противоположность случаю с совокупностью двух циклов, так как передача управления
возможна только в случае, когда адресный строб яазяется высоким.
Таблица 2.12 содержит мнемоническое обозначение, употребляемое для описания возможнос
тей цикла Чтение—Модификация—Запись (read—modify—write—RMW). и смысловоесодержание
применительно к задатчикам, исполнителям и адресным мониторам.
Таблица 2.12—Мнемоническое обозначение возможностей никла Чтение—Модификация—Запись
Мнсмоикческос
обозначение
Функциональнии
блок
Смысловоесодержание
RMW
Исполнитель 1X18(0)
Можетвосприниматьследующие никлы:
- нечетные однобайтовые никлы RMW:
ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ БАЙТА*1)
ЧТЕНИЕ—МОДИФИКАЦИЯ—ЗАПИСЬ БАЙТА(З)
Задатчик DOS(EO)
Исполнитель D08(EO)
Адресный монитор D08(EO)
Можетформировать следующие никлы:
Может восприниматьследующие циклы:
Может контролироватьследующие никлы:
- однобайтовыс циклы RMW:
ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ БАЙТА(О)
ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ БАЙТАО)
ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ БАЙТА(2)
ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ БАЙТА*3)
ЗадатчикD16
Исполнитель D16
Адресный монитор D16
Может формироватьследующие циклы:
Может восприниматьследующие циклы:
Может контролировать следующие циклы:
-двухбайтовые циклы RMW:
ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ БАЙТОВ(0-1)
ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ ЬАЙТОВ<2-3)
ЗшхпчикD32
Исполнитель D32
Адресный монитор D32
Может формироватьследующие циклы:
Можетвосприниматьследующие никлы:
Может контролировать следующие циклы:
- четырехбайтовые циклы RMW:
ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ БАЙТОВ**)—3)
j-j*27