«« ( Date ) »» // «« ( Thread ) »» // vlsi-nastava - 2007

Re[2]: Blokovski ciklusi

by markos84
utorak, 30. januar 2007 - 01:40.

Mislim da si pogresno protumacio zadatak. Ipak je receno da treba da
postoji bafer za slanje, a u tvom resenju nigde nema baferisanja podatka.
Ti samo predas podatak transmitteru i cekas da ga on posalje, pa tek onda
po potrebi predajes novi podatak.
Mozda moze i tako, ne znam, treba videti sa asistentom.

PS. Greskom sam poslao prvi mail direktno tebi a ne na listu. Evo sad
saljem na listu...


On Tuesday, January 30, 2007, 1:19:58 AM, Rade wrote:
> Ja nemam taj registar, odnosno, transmitter iz njega salje. Nisam
implementirao duplo baferisanje. :(

> Cini mi se da je ranije bila neka diskusija, da je ta implementacija
opciona. Posto sam tek pocinjao domaci i ionako mi je sve bilo
komplikovano
> nisam to uradio, a sada je dosta velika izmena. Nadam se da to nije bio
imperativ, jer se tim ne dobija bog zna sta u performansama. Sto bi
rekao
> Sofronije: "...dva puta nista je nista, crva nije ni bilo...".

> фПЛПН 30.1.07., markos84@verat.net
<markos84@verat.net> &#1112;&#1045;
&#1054;&#1041;&#1056;&#1080;&#1059;&#1041;&#1055;:
> Ali mi imamo transmit buffer, neki ga zovu i bafer za slanje, neki
> registar za podatke koji se salju. ;)
> Citat iz teksta zadatka:
> Sistem treba da ima jedan kontrolni registar, jedan statusni registar,
> jedan registar za podatke koji se salju i jedan FIFO bafer za podatke
> koji se primaju.

> To prakticno znaci da ti mozes 2 podatka da posaljes u bloku, tj. prvi da
> prosledis direktno u transmitter a drugi u bafer za slanje.
> Naravno, u opisanoj situaciji je neregularno pokusati i 3. upis (u bloku)
> u bafer za slanje, posto je sigurno tada bafer zauzet. Tada postavljas
> odgovarajuci TAG_O i retry signal (ne znam tacno kako se zove u wb
> interfejsu). Isto reagujes i pri svakom drugom pokusaju upisa u pun bafer
> za slanje.
> E sad, ti mozes da realizujes sistem i tako da svaki podatak prvo mora da
> prodje kroz bafer za slanje pa tek onda da ide u transmitter kada je on
> spreman, ali u tom slucaju nikada ne postoji mogucnost upisa 2 podatka za
> redom (u bloku) u bafer, pa cak ni kada je transmitter spreman za slanje.
> Naravno, kao i u prvoj varijanti, u slucaju da master salje podatak u
> bafer, a on je pun, opet reagujes kako je propisano, tj. postavljas TAG_O
> i retry.

> On Tuesday, January 30, 2007, 12:36:57 AM, Rade wrote:
>> Imam problema sa razumevanjem nacina rada blokovskih ciklusa. Molim Vas
> da mi pomognete da razjasnimo kako stvari stoje.
>> Koliko sam shvatio, blokovski upis radi tako sto, MASTER postavi podatke
> na magistralu podatakai STB_O='1'. SLAVE to registruje na sledecu
>> uzlaznu ivicu i postavi ACK, posle te uzlazne ivice kao signal da moze
> da primi sledeci podatak. MASTER na sledecu uzlaznu registruje ACK i
>> postavlja novi podatak... Ako SLAVE hoce da uspori malo, on po
> prihvatanju podatka obara ACK, kao signal da MASTER treba malo da
> saceka. MASTER i
>> dalje proverava ACK na uzlazne ivice, drzeci non-stop podatke na
> magistrali. Kad SLAVE stigne, on ocita te podatke i opet postavi ACK da
> moze da
>> primi novi podatak. Nadam se da nisam zbunio.

>> E sad, ako je ovo prethodno OK: Nas uredjaj je mnogo spor (da bi poslao
> 1 32b podatak pri baud=4 treba mu 34*4=136 taktova. Da li mi treba da
>> drzimo MASTERA na magistrali svih tih 136 taktova? Ne vidim drugi nacin
> da se realizuje blokovski upis u nasem slucaju kada nemamo "transmitter
>> buffer" i mislim da on ovde sluzi samo da bi mi odradili sve, a da u
> principu nema smisla mnogo. Da li sam u pravu?

>> Sto se tice blokovskog citanja, to mozemo lepo da radimo s' obzirom da
> imamo FIFO bafer. Zar ne?

>> Pozdrav i hvala unapred na pomoci.

>> Rade



> --
> Pozdrav,
> Marko                          e-mail: markos84@verat.net


--
Pozdrav,
Marko e-mail: markos84@verat.net