Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 66

i i “LP_Tesi” — 2011/9/9 — 21:20 — page 66 — #66 i 4.2. MODULO TOP i 66 Implementazione Per iniziare a descrivere l’implementazione abbiamo bisogno innanzitutto di descrivere le variabili utilizzate, in Alg:(4.11) osserviamo: Algoritmo 4.11 Top: storage 1 2 3 4 5 6 7 8 9 FIFOF#(BitPD) sorter <- mkSizedFIFOF(width); FIFOF#(DispAddr) fout <- mkSizedFIFOF(width); SizedVector#(Processor_Ifc) processor <- replicateM(mkProcessor); RegPar free <- mkReg(unpack({’1})); RegBitR row <- mkReg(1); Reg#(BitPD) index <- mkReg(0); Reg#(BitPD) preIndex <- mkReg(0); Reg#(Bool) deque <- mkReg(False); Reg#(Bool) shift <- mkReg(False); sorter: FIFO che tiene traccia dell’ordine in cui i processor sono stati caricati, e quindi dell’ordine in cui, alla fine dell’elaborazione, devono essere letti; fout: FIFO per mantenere il modulo asincrono; processor: vettore di Processor; free: registro contenente tanti bit quanti sono i processor del vettore, registra nell’i-esima posizione lo stato dell’i-esimo processor, 1=libero 0=occupato; row: contatore di riga; index, preindex: rispettivamente indice del processor attivo e indice al ciclo di clock precedente, lo shift di un ciclo di clock è indispensabile per mantenere sincronizzati il metodo di put e quello di manager; Il primo metodo ad essere chiamato è put (r:13 Alg:4.12), questi non fa altro che inviare i pixel in arrivo sul processor che risulta attivo (un processor si dice attivo quando è pronto per essere scritto o è in fase di scrittura). Successivamente viene invocato il metodo manager (r:1 Alg:4.12) a cui è assegnata il compito di individuare quali processor sono liberi e quindi quale di questi può diventare “attivo”. La condizione di fire impone che l’indice di riga sia diverso da 0 (se la riga è uguale a 0 l’immagine è stata completamente elaborata) e che il flag deque (successivamente descritto) sia falso, questo succede solo quando un processor passa da attivo a pronto per la riscrittura. Il ciclo i i i i