Järjestikuline arbitreerimine
Järjestikulise arbitreerimise puhul kasutatakse signaali, mis järjestikku läbib kõiki ühissiiniga ühendatud protsessoreid. See signaal võib olla kas bus grant või request. Kõige sagedamini kasutatakse bus grant signaali.
Kui üks või enam protsessorit soovivad siini kasutada, väljastavad nad request signaali. Signaal läbib kõik protsessorid alates kõige kõrgema prioriteediga protsessorist ja lõpetades kõige madalamaga. Esimene protsessoritest, mis väljastas request signaali takistab seda edasi levimast.
Kui kasutatakse bus request signaali, siis see läbib samuti järjestikku kõik protsessorid, alustades sellest, mis on kõige kõrgema prioriteediga.
Iga prtosessor, mis soovib siini haldamise õigust, genereerib request signaali. See liigub vasakult paremale madalama prioriteediga protsessorite suunas, kuni jõuab siini haldurini. Kuna signaal saabus siini haldurisse vasakult, s.t. kõrgema prioriteediga protsessorite poolt, vabastab siini haldur siini ja genereerib bus grant signaali. Seda signaali märkavad kõik siini haldamist taotlevad protsessorid, kuid ainult ühel neist puudub sisendis request signaal. See protsessor saab siini haldamise õiguse.
Mitte kummalgi järjestikulise arbitreerimise juhul ei tohi uus siini haldur siini enne üle võtta, kui ta on vaba. Selle garanteerimiseks on kaks võimalust:
protsessorid ei tohi request signaali väljastada enne, kui siin on vaba.
request signaali võib väljastada igal ajal, aga siini ei tohi üle võtta enne, kui ta on vaba.
Dünaamilised prioriteedid
Siini haldajal on kõige madalam prioiteet, temas paremal asuval protsessoril kõige kõrgem ja nii ringiratast kahanevas järjekorras. Siini haldaja väljastab bus grant signaali. Kui mõnel protsessoril on bus request signaal aktiivne, takistab ta bus grant signaali levimise. Kui siini haldur märkab, et signaal enam temasse tagasi ei jõua, vabastab ta siini nii ruttu kui võimalik.
|