Kasutaja:Maeitea/Siinihaldur

Siinhaldur (inglise keeles bus master) on kiip, mis võimaldab kontrolleril suhelda muude seadmetega ilma CPU vahenduseta.

Siinihaldur võimaldab kontrolleril suhelda muude seadmetega ilma CPU vahenduseta. Ühissiiniga multiprotsessorsüsteemide puhul on ühise siini külge ühendatud nii protsessorid kui ka mälumoodulid, mis kokku moodustab süsteemi ühiselt kasutatava mälu. Ühissiiniga süsteemi puhul saab siini kasutada korraga ainult üks protsessor. Selleks on aga vaja tagada kasutamise õiguste süsteem. Siini kasutav protsessor on haldaja. Kui teine protsessor saadab päringu siini kasutamiseks haldajale, siis viimane saadab kasutamist taotlevale protsessorile kinnituse ning uus protsessor saab siini haldajaks. Kui aga siini soovib korraga kasutada mitu protsessorit, on vajalik süsteem konfliktide vältimiseks ehk siini arbitreerimiseks. Eristatakse tsentraliseeritud ja detsentraliseeritud ning paralleelseid ja järjestikulisi lahendusi siini arbitreerimisel. Sünkroonsete süsteemide puhul võib olla siini kasutamine jagatud nii, et igal protsessoril on oma kindel ajaintervall, mille jooksul ta siini saab kasutada. Siini haldamise päringud saadetakse arbiitrile, kes otsustab, milline protsessor saab siini kasutamise õiguse. Signaalid 'siin kasutusel' ja 'siini päring' on aktiivsed kogu selle aja, mil protsessor siini kasutab. Siini kasutamise lubamise signaal on aktiivne kogu aja, kui protsessoril on siini kasutamise õigus. Kui aga ajal, mis üks protsessor siini kasutab, soovib siini kasutada kõrgema prioriteediga protsessor, siis siini arbiiter annab siini kasutamise õiguse kõrgema prioriteediga protsessorile. Kui siini haldaja märkab, et ta on kaotanud siini kasutamise õiguse, vabastab ta selle esimesel võimalusel, mis aga ei pruugi olla koheselt, kuivõrd tal võib olla pooleli näiteks lugemise või kirjutamise funktsioonid. Kõrgema prioriteediga protsessor saab siini halduriks alles siis, kui tal on siini kasutusõiguse signaal ning siin kasutusel signaal pole enam aktiivne. Detsentraliseeritud arbitreerimise puhul on igal protsessoril oma siini arbiiter. Siini kasutamisõiguse päringu signaalid jõuavad kõikide arbiitriteni tänu ühisele siinile. Siiski genereerib iga arbiiter individuaalse hõivatud siini signaali. Sellist arbitreerimise süsteemi kasutatakse suurema töökindluse tõttu. Kui protsessor või mitu protsessorit soovivad siini kasutada, siis saadavad nad siini õiguse päringu(bus request). Signaal läbib järjest kõiki protsessoreid alates kõige kõrgema prioriteediga ja lõpetades madalaima prioriteediga. Selle levimine takistatakse siini halduri juures. Kuna aga signaal saabus kõrgema prioriteediga protsessori poolt, siis vabastab haldaja siini ja genereerib siini lubava signaali. Seda signaali märkavad kõik protsessorid, kes soovivad siini haldamise õigust, kuid selle saab see protsessor, kellel puudub sisendis siini kasutamise päringu signaal (seega kõrgeima prioriteediga protsessor, mis soovis siini kasutada). Järjestikulise arbitreerimise puhul ei tohi uus siini haldur siini üle võtta enne, kui siin on vaba. Selle garanteerimiseks on järgmised võimalused: 1. protsessorid ei tohi päringu signaali väljastada enne, kui siin on vaba 2. päringu signaali võib väljastada igal ajal, kuid siini ei tohi üle võtta enne kui ta on vaba.