Sunteți pe pagina 1din 10

1. Sisteme reconfigurabile de calcul.

1.1. Introducere.

n prezent, cerinele privind calculul de nalta performan, pentru rezolvarea problemelor din cele mai multe domenii ale activitii social-economice, au devenit extreme de presante. Astfel, se pot meniona problemele de optimizare pe scar larg, simularea n fizica i tiinta pmntului, bioinformatica, prelucrarea semnalelor etc. n acest context, procesoarele programate prin software, cu toate perfecionrile aduse de proiectani, nu ofer performana necesar. Spre exemplu, viteza de execuie a instruciunilor prezint limitri, iar procesoarele universale cu nuclee multiple, pentru o performan ridicat, impun ca algoritmii de prelucrare s aibe fire de execuie caracterizate printr-o granularitate grosier, ceea ce face ca schimburile de date ntre firele de execuie s fie relativ rare. Actualmente, dezvoltarea tehnologiei mijloacelor automate de calcul ofer mai multe ci de implementare/execuie a algoritmilor: procesoare programate prin software; structuri hardware fixe, materializate prin circuite integrate specifice aplicaiei (ASIC); structuri hardware reconfigurabile, bazate pe arii de pori reprogramabile (FPGA). Procesoarele programate prin software au avantajul unei mari flexibiliti, prin posibilitatea de a descrie algoritmii cu ajutorul unui set de funcii primitive, numite instruciuni. Descrierea algoritmului poate fi mai mult sau mai puin concis, in funcie de arhitectura setului de instruciuni, de expresivitatea acestora. Dezavantajele acestui mod de implementarea a algoritmilor sunt legate de o limitare a vitezei datorit operrii secveniale, de setul fix de instruciuni, de execuia interpretativ a acestora etc. La baza procesoarelor programate prin software se afl maina von Neumann (vN), care va face obiectul paragrafului 1.2. Structurile hardware fixe (ASIC) sunt caracterizate printr-o vitez relativ mare de operare, obinut prin exploatarea paralelismului intrinsec al algoritmului. n acelai timp, ele sunt extrem de eficiente sub aspectul indicatorului cost/performan, n aplicaiile care reclam un numr mare de circuite ASIC, similare ca tip. Pe de alt parte, nu pot fi modificate dup fabricaie i, n general, au un cost rezidual ridicat. Pornind de la posibilitile de implementare ale algoritmilor: prin software sau prin hardware (fix/reconfigurabil), se contureaz dou modaliti de efectuare a calculelor: temporal i spaial. Pentru exemplificare se presupune execuia urmtorului fragment de program pe un calculator convenioanal i ntr-o structur ASIC (fig.1.1.).
1

(a) soluia temporal/software.

(b) soluia spaial.

Fig.1.1. Fragment de program pe un calculator vN (a) i ntr-o structur ASIC (b). Timpul total de execuie pe un calculator vN este: 3*tinstruciune , care poate cuprinde mai multe cicluri de ceas. Structura ASIC efectueaz calculele ntr-un interval de timp egal cu ntrzierea cea mai mare n propagarea semnalului de la intrare la ieire. Structurile hardware reconfigurabile acoper intervalul plasat ntre implementrile algoritmilor prin software i cele prin structuri ASIC, fiind mai performante dect primele i mai flexibile dect cele din urm, datorit utilizrii dispozitivelor reprogramabile. Pentru ilustrare, se presupune un ir de date: r1, r2, r3, r4, r5, r6, asupra crora se execut urmtoarele operaii: r7 (r1 + r2); r8 (r3 - r4); r9 (r5 + r6); r10 (r8 r9); r11 (r7 + r8). Ca i n cazul soluiei ASIC, calculele se desfasoar dup cum se arat n figura 1.2. n cazul sistemelor reconfigurabile, ansamblele de circuite care implementeaza funciile: add, sub, cmp sunt reconfigurabile static sau dinamic. Cheia accelerarii calculului rezid n abilitatea de a extrage paralelismul/concurena din descrierea algoritmului.

(a) soluia temporal/software.

(b) soluia spaial.

Fig. 1.2. Modaliti de efectuare a calculelor.

1.1.

Calculatorul von Neumann.

ntr-un studiu [1] asupra automatizrii calculului, aprut n 1947, matematicianul von Neumann a demonstrat c un calculator, cu o structur relativ simpl, poate executa orice program, care descrie un algoritm de calcul, sub controlul unei uniti de comand, fr a fi necesare modificri de natur hardware. Structura calculatorului vN (fig.1.3.) posed o memorie, care const n cuvinte binare cu lungime constant, memorie utilizat pentru stocarea programului i a datelor, o unitate de comand, care nglobeaz un contor al programului (CP), pentru controlul execuiei programului, i o unitate aritmetic-logic (UAL), pentru calcule aritmetice i logice. ntre componentele funcionale ale unui calculator vN se regsesc i unittile de intrare/ieire (UI/E).

Fig.1.3. Structura calculatorului von Neumann.

Un algoritm de calcul este codificat, cu ajutorul setului de instruciuni al calculatorului, sub forma unui program ale crui instruciuni sunt executate secvenial.
3

Calculatoarele vN moderne, n special cele de tip RISC (Reduced Instruction Set Computer), posed, n cadrul UCP, un numr de cel putin 32 registre generale (RG), cu un port de intrare i dou porturi de ieire. Operaiile aritmetice-logice se execut cu operanzi extrai din RG, rezultatul fiind stocat tot n RG. Singurele instruciuni, care privesc memoria, sunt de ncarcare (Load) a unui RG i Stocare (Store) a coninutului unui RG n memorie. O analiz a derulrii n timp a instruciunilor va evidenia 5 faze posibile: Citete instruciunea (Instruction Fetch IF); Decodific instruciunea/Citete registrele generale (Instruction Decode ID); Execut instruciunea/Calculeaz adresa (Instruction Execute EX); Memoreaz rezultatul n Memoria de date (Store Memory M); Scrie rezultatul n registrul general (Write back - WB). Astfel, o instruciune se deruleaz n urmatoarele cicluri: IF, ID, EX, M i W. Avantajul principal al calculatorului vN const n flexibilitatea de a executa orice program bine codificat. Dezavantajele, care se pot evidenia, constau: n viteza de execuie sczut, datorit operrii secveniale, a diferenei mari ntre ciclul procesorului i ciclul de lucru al memoriei, i n ineficiena utilizrii resurselor pe parcusul derulrii instruciunilor. Perfecionrile aduse, pentru a contrabalansa dezavantajele menionate, vizeaz : utilizarea unui ceas mai rapid, operarea n band de asamblare (BA), memorii cache, citirea anticipat a instruciunilor etc. Arhitectura unui calculator se refer la modul n care programatorul percepe calculatorul pentru programarea acestuia. Calculatoarele convenionale, care opereaz secvenial, sub controlul fluxului de instruciuni, se pot caracteriza prin dou arhitecturi : von Neuman si Harvard. Arhitectura vN posed o singur memorie pentru instruciuni i date, n timp ce arhitectura Harvard dispune de memorii separate pentru program i date, memorii care pot fi accesate n paralel. n figura 1.4. se prezint modalitile de execuie a instruciunilor n calculatoarele actuale: secvenial, n banda de asamblare, pe arhitectut von Neumann i n banda de asamblare, pe arhitectur Harvard. La execuia secvenial, dac se noteaz: tciclu = durata ciclului de execuie, de regul egal cu perioada ceasului, pentru execuia unei instruciuni este necesar un timp tinstruciune = 5*tciclu, iar pentru execuia a 4 instruciuni 20*tciclu. In condiiile benzii de asamblare i ale arhitecturii vN, o instruciune necesit un timp de execuie egal cu 5*tciclu. n mod ideal (fr hazarduri) 4 instruciuni n secven se execut n 8*tciclu.. Dac prima instruciune din secven este Load, atunci cea de-a patra instruciune trebuie s fie ntarziat cu un ciclu, deoarece apare un hazard structural cauzat de existena unei singure

Fig. 1.4. Modaliti de execuie a instruciunilor n calculatoarele actuale. memorii: instruciunea 1 ncearca s citeasc data din memorie, n timp ce instruciunea 4 urmeaz s fie citit. Astfel, n cazul dat, cele 4 instruciuni se execut n 9*tciclu.. Hazardul structural este nlturat, n cazul de fa, dac se utilizeaz o maina Harvard n care conflictele de acces la memorie pentru instruciuni i date sunt absente. Cele 4 instruciuni se execut n 8*tciclu..

1.2.

Noi paradigme de calcul.

Cerinele tot mai ridicate, privind performanele sistemelor convenionale de calcul, n legtur cu creterea vitezei de operare, reducerea puterii disipate i miniaturizarea, au condus, n ultimele decenii, la elaborarea a noi paradigme de calcul, facilitate de progresele nregistrate n plan tehnologic. n legatur cu dezvoltatrea tehnologiei circuitelor electronice, s-a constatat o periodicitate de 10 ani n ceea ce privete apariia unor noi familii de circuite, cu noi funcionaliti i cu performane superioare. n figura 1.5. se prezint diagrama conceput de T. Makimoto [2], din care rezult c, ncepnd cu anul apariiei circuitelor integrate TTL, 1957, s-au succedat 5 valuri tehnologice: TTL, MSI/LSI, P/memorii integrate, ASIC, FPGA. n prezent se consider c are loc o trecere la Sistemele integrate pe o Pastil (SoC) i la calculul reconfigurabil de granuralitate grosier. Influena tehnologiei asupra structurilor de calcul i asupra progrmarii acestora s-a concretizat prin: structuri fixe/structuri variabile i prin progrmari: rigid, procedural i structural.
5

Fig. 1.5 Diagrama lui T. Makimoto, privind evoluia circuitelor electronice. Avnd n vedere c modelul convenional al mainii von Neumann, orientat pe fluxul de instruciuni, prezint limitri serioase, nu numai n ceea ce privete viteza de operare [3], [4], cercetrile n domeniu s-au orientat ctre modele neconvenionale de maini i, in special, ctre maina bazat pe fluxul de date/data stream [5]. n ultimul deceniu, datorit progreselor ntregistrate n domeniul circuitelor reprogramabile, de tip FPGA, dezvoltrile de noi echipamente de calcul, n condiii industriale, au avut n vedere soluii de genul maini von Neuman n cooperare cu acceleratoare [6] non von Neumann (fig.1.6.).

Fig.1.6. Modelul de baz care, n condiii industriale, nlocuiete modelul von Neumann (vN). O clasificare a paradigmelor de calcul, n conformitate cu stadiul actual al tehnologiei i al cunotintelor n acest domeniu, este prezentat n Tabelul 1.1, n care se regsesc termeni ce vor fi explicai n cele ce urmeaz.

Tab.1. 1.

Clasificarea paradigmelor de calcul (Hartenstein[9])

Noiunea morphware (Soft Hardware)

a fost introdus la sfritul deceniului 9, n cadrul

cercetrilor privind Arhitecturile Polimorfice de Calcul, desfurate sub egida Ageniei pentru Proiecte Avansate de Cercetare, n domeniul Apararii (DARPA). Spre deosebire de de hardware-ul clasic, morphware-ul poate fi reconfigurat cu ajutorul unui cod structural (cod de configurare), numit configware, stocat in memoriile RAM ascunse ale structurii FPGA i complet diferit de softwareul clasic. Componentele hardware rGA, (r)DPU, (r)DPA semnific: Aria de Pori reconfigurabil (FPGA), Unitatea de Prelucrare a Datelor nereconfigurabil/reconfigurabil i Datelor nereconfigurabil/reconfigurabil. n timp ce Unitatea Central de Prelucrare (UCP) convenional posed un Contor al Programului (CP), care furnizeaz adresa pentru citirea instruciunii urmtoare, n vederea execuiei acesteia, (r)DPU i (r)DPA nu posed CP, procesul de execuie fiind amorsat de sosirea datelor, sub aciunea unor generatoare de adrese, localizate n memorie (fig.1.7). Aria de Prelucrare a

(a)

(b)

Fig.1.7.Structura mainii convenionale (a) i structura mainilor bazate pe fluxul/fluxurile de date (b).

Flowware-ul, asociat cu Fluxul de date/Data stream, n ariile sistolice de prelucrare a datelor, definete planificarea sosirii datelor la porturile de intrare ale (r)DPA i ale plecrii rezultatelor din porturile de ieire ale acesteia (fig.1.8.). Fluxul de date implic o execuie controlat de transportul datelor, n contrast cu execuia comandat de fluxul de instruciuni. Antimaina [7], [8] este bazat pe fluxul de date i utilizeaz DPU, fr secveniator, sau DPA, fr secveniatoare. Secveniatoarele, corespunztoare modelului antimainii , se gsesc n memorie (nu la nivelul UCP), sub forma de generator/generatoare de adrese. La o maina convenional nucleul [9], [10] l constituie UCP, n jurul cruia graviteaz fluxul de instruciuni, n timp ce, n cazul antimainii nucleul l reprezint DPU/DPA n jurul crora graviteaz fluxul/fluxurile de date, ceea ce constituie o explicaie a termenului de antimain. In cazul antimaii fluxurile de date trebuie s fie programate, pentru a se preciza care din date i la ce moment de timp trebuie s soseasc la un port DPU sau la anumite porturi ale DPA. Un astfel de program-sursa, orientat pe fluxul de date, poarta numele de flowware, dupa cum s-a artat mai sus. In calculul paralel, granularitatea unui algoritm semnific raportul ntre timpii de calcul i cei necesari comunicaiilor.

Paralelismul cu granularitate fin este caracterizat prin task-uri individuale mici, cu coduri de execuie de dimensiuni reduse si cu timpi de execuie, de asemenea, mici. Datele sunt transferate relativ frecvent ntre procesoare i constau n unul sau cteva cuvinte de memorie.

Fig.1.8. Fluxurile de date i porturile de I/E pentru o structur DPA Paralelismul cu granularitate grosier se manifest n cazul comunicaiilor de date cu frecven relativ mic, dup efectuarea unor mari cantiti de calcule. Granularitatea fin prezint un mare potenial de paralelism i de accelerare a calculului, nsoit de o regie (overhead) apreciabil datorat, att frecvenei ridicate a comunicaiilor, ct i sincronizrii acestora. n calculul reconfigurabil i calculul de nalta performan termenii de mai sus trebuie asociai i cu limea cii de date. Utilizarea unor uniti de prelucrare pe un bit, de exemplu, ca n Blocurile Logice Configurabile, din FPGA, se situeaz n zona calculului cu granularitate fin sau n cea a reconfigurrii cu granularitate fin. Utilizarea unor ci de date cu laime mare, de exemplu de 32 de bii, ca n cazurile UCP-microprocesor sau a unitilor DPU, a ariilor DPA, controlate de fluxul de date, este o caracteristic a calculului cu granularitate grosier sau a reconfigurrii cu granularitate grosier [11].

Bibliografie.
[1] Goldstein, H. von Neumann, J. Burks, A.: Report on the mathematical and logical aspects of an electronic computing instrument; report, Princeton Institute of Advanced Study, 1947. [2] Makimoto , T. Field-Programmable Logic and Applications: The Roadmap to Reconfigurable Computing . 10th International Conference, FPL 2000 Villach, Austria, August 2730, 2000 Proceedings. [3] Backus, J.: Can programming be liberated from the von Neumann style?; Communications of the ACM, August 1978, 20(8). [4] Arvind et al.: A critique of Multiprocessing the von Neumann Style; Proc. ISCA 1983. [5] Bobda, C.: Introduction to Reconfigurable Computing Systems; Springer-Verlag, 2007. [6] Hartenstein R. (invited chapter): Basics of Reconfigurable Computing; in: J. Henkel, S. Parameswaran (editors): DesigningEmbedded Processors. A Low Power Perspective; Springer Verlag, March 2007. [7] Hirschbiel, A. et al.: A Flexible Architecture for Image Processing; Microprocessing and Microprogramming, vol 21, 1987. [8] Weber, M. et al.: MOM - Map Oriented Machine; in: E. Chiricozzi (ed.): Parallel Processing and Applications, North-Holland, 1988. [9] Hartenstein, R.. Data-stream-based Computing, Enabling Technology for Reconfigurable Computing. ENE, UnB, Seminar, Brasilia. Nov. 22, 2002. [10] Hartenstein, R.. The von Neumann Syndrome. Invited paper, Stamatis Vassiliadis Symposium The Future of Computing, Delft, The Netherlands, Sept. 28, 2007. [11] Petrescu, I. Contribuii la realizarea unor structuri de calcul performante, bazate pe circuite reconfigurabile. Lucrare de doctorat. Universitatea Politehnica Bucureti, 2009.

10

S-ar putea să vă placă și