ИНТЕРФЕЙС PCI_ ПРОТОКОЛ ЗА ОБМЕН

Заявките за използване на PCI шината се арбитрат от специален функционален възел, който е част от чипсета на дънната платка. Всяко иницииращо устройство има двойка сигнали - REQ# за искане на управление на шина и GNT# за потвърждаване на предоставянето на управление на шина. Приоритетната схема (фиксирана, циклична, комбинирана) се определя чрез програмиране на арбитър. Всяко устройство - потенциален инициатор на обмен (PCI Master) има собствен програмируем таймер MLT (Master Latency Timer), който определя максималния брой цикли на шина, разрешени за една транзакция. Чрез програмиране на стойността му при конфигуриране на устройствата, честотната лента на шината се разпределя между абонатите на шината. Всяко целево устройство има механизъм за нарастваща латентност, който не позволява интервалът между съседните фази на данни в пакета да надвишава 8 цикъла на шината. Ако целевото устройство няма време да работи с това темпо, то трябва да спре транзакцията.

интерфейс
Фиг. 1. Цикъл на обмен на PCI шината

Броят на фазите (циклите) на данните в пакета не е предварително определен, но преди последния цикъл инициаторът на обмен премахва сигнала FRAME#, когато е въведен сигналът IRDY#. След последната фаза на данните, инициаторът премахва сигнала IRDY# и шината влиза в състояние на неактивност (PCI Idle) - сигналите FRAME# и IRDY# са в пасивно състояние. Максималният брой цикли на данни в пакет може да бъде имплицитно ограничен от таймер, който определя максималното време, през което инициаторът може да използва шината.

Инициаторът завършва транзакцията по една от трите причини:

В края на обмена на данни се извършва нормално прекратяване.

Изчакване възниква, когато на инициатора е отказан контрол на шината по време на транзакция (чрез премахване на сигнала GNT#) или когато неговият MLT таймер изтече (целевото устройство е твърде бавно или инициираната транзакция е твърде дълга)

Транзакцията се отхвърля (Abort), когато инициаторът не получи отговор от целевото устройство (DEVSEL#) в рамките на определеното време.

Транзакцията може да бъде прекратена и по инициатива на целевото устройство за това, то може да въведе сигнала STOP#. Има три основни вида прекратяване:

Прекъсване на връзката - Сигналът STOP# се въвежда, докато TRDY# е активен. В този случай транзакцията приключва след фазата на данните.

Прекъсване на връзката/повторен опит - Сигналът STOP# се въвежда, когато TRDY# е неактивен и последната фаза на данните липсва. Такова завършване е индикация за инициатора за необходимостта от повторение на транзакцията.

Abort - сигналът STOP# се въвежда едновременно с премахването на DEVSEL# (в предишни случаи при поява на сигнал STOP# е бил активен сигналът DEVSEL#). В този случай последната фаза на данните също липсва, но не се иска повторен опит.

Една от характеристиките на компютрите с PCI шина е възможността за извършване на обмен на данни между процесора и паметта едновременно с обмен между други абонати на PCI шина - Concurrent PCI Transferring. Тази функция обаче не се изпълнява от всички чипсети (винаги е специално подчертана в описанията) и рядко се използва от обикновени абонати на шина (графични карти, дискови контролери и др.).