197803. lajstromszámú szabadalom • Kapcsolási elrendezés közös számítástechnikai erőforrásokhoz való hozzáférés szabályozására előnyösen mikroprocesszoros rendszerekhez
197803 tékü 19 címbitjei 4 címfelismerő 21 címbemenetére, alsó helyiértékű 20 címbitjei pedig az 5 szemaforegységben elhelyezett címezhető 7 tároló, valamint 9 adatkiválasztó 22, valamint 23 címbemenetére kapcsolódnak. A 4 címfelismerő például Texas Instruments 74S138 típusjelű címdekóder áramkör, a 7 tároló 74LS259 típusú címezhető latch lehet, a 9 adatkiválasztó pedig például 74LS251 típusjelű multiplexer lehet. A címezhető 7 tároló 24 adatkimenetei átmeneti 8 tárolóra, ennek 25 adatkimenete pedig a 9 adatkiválasztó 26 adatbemenetére van csatlakoztatva. A 8 tároló áramköri megfelelője például a 74LS373 típusjelű, kimeneti engedélyezéssel rendelkező latch. A 4 címfelismerő címjelző 12 vezetékével össze van kötve, egyrészt 10 késleltetőn keresztül a címezhető 7 tároló vezérlő 31 bemenetével, másrészt közvetlenül az átmeneti 8 tároló és a 9 adatkiválasztó engedélyező 13 és 14 bemenetével is. Az I adatbusz egy 18 adatvezetékre vezérelt 6 kapcsoló egyik 27 bemenetére, a 2 vezérlőbusz írásjelző 17 vezetéke a vezérelt 6 kapcsoló vezérlő 28 bemenetére csatlakozik, a vezérelt 6 kapcsoló másik 29 bemenete 11 referencia pontra kapcsolódik, 30 kimenete pedig a címezhető 7 tároló szemafor adat 15 bemenetére van kötve, a szemafor adat 16 kimenet, ami egyben a 9 adatkiválasztó 32 kimenete is, rá van vezetve az 1 adatbuszra. A 6 kapcsoló gyakorlatilag egy adatszektor. Referencia típus a 74LS157 vagy 74LS158 lehet. A kapcsolási elrendezés működését a 2. ábra idődiagramjai szemléltetik. Az idődiagramokon a kapcsolási elrendezés 1. ábra szerinti hivatkozási számokkal azonosított jellemző pontjainak jelalakjai láthatók a t idő függvényében. Alaphelyzetben az 5 szemaforegység 16 kimenete magas impedanciájú állapotban van, azaz nincs rákapcsolva az 1 adatbuszra. A 2. ábrán a magas impedanciájú állapotot szaggatott vonallal jelöltük. Az 5 szemaforegység olvasása előtt tetszőleges ta időpontban a processzor a 3 címbusz felső helyiértékü 19 címbitjeit a 4 címfelismerő címének megfelelő kombinációra állítja be. Az alsó helyiértékű 20 címbitek, abban az esetben, ha több közös erőforrás működik a rendszerben az egyes erőforrásokhoz tartozó szemaforok kiválasztására, címzésére szolgálnak. Tételezzük fel, hogy a közös erőforrások egyikének hozzáférését szabályozó tároló elemet (szemafort) címzik a 7 tárolóban, illetve a 9 adatkiválasztóban a 20 címbitek. Az 5 szemaforegység olvasása előtt tetszőleges tb időpontban a processzor vagy az azon futó egyik folyamat eldönti, hogy csak olvasni kívánja az 5 szemaforegység címzett szemaforját, vagy az éppen futó program feljogosítja őt arra, hogy a szemafort szabad állapotba átírja. A szemafor szabad állapotba való átírására csak az a folyamat jogosult, amelyik előzőleg hozzáfért az eszközhöz, a közös erőforráshoz és lefoglalva tartotta azt. 4 3 Olvasás megkísérlése esetén, azaz alaphelyzetben a 6 kapcsoló 30 kimenetén, és így a 8 tároló 15 bemenetén a 11 referencia pont által meghatározott logikai szint van jelen. Ha a folyamat az éppen címzett szemafort szabaddá akarja tenni, azaz át akarja írni, a 6 kapcsoló 27 bemenetére az I adatbusz 18 adatvezetékén a 11 referencia pont logikai szintjével ellentétes logikai szintét kapcsol a processzor, majd a 2 vezérlőbusz írásjelző 17 vezetékével a 6 kapcsolót átbillenti, és ezek után a 30 kimeneten ez a megváltozott, a 27 bemeneten jelenlévő logikai szint jelenik meg. Az 5 szemaforegység olvasása, illetve írása a ti időpontban kezdődik azzal, hogy a processzor a 2 vezérlőbusz címérvényesítő 33 vezetékére érvényesítő jelet küld. Erre csak a 3 címbusz állapotának stabilizálódása után kerülhet sor. Ha a 19 cimbitek állapota a 4 címfelismerő címével azonos, és a 33 vezetéken az érvényesítő jel is aktív, a címjelző 12 vezeték aktív állapotba vált. Ennek hatására a 8 tároló eltárolja a 7 tároló 24 adatkimenetének eddigi állapotát. Ez megjelenik a 25 adatkimeneten. A 24 és 25 adatkimenet adatbitjeinek száma megegyezik a rendszerben lévő közös erőforrások számával, azaz minden közös erőforráshoz tartozik egy adatbit. Ezen adatbitek közül a felső helyiértékü 20 címbitek által megcímzettet a 9 adatkiválasztó a 32, illetve a 16 kimenetre kapcsolja. Ekkor szűnik meg a 16 kimenet magas impedanciájú állapota. A 16 kimenet logikai állapotát a processzor az 1 adatbuszon keresztül beolvassa. Ez a művelet a bevezetőben leírt Test művelet. A 16 kimenet logikai állapota mutatja ilyenkor azt, hogy a 20 címbitek alapján a 9 adatkiválasztó által kiválasztott adatbithez tartozó közös erőforrás szabad vagy foglalt állapotú. Foglalt abban az esetben, ha a 16 kimenet logikai állapota azonos a 11 referencia pont által meghatározott logikai szinttel, szabad pedig, ha ezzel ellentétes a logikai állapot. A 12 vezeték aktív állapotba váltását követően a 10 késleltető által meghatározott t idővel a 7 tároló 31 bemenete aktív állapotba kerül, és a felső helyiértékű 20 címbitek által a 7 tároló adatbitjei közül megcímzett felveszi a 30 kimenetnek, a^az 15 bemenetnek megfelelő logikai szintet. Ha csak olvastuk az 5 szemaforegységet, akkor a 11 referencia pont logikai szintje, ha írtuk, akkor a 11 referencia pont logikai szintjével ellentétes logikai szint jelenik meg a 24 adatkimenet címzett bitjén. Ez a bevezetőben leírt Set művelet. A processzor a ciklus befejezése képpen a 33 vezetéken t2 időpontban megszünteti a címérvényesítő jelet. Ennek hatására a 16 kimenet nagyimpedanciájú állapotba vált. A szemafor következő olvasásakor az eddig leírt TAS folyamat ismétlődik meg azzal a különbséggel, hogy a 24 adatkimenet címzett adatbitje, az előző Set művelet alatt módosulha-4 5 10 15 20 25 30 35 40 45 50 55 60' 65