
Реализация 2.0 
 
 
 
 
 
47 
наихудший  случай  задержки,  должны  обеспечить  адекватную  буферизацию  за 30 мкс.  Это  подразумевает 
буферизацию минимум около 50 байтов для LAN - адаптеров со скоростью 10 Мбит/сек, и около 500 байтов 
- для LAN - адаптера со скоростью 100 Мбит/сек (если буферы организованы в виде строк (например, с 16- 
или  с 32-битным  выравниванием)  для  наилучшего  использования PCI и  памяти  целевого  устройства,  то 
минимальный  размер  буфера  желательно  увеличить).  Несмотря  на  некоторую  неопределенность  в 
наихудшем случае, для реализуемых системных разработок 30 микросекунд должны обеспечить достаточно 
широкое  поле  деятельности.  Даже  при  самых  жестких  требованиях, 30 микросекунд  должно  хватить  в 
наихудшем  случае.  Для  снижения  стоимости  проектирования  в  наихудшем  случае  мастер - устройство 
может  уменьшить  задержку  для  наихудшего  случая,  если  допускаются
  случайные  нарушения  величины 
задержки  без  создания  ошибочных  условий.  Например, LAN - адаптер  должен  иметь  соответствующую 
инфраструктуру (аппаратное и программное обеспечение), чтобы можно было определить, когда происходят 
ошибки  при  буферизации,  и  инициировать  повторную  передачу  блока  данных (как  в  случае,  когда  блоки 
искажаются из-за наводок в линиях или коллизий). Секторы на диске можно 
повторно считать или записать. 
Передача  в  реальном  времени  потока  данных (например,  аудио-  данных)  может  допускать  случайные 
типовые  потери,  используя  при  этом  предыдущую  выборку  данных.  Устройство,  достаточно  устойчивое  к 
сбоям  и  нарушениям  задержки,  изменяет  значение  задержки  из  обычного  состояния  в  более 
«благоприятное» для соотношения цена/производительность (то есть, в случае обработки 
звука мы получим 
шумы).  Например,  дешевый LAN -  адаптер  для  клиентских  станций (с  небольшой  загрузкой  шины PCI) 
проектируют  с  задержкой 10 мкс  в  наихудшем  случае  и  принимают,  что  частота  повторения  пакетов 
слишком  мала,  чтобы  повлиять  на  снижение  эффективности.  Устройства,  разрабатываемые  для  серверов, 
должны  иметь  большие  буферы (при  высокой  стоимости)  для  уменьшения  повторений  в  случае  больших
 
нагрузок (если  принимать  во  внимание  необходимость  разработки  очень  устойчивых  приложений,  то 
устройства, спроектированные для задержки 30 мкс и более, должны самовосстанавливаться во всех случаях 
нарушения задержки). Некоторые приложения (например, встраиваемые контроллеры, мультимедиа и т. д.) 
могут принимать на себя более устойчивое управление задержками, чем то, которое обеспечивается обычной 
(общего назначения) главной
 шиной PCI (такие условия могут быть реализованы на вторичной шине PCI и 
подсоединены  к host - машине  через  интерфейс PCI - PCI). Этому  типу  приложений  требуется,  чтобы  у 
целевых устройств было малое и предсказуемое время задержки. Для обеспечения такого проектирования, и, 
в  общем  случае,  для  поощрения  хороших  разработок,  при  разработке  интерфейса  целевых  устройств 
рекомендуется пользоваться принципами, перечисленными 
ниже. Далее, термином «одноуровневый» (single-
layer)  обозначается  целевое PCI - устройство,  которое  обеспечивает  немедленный  доступ  к  выбранному 
ресурсу.  В  качестве  примера  могут  служить  одно-портовая  динамическая  память (DRAM) и  буфер 
изображения  видеопамяти (VRAM). «Многоуровневым»  называется  целевое  устройство,  осуществляющее 
арбитраж  ресурса,  выбранного  другим  ресурсом,  для  которого  арбитраж  не  осуществляется.  В  качестве 
примера  можно  указать  интерфейсы «PCI - шина  расширения» (
например, PCI - ISA/EISA/MC; PCI - PCI; 
PCI - основная память и т. д.), а также двух-портовую DRAM.  
 
1.  Одноуровневое  целевое  устройство  должно  отсрочить  первую  фазу  данных  на 16 тактов.  В  противном 
случае,  если  временное  внутреннее  состояние (например,  регенерация DRAM, полная  очередь 
отложенных  запросов  на  запись  и  т.  д.)  увеличивает  задержку  запроса  более,  чем  на 16 тактов,  то 
немедленно осуществляется повтор. 
2. 
Многоуровневое целевое устройство должно повторять запрос, который находится в коллизии с занятым 
ресурсом. Например, если осуществляется запрос, подчиненный EISA - шине, которая захвачена другим 
мастером,  то  следует  немедленно  повторить  этот  запрос (в  любом  случае,  был  бы  необходим  цикл 
ожидания  для  исключения  тупиковой  ситуации,  поэтому  ожидание  и  происходит).  Аналогично,  при 
запросе регенерируемого буфера изображения
 DRAM следует повторить данный запрос. 
 
3. 
«Многоуровневые»  целевые  устройства (особенно,  шинные  интерфейсы)  должны  соблюдать  большую 
осторожность  в  стратегии  записи  буфера.  Буферы  записи  затрудняют  определение  задержки,  так  как 
обычно  предъявляемые  строгие  требования  гласят,  что  перед  разрешением  какого-то  запроса,  должна 
быть обслужена вся очередь записей. Рекомендуется, в частности,  чтобы основной интерфейс ЦП - PCI 
мог  откладывать  записи  в  резидентный PCI - 
буфер,  при  этом  подавляя  отложенные  записи  на 
подчиненную шину ISA/EISA/MC.