Mașini controlate de fluxul de date

Mașinile care sunt controlate de fluxul de date aparțin clasei de arhitectură a fluxului de date. Punerea în aplicare model de calcul flux de date poate duce la cel mai înalt grad de paralelism, așa cum se folosește un principiu de control alternativ - fluxului de control care nu impune restricții suplimentare inerente rase considerate de mai sus principiul controlului de comandă.

În sistemele informatice controlate de fluxurile de date, mașinile cu flux de date nu există niciun concept al programului ca o secvență de comenzi și, prin urmare, nu există niciun concept al stării procesului. Fiecare instrucțiune este trimisă spre executare, de îndată ce sunt create condițiile de implementare. Dacă este disponibil un hardware suficient, un număr arbitrar de instrucțiuni gata de executat poate fi procesat în același timp. În fluxul de date, concurența nu este specificată explicit, iar instrumentele de procesare hardware trebuie să o aloce la timpul de execuție. Cu toate acestea, trebuie remarcat faptul că punerea în aplicare a principiului controlului fluxurilor ridică o serie de dificultăți, dintre care unele sunt de natură fundamentală. Acestea includ programul greoi, dificultatea procesării ciclurilor iterative, dificultatea de a lucra cu structurile de date.

Esența ideii modelului de flux de date este că programul este reprezentat de un grafic al fluxului de date, un exemplu al căruia este prezentat în Fig. 9.13.

Instrucțiunile de pe grafic corespund vârfurilor, iar arcele indicate de săgeți indică relațiile de prioritate. Punctul vârfului în care intră arcul este numit portul de intrare (sau intrare), iar punctul de ieșire este ieșit. Pe arce sunt transmise etichete, denumite date token (token). Vertex Trigger înseamnă executarea instrucțiunii. În acest caz, declanșarea are loc într-un moment arbitrar de timp când sunt îndeplinite condițiile corespunzătoare regulii de lansare. De obicei, se folosește o regulă de pornire strictă, în funcție de care declanșarea vârfului are loc atunci când există cel puțin un token în toate porturile de intrare. Triggerarea vârfului este însoțită de eliminarea unui token din fiecare port de intrare și introducerea a cel mult unui singur simbol de rezultat în porturile de ieșire. În funcție de arhitectura specifică a sistemului, porturile pot stoca unul sau mai multe jetoane și pot fi utilizate în conformitate cu regula FIFO sau în orice ordine.

Mașini controlate de fluxul de date

Fig. 9.13. Graficul fluxului de date și structura mașinilor de streaming

Graficul poate fi extins la un set arbitrar de procesoare. În cazul extrem, procesorul într-o mașină controlată de un flux de date poate efectua operații ca o spline circulară separată, așa cum se arată în Fig. 9.13.

Toată arhitectura mașinilor controlate de fluxul de date, din punctul de vedere al mecanismelor de organizare a reîntregirii, este de obicei împărțită în statică și dinamică. Cu alte cuvinte, ele folosesc fie un grafic static al fluxului de date, fiecărui vertex este reprezentat de o operație primitivă sau un grafic dinamic în care vertexul poate fi reprezentat prin apelarea unei funcții arbitrare care poate fi ea însăși reprezentată printr-un grafic. În arhitecturile dinamice, efectul unui grafic dinamic care se dezvoltă asupra funcției chemate este de obicei realizat prin apariția unui context de informație suplimentar în etichetă.

Au fost create mai multe mașini, gestionate de fluxul de date, cu arhitecturi statice și dinamice. Cele mai renumite sunt Deniz multiprocesor (Institutul de Tehnologie din Massachusetts), sistemul DDP și LAU (Centrul de cercetare CERT), descrise în detaliu în literatură.

Dezvoltatorii arhitecților sistolici și-au stabilit sarcina de a obține un sistem care să combine avantajele prelucrării transportorului cu matricea. Inițial, s-au dezvoltat arhitecturi sistolice pentru sisteme computaționale foarte specializate. Cu toate acestea, în viitor, algoritmii corespunzători au fost găsiți pentru o clasă destul de largă de probleme, permițând implementarea principiilor procesării sistolice.

Principiul de bază al tensiunii arteriale sistolice de procesare este de a efectua toate etapele de prelucrare a fiecărui element de date preluate din memorie, înainte de a re-introduse în memoria de rezultatul acestei prelucrări. Acest principiu este pus în aplicare matrice a tensiunii arteriale sistolice de elemente de prelucrare, în care elementele de prelucrare individuale sunt combinate între ele prin legături directe și transportoare formarea regulată. Astfel, pot fi formate mai multe fluxuri operanzilor, fiecare dintre acestea fiind formate din operanzi sursă (structuri de date, elemente, stocate în memorie), rezultatele intermediare obținute prin efectuarea operațiunilor elementare în fiecare element de procesare și elementele structurii rezultate. Fluxurile de date sincronizează sistemul de semnale de ceas comune tuturor elementelor procesorului. In timpul perioadei de ceas toate elementele funcționează în continuare scurtă secvență de comenzi (sau comandă).

Fig. 914 ilustrează un sistem sistolic pentru calcularea unei "convoluții a unei funcții" utilizând o regiune liniară simplă. În timpul intervalului de ceas, datele de intrare sunt avansate spre dreapta, înmulțite cu greutatea locală și acumulate la ieșire în ordinea succesiunii.

Mașini controlate de fluxul de date

Fig. 9.14. Un exemplu de construire a unei structuri sistolice

Arhitectura sistolică are următoarele avantaje:

• Accesul la memorie este minimizat, ceea ce vă permite să potriviți viteza memoriei cu viteza de procesare;

• Simplifică rezolvarea problemelor I / O din cauza conflictelor reduse la accesarea memoriei;

• Capacitățile tehnologice ale VLSI sunt utilizate în mod eficient datorită regularității structurii matricei sistolice.

Cu toate acestea, pentru a realiza aceste beneficii trebuie să se găsească pentru fiecare sarcină Algoritmii sistolic corespunzătoare, care pot fi implementate pe o structură sistolică a sistemului. există astfel de algoritmi astăzi pentru o gamă largă de sarcini, printre care sarcinile de procesare numerice de prelucrare a semnalului, și simboluri; inversare matrice și multiplicare, soluția sistemelor liniare, discrete transformata Fourier codare și decodare a secvențelor de numere, și așa mai departe. d. Majoritatea acestor algoritmi se reduce la o relație de recurență a unui anumit tip. În funcție de tipul de algoritm sistolic, adică. E. Numărul operanzi implicate în operațiunile primitive, aceste tipuri de operații elementare, un M-secvență de execuție a acestora sunt selectate de procesare a tipului de element și structura regulată a conexiunilor locale între ele. configurații tipice includ matrici sistolice: liniara Pentru a implementa filtrarea în algoritmi de procesare a semnalelor, comparând coardele caracterelor în bazele de date de procesare; (Figura 9.14.) rectangular, multiplicare matrice, găsirea DFT bidimensională; și hexagonal, pentru efectuarea operațiunilor de pe matrici rashchenija pentru rezolvarea sistemelor de ecuatii liniare și t. d.

Cu toate acestea, nu toți algoritmii pot fi redusi la sistolici și, în multe cazuri, este necesar să se abandoneze algoritmi cu o mai mică complexitate în favoarea unor algoritmi mai complexi, dar obișnuiți, care să îndeplinească cerințele procesării sistolice.

Articole similare