Рис. 1. 13. Множественная запись в память — Multiple Memory Write
Запись в память это 7-й номер обмена на системном интерфейсе. Он интересен в следующем: после выставления команды тут же выставляются данные, но так как это запись, инициатор уже имеет эти данные для того, чтобы их передавать. Понятно, что он при этом говорит, что он готов и выдал данные. Далее через некоторое время устройство отвечает, что оно эти данные приняло и предварительно сообщает, что оно найдено. Для памяти существуют 2 варианта чтения или записи: обычное (похожее на чтение ввода/вывода) и множественное. Управляет множественным доступом к системному интерфейсу сигнал FRAME#: если сигнал FRAME# инициатором не восстанавливается после адресной части цикла, то это означает, что режимом работы этого системного интерфейса является множественный обмен, то есть выставляются какие-то данные D1 и, как правило, чтобы завершился обмен между инициатором и ресурсом требуется не один, а два цикла, поэтому минимальная длительность этой части по передачи первой порции данных равна двум тактам. После этого, если сигнал FRAME# не установлен в исходное состояние и остался активным, считается множественная запись когда, не передавая адреса, выставляется следующая порция данных. Данные меняются каждый такт, пока сигнал FRAME# активен. Это позволяет увеличить на 30% эффективность передачи данных по интерфейсу. Оказывается, есть такая локальная парадигма, которая часто используется в области вычислительной технике, а именно принцип локальности – когда часто данные, которые требуются для следующего обмена передачи использования обработки, находятся рядом. Поэтому подразумевается, что мы передали начальную часть адреса массива, а дальше со смещением 0, со смещением 1 и так далее. Тоже самое происходит при множественной записи. Единственное отличие – данные появляются не сразу, а с опозданием. Подразумевается, что адреса увеличиваются на размер передаваемых данных, то есть адреса увеличиваются на 4 для 32 разрядного интерфейса и на 8 для 64 битного интерфейса.