Bufer pro seriovou linku-

Snail Instruments snail@iol.cz
Pondělí Květen 24 08:14:51 CEST 2004


At 23:02 21.5.04 +0200, you wrote:
>Dva ukazatele:
>posledni_zapsany (vstup dat do bufru)
>a posledni_precteny (vytup dat z bufru)
>Pokud se shoduji bufer prazdny
>Pred zapisem zvednu "posledni_zapsany" a pokud se rovna s
>"posledni_precteny" tak je bufer plny.

V bufferu o delce N muzu mit 0..N znaku, coz predstavuje N+1 stavu. Ukazatele se ale mohou lisit nejvice o 0..N-1, cili rozlisi nam pouze N stavu. Z toho nevede cesta zadnou spekulaci.

Pokud pouziju promenne index a pocet, pocet nabyva hodnoty 0..N a umoznuje rozlisit vsechny stavy. Nevyhoda tohoto postupu je nutnost jedne az tri aritmetickych operaci pri vypoctu pointeru. Na druhou stranu, pokud je delka bufferu mocnina dvou, promenna pocet umoznuje okamzite zjistit dulezite stavy - plny buffer (jednicka v nejvyssim pouzitem bitu) a prazdny buffer - nulova hodnota, takze tady se zas usetri.

J. Hanzal





Další informace o konferenci Hw-list