05.04.2013 Views

SERWIS ELEKTRONIKI

SERWIS ELEKTRONIKI

SERWIS ELEKTRONIKI

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Dane<br />

do zapisu<br />

WE<br />

Sygna³<br />

przepe³nienia<br />

• obszar A zawiera wiadomoœci zapisane przez komputer A<br />

i czytane przez komputer B,<br />

• obszar B zawiera wiadomoœci zapisane przez komputer B<br />

i czytane przez komputer A.<br />

Informacja o wiadomoœci jest przekazywana poprzez system<br />

przerwañ.<br />

Komputer A zapisuje wiadomoœæ w obszarze A i wysy³a<br />

sygna³ przerwania do komputera B.<br />

Komputer B czyta wiadomoœæ z obszaru A i przesy³a potwierdzenie<br />

o sygnale przerwania. Komputer A usuwa sygna³<br />

przerwania.<br />

Taka implementacja pamiêci dwuportowej zabezpiecza<br />

przed konfliktem – jeden komputer nie mo¿e odczytaæ wiadomoœci<br />

zanim ta nie zostanie w pe³ni zapisana przez drugi komputer,<br />

oraz komputery nie mog¹ dokonywaæ zapisu w obu obszarach.<br />

Pamiêci FIFO<br />

Interfejs<br />

zapisu<br />

Uk³ad<br />

zapisu<br />

Zegar A<br />

Pamiêci FIFO (First In First Out) s¹ specjalnym rodzajem<br />

pamiêci, które zapewniaj¹ wysy³anie danych we w³aœciwej<br />

kolejnoœci wymaganej przez wiêkszoœæ komputerów. Pamiêæ<br />

FIFO wyposa¿ona jest w dwa jednokierunkowe porty bez wejœæ<br />

adresowych: jeden port s³u¿y do zapisu, a drugi do odczytu<br />

danych. Jak nazwa pamiêci wskazuje, pierwsze dane zapisane<br />

s¹ pierwszymi danymi odczytywanymi, ostatnie dane zapisane<br />

s¹ ostatnimi danymi odczytywanymi. Je¿eli jeden element<br />

pamiêci zosta³ odczytany, nie mo¿e byæ odczytany ponownie.<br />

Nastêpny odczyt z pamiêci dostarcza nastêpny zapisany element.<br />

Taka pamiêæ jest pamiêci¹ sekwencyjn¹. Rozmiar pamiêci<br />

FIFO nazywany jest czêsto jej g³êbokoœci¹. Przepe³nienie<br />

– b³¹d okreœlany jako “overflow” nastêpuje w momencie<br />

próby zapisu do zape³nionej pamiêci. Analogicznie przy próbie<br />

odczytu pustej pamiêci wystêpuje b³¹d okreœlany jako “underflow”.<br />

Pamiêci FIFO s¹ budowane na bazie pamiêci dwuportowych<br />

– generalnie typu SRAM, ale stosowane mog¹ byæ równie¿<br />

pamiêci DRAM.<br />

Rodzaje pamiêci stosowanych w sprzêcie elektronicznym<br />

Tablica pamiêci dwuportowej<br />

Zapis danych<br />

Odczyt danych<br />

Adres zapisu<br />

Adres odczytu<br />

WskaŸnik<br />

zapisu<br />

Uk³ad<br />

porównuj¹cy<br />

WskaŸnik<br />

odczytu<br />

pamiêæ pe³na pamiêæ pusta<br />

Rys.16. Schemat blokowy pamiêci FIFO<br />

Zapis Odczyt<br />

WE<br />

Przepe³nienie<br />

Interfejs<br />

zapisu<br />

-zegar A<br />

Pamiêæ<br />

dwuportowa<br />

Interfejs<br />

odczytu<br />

-zegar B<br />

OE<br />

P.pusta<br />

Zegar A<br />

Wewnêtrzne sygna³y<br />

synchronizacji<br />

Zegar B<br />

Rys.17. Schemat blokowy aplikacji z pamiêci¹ FIFO<br />

Interfejs<br />

odczytu<br />

Uk³ad<br />

odczytu<br />

Zegar B<br />

Dane<br />

odczytane<br />

Na rysunku 16 przedstawiono schemat blokowy pamiêci<br />

FIFO.<br />

Pamiêæ FIFO jest ³añcuchem komórek pamiêci adresowanych<br />

przez dwa wewnêtrzne wskaŸniki: zapisu i odczytu. Zape³nienie<br />

pamiêci jest okreœlane poprzez relacje pomiêdzy<br />

wskaŸnikami. Pusta pamiêæ ma oba wskaŸniki ustawione na tê<br />

sam¹ wartoœæ. Po zapisaniu danych wskaŸnik zapisu zwiêksza<br />

siê. Je¿eli dane zostaj¹ odczytane, wskaŸnik odczytu równie¿<br />

siê zwiêksza. Je¿eli wskaŸnik odczytu jest taki sam jak wskaŸnik<br />

zapisu, oznacza to, ¿e pamiêæ jest pusta. Je¿eli wskaŸnik<br />

odczytu nie mo¿e zostaæ zwiêkszony, oznacza to, ¿e pamiêæ<br />

jest zape³niona i nie mo¿na zapisaæ w niej wiêcej danych. Uk³ad<br />

kontroli pamiêci generuje sygna³ zape³nienia i sygna³ oznaczaj¹cy<br />

¿e pamiêæ jest pusta. Sygna³y te mog¹ zostaæ wykorzystane<br />

przez urz¹dzenia zewnêtrzne korzystaj¹ce z pamiêci.<br />

Interfejsy pamiêci mog¹ byæ synchroniczne – z sygna³em<br />

zegarowym lub asynchroniczne – bez sygna³u zegarowego.<br />

Interfejs synchroniczny mo¿e pracowaæ z jednym wspólnym<br />

sygna³em zegarowym lub z dwoma niezale¿nymi sygna³ami<br />

zegarowymi.<br />

Podstawowym zastosowaniem pamiêci FIFO s¹ systemy,<br />

w których dwie czêœci pracuj¹ce z ró¿nymi sygna³ami zegarowymi<br />

musz¹ wymieniaæ dane. Przyk³ad takiej aplikacji przedstawiono<br />

na rysunku 17.<br />

Pamiêæ dwuportowa jest podstawow¹ czêœci¹ pamiêci<br />

FIFO. Jest ona elementem asynchronicznym i mo¿e byæ dostêpna<br />

poprzez uk³ady logiczne pracuj¹ce z ró¿nymi sygna³ami<br />

zegarowymi.<br />

Pamiêæ FIFO z dwoma sygna³ami zegarowymi jest projektowana<br />

tak, ¿e jeden lub wiêcej bajtów jest zapisywanym z<br />

zegarem A, sygna³ z wskaŸnika zapisu jest przekazywany do<br />

czêœci pracuj¹cej z sygna³em zegarowym B poprzez uk³ad logiki<br />

taktowany wewnêtrznym zegarem. Taki proces pozwala<br />

uk³adowi odczytu z pamiêci okreœliæ moment, w którym dane<br />

zapisane mog¹ byæ odczytane. Uk³ad interfejsu odczytu pracuj¹cy<br />

z taktem B czyta dane dopiero po czasie zapewniaj¹cym,<br />

¿e dane zosta³y zapisane i uzyska³y stan stabilny.<br />

}<br />

<strong>SERWIS</strong> <strong>ELEKTRONIKI</strong> 12/2007 33<br />

OE<br />

Sygna³<br />

„pamiêæ pusta”

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!