ИМХО, не совсем так. Latency Timer в BIOS - это параметр записываемый в Config Space всех мастеров, именно данный параметр может ограничивать длительность одной транзакции, выполняемой мастером. Посмотрите главы PCI22: "3.5.4.1. Bandwidth and Latency Considerations" и "6.2.4. Miscellaneous Registers". Насколько я понимаю стандарт: Latency Timer - максимальное время транзакции для данного мастера. Может программироваться. MIN_GNT - прописывается readonly в Config Space мастера - это минимальное время, на которое арбитр должен предоставлять шину данному мастеру. Например Вам надо передавать пачками минимум по четыре слова (типа строка кеша заполняется), по три уже - никак - то и прописываете, что надо получить шину минимум на время для передачи четырех слов (тактовую полагаем 33 МГц). MAX_LAT - прописывается readonly в Config Space мастера - максимальное время которое арбитр может "не пускать" мастера к шине. Например, с "пользовательского конца" устройства прилетают данные, устройство должно их записать в системную память - запрашивает шину PCI у арбитра, ему пока не дают, а данные пользователя продолжают приходить. Ну, ясно - надо класть в буфер, но он же не бесконечный. То есть, время в течение которого должны выдать шину ограничено, иначе в устройстве пропадут данные. Вот MAX_LAT и вводит это ограничение, которое в идеале должно использоваться при конфигурировании арбитра.
|