[pso] Dimensiune buffer si sincronizare prin MCR - MSR
Bogdanutz
pso@cursuri.cs.pub.ro
Sat, 17 Apr 2004 18:32:06 -0700 (PDT)
--- Bogdanutz <bogdaneleu@yahoo.com> wrote:
> Situatia:
> Pentru fiecare port am un buffer pentru write si
> unul
> pentru read, ambele de dimensiune BUF_LEN.
> Daca modulul primeste o cere de scriere de
> dimensiune
> mai mare, sa zicem 3*BUF_LEN, el se comporta astfel:
> scrie in bufferul de write pana ce acesta se umple,
> dupa care trimite datele pe port pentru a goli
> bufferul. Acum bufferul de read al celuilalt port se
> umple. Sa zicem ca nimeni nu citeste datele din
> bufferul portului care a primit datele. La
> urmatoarea
> scriere in bufferul initial, urmand aceiasi pasi
> descrisi mai sus se vor pierde date.
>
> Vad cateva rezolvari la aceasta situatie si as dori
> sa
> stiu care e cea de urmat:
>
> 1) Bufferul va avea dimensiunea 2048 ( am vazut ca
> in
> prog de test nu se trimit date mai mari- desi ma cam
> indoiesc ca asta e solutia :D)
>
> 2) Se folosesc MCR si MSR : portul care trimite va
> verifica MSR pentru a avea permisiunea de trimite
> date,
> iar portul care primeste va seta MCR. Asta presupune
> sa conectam si celelalte fire ale cablului null
> modem
> (in momentul de fata eu nu folosesc decat 2-3 3-2).
>
> 3) Ma folosesc de conexiunile existente, iar portul
> care trimite verifica dupa fiecare scriere daca
> celalalt port ii da permisiunea sa scrie
> (dezavantajos
> pentru ca se citeste de 2 ori mai mult si nu pot
> avea
> o conexiune in ambele sensuri in acelasi timp)
>
> Daca mai exista si alta solutie as vrea sa stiu si
> eu.
> (ar fi destul de important sa stiu cum sa procedez
> pentru ca diferentele dintre solutii sunt destul de
> mari)
>
> Multumesc
Cred ca am inteles intr-un final. Sincronizarea o fac
prin FIFO si intrerupere. Adica portu care scrie,
scrie pana cand sa umple FIFO-ul lui si nu mai scrie
pana cand nu primeste intreruperea de Transmiter
Holding Register Empty.
__________________________________
Do you Yahoo!?
Yahoo! Photos: High-quality 4x6 digital prints for 25¢
http://photos.yahoo.com/ph/print_splash