Jak działa Bufor Cykliczny?

Rozdział 2  Animacja Bufora Cyklicznego

Rozdz. 2.1 Wstęp
Przekonasz się jakim wspaniałym narzędziem jest animacja. Zamiast pisać, że zawartość rejestru A  wpisana będzie do rejestru pod warunkiem że… itd, to tylko klikasz zegar i samemu badasz układ cyfrowy! Poczujesz się jak Pan Jourdain z Moliera który odkrył, że całe życie mówił prozą. Polecam włączenie audio. 

Rozdz.2. 2 Bardzo ważne!!! Jak wchodzić i wychodzić z każdej animacji
Animację
wywołujesz ją klikając napis  ANIMACJA. znajdujący się pod większością rysunków. Wchodzisz wtedy na odpowiednią stronę serwera SCRATCH-a ale  jednocześnie wychodzisz ze strony tego kursu! Dlatego gdy już wszystko jest jasne, powróć klikając klasyczny windowsowy przycisk ze strzałką “powrót do poprzedniej strony”.

Rys. 2-1
Jak wracać z animacji do kursu.

Rozdz. 2.3 Animacja Bufora Cyklicznego
Kliknij niebieski napis ANIMACJA pod Rys. 2-2 a potem zieloną flagę aby ustawić stan początkowy.

Rys. 2-2

Cykl napełniania i opróżniania Bufora Cyklicznego  ANIMACJA
Klikając zegar zaobserwuj jak tekst “Ala ma kota” jest wprowadzany z UDR poprzez Bufor Cykliczny do pamięci RAM.
Zauważysz że:
w trakcie cyklu Napełniania Bufora Cyklicznego kolejne znaki bajty z UDR są wprowadzane do głowy węża H–>wąż przyrasta w prawo
w trakcie cyklu Opróżniana Bufora Cyklicznego najwcześniej wprowadzone bajty do Bufora Cyklicznego są “wymiatane” z ogona węża T do pamięci RAM–>wąż “skraca” się w prawo
Zmiana cyklu z Napełnianie na Opróżnianie gdy w głowie H pojawi się znak spacji
Zmiana cyklu z Opróżnianie na Napełnianie gdy bufor jest pusty. Innymi słowy gdy T=H lub “śmierć węża”
W analizie pomocna może być też instrukcja obsługi obok animacji.

Rozdz. 2.4 Uwagi dla programisty
Korzystając z powyższych informacji można napisać program w assemblerze lub innym języku (np. C++) pod konkretny system mikroprocesorowy. Tu ze względów dydaktycznych zastosowano bufor 8 bajtowy. Z tekstem “Ala ma kota” nie ma problemu, ale już np. z  “Aleksandra ma kota” system zgłupieje. Wąż zacznie zjadać swój ogon. Zaradzić temu można bardzo łatwo. Należy zwiększyć rozmiar Bufora Cyklicznego np. do 32 bajtów. W języku polskim rzadko są większe wyrazy niż  32-literowe i system powinien działać prawidłowo. Niezależnie od tego, stan gdy T=H w cyklu napełniania bufora, oznacza “zjadanie ogona”.  Należy napisać wtedy program obsługi tego niekorzystnego zjawiska, np. miganie lampki w najprostszym przypadku. Z kolei stan T=H w cyklu opróżniania bufora to “bufor pusty”.
Głównym zadaniem programisty jest wybranie odpowiedniego momentu przełączania cyklu napełnianie/opróżnianie.
W przypadku przejścia cyklu z opróżniania bufora na napełnianie bufora sprawa jest chyba oczywista. Jest to stan T=H w cyklu opróżniania. Bufor jest wtedy pusty, albo inaczej węża nie ma głowy bo pokrywa się ona z ogonem–> T=H.
Inaczej jest z przejściem cyklu z napełnianie bufora na opróżnianie bufora. Tu programista może sobie kombinować. W naszym przykładzie sygnałem tym był znak spacji. A można inaczej. Np. sygnał zbliżającego się przepełnienia bufora. Np. gdy w buforze 32 bajtowym jest już 30 bajtów. Lub jeszcze inaczej…

.

Scroll to Top