minimizarea starilor

Upload: nastase-mihai

Post on 07-Jul-2018

262 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Minimizarea starilor

    1/47

    UNIVERSITATEA TEHNIC! din CLUJ-NAPOCAFACULTATEA de AUTOMATIC! "i CALCULATOARECATEDRA de CALCULATOARE

    Sistem CAD pentrusinteza sistemelor numerice

    Referat de doctorat

      Conduc#tor "tiin$ific, Doctorand,

    Prof. Dr. Ing. PUSZTAI Kalman ".l. ing. BARUCH Zoltan-Francisc

  • 8/18/2019 Minimizarea starilor

    2/47

    Sistem CAD pentru sinteza sistemelor numerice   %

    Cuprins

    %. Metodologii de proiectare........................................................................................... 2

    2. Sisteme de sintez!........................................................................................................ 8

    2.%. Sistem generic de sintez# ....................................................................................... 8

    2.2. Sinteza la nivel de sistem..................................................................................... %0

    2.3. Sinteza la nivel de cip .......................................................................................... %2

    2.4. Sinteza logic# "i secven$ial#................................................................................. %5

    2.5. Proiectarea fizic#.................................................................................................. %8

    2.6. Baza de date a sistemului..................................................................................... %9

    2.7. Baza de date a componentelor ............................................................................. 22

    2.8. Mediul de conceptualizare ................................................................................... 24

    3. Rafinarea specifica"iilor ........................................................................................... 29

    3.%. Introducere ........................................................................................................... 29

    3.2. Rafinarea grup#rii variabilelor............................................................................. 29

    3.2.%. Amplasarea variabilelor în memorie............................................................. 30

    3.2.2. Translatarea adreselor de memorie ............................................................... 3%

    3.3. Rafinarea canalelor "i a magistralelor.................................................................. 33

    3.3.%. Parametrii canalelor "i magistralelor............................................................. 33

    3.3.2. Definirea problemei ...................................................................................... 343.3.3. Generarea magistralei ................................................................................... 34

    3.3.4. Generarea protocolului.................................................................................. 40

    4. Concluzii .................................................................................................................... 43

    Bibliografie .................................................................................................................... 46

  • 8/18/2019 Minimizarea starilor

    3/47

  • 8/18/2019 Minimizarea starilor

    4/47

    Sistem CAD pentru sinteza sistemelor numerice 3

    lea"i prelucr #ri. Se va presupune c# descrierea de intrare const# numai din asign#ri alevariabilelor utilizând operatori aritmetici. Aceast# descriere este compilat# într-un graf al fluxului de date (GFD) care identific# în mod explicit dependen$ele de date (Figura#(a)). Se presupune c# apar noi date în fiecare ciclu de ceas, "i fiecare itera$ie a buclei se

    execut# în dou# cicluri de ceas. Se presupune de asemenea c# fiecare opera$ie este exe-cutat# într-un ciclu de ceas de o unitate func$ional# cu o singur # func$ie, toate unit#$ilefunc$ionale "i registrele au acela"i num#r de bi$i, iar num#rul de unit#$i func$ionale nueste limitat.

    Resursele hardware "i restric$iile de proiectare fiind specificate, se pot aplica al-goritmii de planificare "i alocare. Ace"ti algoritmi adnoteaz# graful fluxului de date cuatribute suplimentare pentru a indica asignarea la st#ri "i componente. Fiecare operator este asignat la o stare de control "i la o unitate func$ional# pentru a executa opera$ia înciclul de ceas dat. Fiec#rei muchii din graful fluxului de date îi este asignat un latch, un

    registru sau o conexiune. Graful adnotat, indicat în Figura #(b), este utilizat pentru ge-

    Figura #. Sistem simplu de sintez#: (a) GFD; (b) GFD adnotat; (c) structurac#ii de date; (d) sistemul de sintez#.

  • 8/18/2019 Minimizarea starilor

    5/47

    Sistem CAD pentru sinteza sistemelor numerice 4

    nerarea c#ii de date, prezentat#  în Figura #(c). De notat c# graful adnotat "i calea dedate ob$inut# au aceea"i topologie, ceea ce indic# simplitatea arhitecturii destina$ie "i aalgoritmilor de asignare.

    Sistemul de sintez#  pentru acest exemplu simplu (Figura #(d)) va constadintr-un compilator pentru conversia descrierii func$ionale de intrare în reprezentareaGFD, un planificator pentru asignarea st#rilor de control, un alocator pentru selec$ia "iasignarea unit#$ilor func$ionale la opera$ii "i a unit#$ilor de memorie la valori ale datelor,"i un generator al listelor de conexiuni pentru generarea listei de conexiuni a c#ii de da-te, care pot fi utilizate de alte sisteme. Lista de conexiuni a c#ii de date con$ine compo-nente RT interconectate, "i anume un sumator, un sc#z#tor, un circuit de înmul$ire "iregistre. Deoarece s-a presupus c# fiecare unitate execut# o singur # func$ie "i are acela"inum#r de bi$i, se poate presupune de asemenea c# un singur proiectant va proiecta în

     prealabil toate unit#$ile func$ionale "i de memorie pentru diferite tehnologii, acestea fi-ind memorate într-un set de fi"iere accesibile de ceilal$i proiectan$i. Fiecare fi"ier va

    con$ine dimensiunile fizice ale unit#$ilor pentru amplasare "i pozi$ia porturilor de I/E pentru rutare. Astfel, etapa de proiectare fizic# va consta din executarea amplas#rii "irut#rii pentru lista de conexiuni a c#ii de date, utilizând dimensiuni ale unit#$ilor "i lo-ca$ii ale porturilor predefinite.

    Sistemul de sintez# prezentat în Figura #(d) are numeroase limit#ri care îi res-trâng utilitatea în situa$iile practice. În primul rând, presupunerea c#  toate unit#$ile auacela"i num#r de bi$i "i aceea"i întârziere de propagare este prea restrictiv#. Un proiec-tant are de obicei posibilitatea de a alege între unit#$i cu mod de func$ionare, întârzieride propagare "i num#r de bi$i diferi$i. În al doilea rând, stilul de proiectare de tipul flu-xului de date, în care num#rul unit#$ilor func$ionale este egal cu num#rul operatorilor 

    din descrierea func$ional#, este costisitor pentru proiectele obi"nuite, cu excep$ia celor foarte simple. Pe de alt# parte, o arhitectur # destina$ie cu un num#r foarte redus de uni-t#$i func$ionale necesit# o unitate de control pentru a asigura secven$ierea corect# a exe-cu$iei opera$iilor "i partajarea corespunz#toare a unit#$ilor func$ionale. Pentru oasemenea arhitectur #, trebuie s# se utilizeze o metodologie de proiectare diferit#. În altreilea rând, presupunerea c#  rata datelor de intrare "i de ie"ire este aceea"i cu rata deintrare "i de ie"ire a c#ii de date, este de asemenea prea restrictiv#. Datele pot proveni dela diferite surse, într-o ordine diferit# "i momente de timp diferite, "i nu sunt sincroni-zate întotdeauna cu ceasul c#ii de date. Din acest motiv, sunt necesare cozi de intrare "ide ie"ire sau memorii, pentru a sincroniza "irurile de date cu rate "i protocoale diferite.

    În scopul prezent#rii unui sistem de sintez# pentru o clas# mai larg# de arhitec-turi, se va considera acela"i exemplu, dar cu restric$ii de proiectare diferite. Se va impu-ne ca opera$ia  y = (a + b) * (c - d)  s#  fie executat#  într-un timp de 300 ns, utilizândnumai dou# unit#$i func$ionale, un circuit de înmul$ire "i un sumator/sc#z#tor, cu întâr-zieri de propagare mai mici de %00 ns fiecare.

    Graful fluxului de date pentru calculul valorii y este indicat în Figura 2(a). Gra-ful poate fi planificat în trei st#ri de control, utilizând circuitele date. Deoarece se potreutiliza registrele r 2 "i r 4, vor fi necesare în final numai cinci registre, în compara$ie cu"apte registre utilizate în Figura #(b) "i (c). Vor fi necesare în schimb patru multiple-xoare 2:%. Graful adnotat este prezentat în Figura 2(b), iar structura circuitului este pre-zentat# în Figura 2(c).

  • 8/18/2019 Minimizarea starilor

    6/47

    Sistem CAD pentru sinteza sistemelor numerice 5

    Pe lâng# calea de date, circuitul final necesit# o unitate de control pentru selec$ia"i înc#rcarea valorilor în registre "i pentru selec$ia opera$iilor executate de unit#$ile fun-c$ionale. Unitatea de control  are de asemenea rolul de a înc#rca datele din unitatea  Me-morie1 "i de a memora datele în unitatea Memorie2, "i necesit# o alt# cale de date pentrugenerarea adreselor de înc#rcare "i memorare. Utilizarea resurselor este indicat#  în Fi-gura 2(d). Fiecare opera$ie necesit# pentru execu$ie un ciclu de ceas, inclusiv pentruînc#rcarea "i memorarea datelor, iar fiecare itera$ie necesit# cinci cicluri de ceas. O nou#itera$ie este lansat# la fiecare dou# cicluri de ceas. Astfel, sunt necesare 2(n-%)+5 cicluride ceas pentru a termina n itera$ii.

    Figura 2. Un exemplu cu 3 opera$ii: (a) GFD; (b) GFD adnotat; (c)implementarea ASFD; (d) utilizarea resurselor; (e) îmbun#t#$irea utiliz#rii

    resurselor.

  • 8/18/2019 Minimizarea starilor

    7/47

    Sistem CAD pentru sinteza sistemelor numerice 6

    Se observ# c# unitatea aritmetic# "i logic# este o resurs# critic#, fiind utilizat# înfiecare ciclu de ceas, în timp ce circuitul de înmul$ire "i fiecare din cele dou# memoriisunt utilizate numai într-unul din dou# cicluri de ceas. Se poate realiza un compromisîntre gradul de utilizare al unor componente "i spa$iul de pe cip. De exemplu, se poate

    înlocui circuitul de înmul$ire cu unul mai lent, care necesit# dou# cicluri de ceas, dar unspa$iu mai redus. Similar, se pot utiliza memorii mai lente, sau acestea se pot înlocui cumemorii având un num#r mai mic de porturi sau un num#r mai mic de bi$i pe cuvânt. Deexemplu, unitatea  Memorie1, cu patru porturi de câte %6 bi$i, poate fi înlocuit#  cu omemorie cu dou# porturi de câte %6 bi$i. Deci, vor fi necesare dou# cicluri de ceas pen-tru a furniza patru operanzi de câte %6 bi$i. Se poate utiliza un singur port de %6 bi$i

     pentru unitatea  Memorie2, fiind necesare dou# cicluri de ceas pentru memorarea rezul-tatului de 32 bi$i. Astfel, dac# se înlocuie"te circuitul de înmul$ire "i ambele memorii cucomponente care necesit# dou# cicluri de ceas în loc de un ciclu, toate componentele vor fi utilizate complet (Figura 2(e)). Timpul total de execu$ie a buclei va cre"te numai cu

    trei cicluri de ceas, fiind de 2(n-%)+8 cicluri de ceas pentru n itera$ii.Exemplul precedent demonstreaz#  faptul c#  sinteza de nivel înalt genereaz#  odescriere structural# care con$ine componente ca unit#$i aritmetice "i logice, circuite deînmul$ire, multiplexoare, registre, memorii "i controlere. Pentru fiecare din aceste com-

     ponente, trebuie s# se realizeze sinteza utilizând tehnici de sintez# logic# sau secven$ial# pe baza descrierii componentelor memorate într-o baz# de date a componentelor (BDC).Aceast# baz# de date poate con$ine de asemenea dimensiunea fiec#rei componente nece-sar #  pentru opera$ia de amplasare, "i pozi$ia fiec#rui pin al componentelor necesar #

     pentru rutarea în cadrul proiect#rii fizice. Figura 3 prezint# o schem#-bloc a sistemuluide sintez# care con$ine o baz# de date a componentelor.

    Figura 3. Sistem de sintez# cu o baz# de date a componentelor.

  • 8/18/2019 Minimizarea starilor

    8/47

    Sistem CAD pentru sinteza sistemelor numerice 7

    Un proiect poate fi îmbun#t#$it în mod iterativ prin alegerea unei alte arhitecturidestina$ie, a unei alte topologii sau a unor caracteristici diferite ale componentelor. Înultimul exemplu, îmbun#t#$irea s-a realizat prin cre"terea gradului de utilizare a unor componente. Proiectantul estimeaz# de obicei calitatea proiectului "i efectueaz# modifi-

    c#ri ale stilului de proiectare "i ale restric$iilor de proiectare pentru a îmbun#t#$i proiec-tul în mod iterativ. Aceast# opera$ie poate fi automatizat#, prin definirea unor indicatoride calitate "i dezvoltarea unei proceduri pentru estimarea calit#$ii, care realizeaz# selec-$ia caracteristicilor proiectului (Figura 4).

    Figura 4. Sistem de sintez# utilizând îmbun#t#$irea iterativ#.

  • 8/18/2019 Minimizarea starilor

    9/47

    Sistem CAD pentru sinteza sistemelor numerice 8

    2. Sisteme de sintez!

    22..##.. SSiisstteemm ggeenneerriicc ddee ssiinntteezz!!

    În aceast# sec$iune se vor formula cerin$ele pentru procesul de proiectare "i se va

    descrie un sistem generic de sintez#  ipotetic. Acest sistem este generic, deoarece reu-ne"te toate conceptele principale ale sintezei de nivel înalt. Sistemul este ipotetic, deoa-rece niciunul din sistemele de sintez#  comerciale sau de cercetare nu satisfac toatecriteriile prezentate în continuare:

    (a) Completitudine. Sistemul trebuie s# pun# la dispozi$ie utilitare de sintez# pentrutoate nivelele procesului de proiectare, de la specifica$ie "i pân# la documenta$iade fabrica$ie. Utilitarele de sintez#  trebuie s#  se poat# adapta la diferitele arhi-tecturi destina$ie.

    (b) Extensibilitate. Sistemul trebuie s# fie suficient de flexibil pentru a permite ad#-

    ugarea unor noi algoritmi "i utilitare. Similar, sistemul trebuie s# permit# ad#u-garea unor noi stiluri arhitecturale, dac#  este posibil, numai prin rescriereastrategiilor procesului de proiectare ( a scenariilor). Sistemul trebuie s# permit#de asemenea ad#ugarea unor noi componente "i a unor algoritmi pentru adapta-rea acestor componente la diferite tehnologii.

    (c) Controlabilitate. Un proiectant trebuie s#  aib# posibilitatea de a controla tipulutilitarelor care se vor utiliza pentru o anumit# descriere "i ordinea în care aces-tea vor fi executate. Acela"i proiectant trebuie s# aib# posibilitatea de a controlaexplorarea spa$iului de proiectare, prin selec$ia diferitelor stiluri arhitecturale "i adiferitelor componente. În scopul asist#rii proiectantului în cadrul procesului deselec$ie, sistemul trebuie s#  pun#  la dispozi$ie diferi$i indicatori de estimare aicalit#$ii.

    (d) Interactivitate. Proiectantul trebuie s# aib# posibilitatea de a interac$iona cu uti-litarele de sintez#, prin specificarea par $ial# a structurii proiectului, sau prin mo-dificarea proiectului dup#  sintez#. De asemenea, proiectantul trebuie s#  poat#modifica fiecare asignare a obiectelor func$ionale la obiectele structurale.

    (e) Îmbun!t !" irea metodologiei de proiectare. Sistemul de sintez# trebuie s# permit#îmbun#t#$irea calit#$ii prin trecerea de la metodologia de proiectare bazat#  pescheme electice "i simulare la metodologia bazat#  pe descriere "i sintez#, "i s#

     permit# posibilitatea utiliz#rii ambelor strategii la fiecare nivel de abstractizare.

  • 8/18/2019 Minimizarea starilor

    10/47

    Sistem CAD pentru sinteza sistemelor numerice 9

    Schema-bloc a unui sistem de sintez# generic este prezentat# în Figura 5. Siste-mul dispune de un Mediu de conceptualizare pentru a permite interactivitatea "i contro-labilitatea. Completitudinea sistemului este dat# de faptul c# acesta permite sinteza lanivel de sistem, de circuit, la nivel logic "i fizic. Extensibilitatea este asigurat#  prinexisten$a a dou# baze de date. Baza de date a componentelor  ( BDC ) permite ad#ugarea aunor noi componente pentru sintez#, în timp ce Baza de date a sistemului ( BDS ) permitead#ugarea unor noi stiluri de proiectare, prin faptul c# utilizeaz# o reprezentare cuprin-z#toare a proiectului "i faciliteaz#  ad#ugarea unor noi algoritmi, punând la dispozi$iediferite tipuri de informa$ii pentru diferite nivele de abstractizare.

    Sistemul permite utilizarea atât a metodologiei de proiectare bazate pe schemeelectrice "i simulare, cât "i a metodologiei bazate pe descriere "i sintez#. Prima meto-

    dologie poate fi utilizat# prin realizarea schemelor cu ajutorul Mediului de conceptuali- zare "i simularea acesteia printr-una din simulatoarele Setului de simulare. A doua me-todologie poate fi utilizat#  prin reprezentarea descrierii proiectului într-una sau maimulte forme intermediare "i sinteza cu utilitarele corespunz#toare de sintez#.

    Se utilizeaz# diferite Forme intermediare pentru diferite aspecte de proiectare laacela"i nivel sau pentru acela"i aspect de proiectare la diferite nivele ale proiect#rii. Înlocul mai multor forme intermediare, s-ar putea defini un limbaj universal pentru toatenivelele "i stilurile de proiectare, dar un asemenea limbaj ar fi greoi "i ineficient. Ar finecesar un timp considerabil pentru a se ajunge la un standard pentru un asemenea lim-

     baj. Se poate utiliza în schimb un limbaj standard de simulare, cum este limbajul VHDL.

    Totu"i, un asemenea limbaj dispune mai ales de construc$ii necesare pentru simulare "i

    Figura 5. Un sistem de sintez# generic.

  • 8/18/2019 Minimizarea starilor

    11/47

    Sistem CAD pentru sinteza sistemelor numerice   %0

    nu pentru sintez#. Mai mult, construc$iile acestui limbaj nu sunt adecvate pentru mode-larea diferitelor stiluri de proiectare, "i proiectan$ii nu sunt interesa$i de obicei în descri-erea proiectelor în acest limbaj, ci în determinarea valorilor de ie"ire pentru un set devectori de test "i în observarea rela$iilor în timp între semnalele selectate. Deci, un raport

    de ie"ire generat de un simulator va fi satisf #c#tor indiferent de sursa intr #rii pentru si-mulator, fie un alt limbaj, fie o alt#  form#  de specificare a proiectului. De aceea, se

     poate utiliza orice form# intermediar # pentru reprezentarea proiectului, cât timp exist#un generator al codului de simulare pentru translatarea formei intermediare într-o des-criere care se poate utiliza pentru simulare. Generatoarele codului de simulare din Fi-gura 5 sunt utilizate în acest scop.

    Generatoarele de cod se pot utiliza de asemenea în cadrul metodologiei bazate pescheme "i simulare. De exemplu, o schem# poate fi considerat# ca o form# intermediar #care este translatat# de c#tre un generator al listelor de conexiuni într-o descriere utili-zabil# pentru simulare. Similar, formele intermediare de la nivelul logic, secven$ial, RT

    "i sistem pot fi translatate în limbajul VHDL sau într-un alt limbaj de simulare. Formeleintermediare pot fi utilizate pentru sinteza interactiv#, pentru a realiza parti$ionarea, pla-nificarea "i asignarea manual#, ca "i transformarea "i verificarea proiectelor "i a descrie-rilor. Ele se pot utiliza de asemenea pentru estimarea calit#$ii proiectelor "i pentruestimarea efectelor modific#rii proiectelor asupra calit#$ii acestora.

    22..22.. SSiinntteezzaa llaa nniivveell ddee ssiisstteemm

    Un sistem poate fi descris printr-un set de procese comunicante controlate de

    evenimente externe sau interne. Scopul sintezei la nivel de sistem este de a reprezenta oasemenea descriere a sistemului, de a evalua anumite caracteristici de baz# ale acesteia,"i de a parti$iona descrierea într-o ierarhie de descrieri care reflect#  entit#$i fizice ca

     pl#ci, module multi-cip, cipuri sau macrocelule utilizate pentru fabrica$ia sistemului.

    Parti$ionarea descrierii unui sistem în entit#$i pentru care se poate realiza fabri-ca$ia sau sinteza este o sarcin# dificil#, în special dac# anumite entit#$i pot fi asignateunor componente standard (ca procesoare "i memorii), în timp ce altele nu sunt definitecomplet sau sunt definite la un nivel de abstractizare diferit. Limbajul de descriere alsistemului trebuie s# aib# posibilitatea specific#rii ierarhiei func$ionale "i structurale, s#dispun# de construc$ii abstracte de comunica$ie "i de un stil de descriere care este p#strat

     pe parcursul mai multor nivele de parti$ionare. Limbajul trebuie s# permit# reprezenta-rea informa$iilor structurale par $iale, ca cipuri, porturi "i conexiuni. Trebuie s# permit#de asemenea specificarea par $ial# a sistemului, astfel încât sinteza s# poat#  fi realizat#f #r #  cunoa"terea detaliat# a unor por $iuni ale sistemului. Descrierea trebuie s#  fie exe-cutabil# pentru a permite verificarea înainte "i dup# parti$ionare.

    O metodologie tipic# pentru sinteza la nivel de sistem este prezentat# în Figura6. Descrierea de intrare este compilat# într-o Reprezentare a sistemului ( RS ), utilizat# detoate celelalte utilitare. Codul pentru simulare este generat de asemenea din aceast# re-

     prezentare. Descrierea sistemului este parti$ionat#  în subdescrieri care se vor executasecven$ial pe anumite circuite sau vor exista concurent în acela"i pachet. Dou# tipuri deobiecte sunt supuse parti$ion#rii: structurile de date "i descrierile func$ionale.

  • 8/18/2019 Minimizarea starilor

    12/47

    Sistem CAD pentru sinteza sistemelor numerice   %%

    Structurile de date cuprind variabile globale "i locale, tablouri, liste, cozi "i înre-gistr #ri. Acestea sunt implementate de obici prin componente de memorie. De aceea,trebuie grupate structurile de date care pot fi implementate printr-o singur # memorie, iar apoi trebuie parti$ionate acele memorii între cipuri sau alte pachete fizice.

    Similar, descrierile func$ionale pot fi parti$ionate între diferite unit#$i de execu$iesau procesoare. Se poate presupune c# descrierea de intrare este bazat# pe st#ri, tranzi$ii-le între st#ri fiind determinate de evenimente, în fiecare stare fiind executate anumite

     prelucr #ri, cuprinzând instruc$iuni de asignare, func$ii, proceduri sau procese. Parti$io-narea descrierilor func$ionale poate fi considerat# ca parti$ionare a st#rilor. Dac# descrie-

    rea nu este bazat# pe st#ri, aceasta se poate diviza în por $iuni mai mici prin parti$ionareaîntre limitele blocurilor, proceselor "i a procedurilor. St#rile ale c#ror descrieri func$io-nale sunt executate secven$ial pot fi grupate pentru execu$ie pe o singur # arhitectur # detip ASFD, care poate fi apoi parti$ionat# între pachetele fizice.

    Pentru a evalua calitatea fiec#rei parti$ii trebuie s# se estimeze perioada ceasului, performan$ele, spa$iul ocupat, puterea consumat#, costurile de testare "i încapsulare.Deoarece timpul total de execu$ie depinde de datele de intrare, estimarea perioadei cea-sului "i a performan$elor pe baza descrierii func$ionale este dificil#, deoarece datele nusunt disponibile înaintea execu$iei. Algoritmii de estimare trebuie s#  utilizeze tehnici

     probabilistice pentru a defini num#rul de parcurgeri ale fiec#rei c#i din descriere.

    Figura 6. Metodologia de sintez# la nivel de sis-tem.

  • 8/18/2019 Minimizarea starilor

    13/47

    Sistem CAD pentru sinteza sistemelor numerice   %2

    Dac# pentru implementare se vor utiliza componente standard, ca procesoare saucontrolere, opera$ia de parti$ionare devine foarte dificil#. Algoritmii de parti$ionare tre-

     buie s# fie capabili s# recunoasc# p#r $i ale descrierii care pot fi implementate prin com- ponente standard. Astfel, parti$ionarea trebuie s#  fie precedat#  de o preparti$ionare a

    descrierii în p#r $i care sunt executabile sau neexecutabile pe anumite componente stan-dard date.

    Orice parti$ionare poate modifica unele caracteristici ale sistemului, în particular  performan$ele. De exemplu, mutarea loca$iilor alocate pentru o structur # de date de la uncip care utilizeaz# acea structur # de date într-un alt cip poate satisface cerin$ele de în-capsulare, dar poate determina cre"terea timpului de acces la acea structur # de date. Deasemenea, unirea mai multor structuri de date poate necesita modificarea protocolului deacces la acestea. Similar, unirea structurilor de date accesate de mai multe st#ri concu-rente necesit# introducerea unor mecanisme de arbitraj. De aceea, sinteza interfe$elor "ia logicii de arbitraj trebuie s# fie realizat# dup# fiecare itera$ie a parti$ion#rii.

    Dup# ce descrierea sistemului este parti$ionat# în entit#$i care satisfac restric$iilefizice, canalele de comunica$ie "i protocoalele lor pot fi unite pentru a minimiza num#-rul de porturi din fiecare parti$ie. Unirea canalelor poate fi considerat# ca o multiplexarea mesajelor prin aceea"i magistral#. Evident, aceast# multiplexare este posibil# numaidac# dou# mesaje nu trebuie transmise concurent.

    Sinteza la nivel de sistem are ca rezultat o structur # de subdescrieri func$ionale,fiecare din acestea definind un pachet sau modul a c#rui sintez# trebuie realizat# ulteri-or. Aceast# descriere func$ional# a fiec#rui modul poate fi utilizat# ca intrare pentru unutilitar de sintez#  la nivel de cip, sau poate fi descompus#  în continuare în cicluri deceas prin planificarea opera$iilor "i transmis# direct utilitarelor de sintez# la nivel RT.

    22..33.. SSiinntteezzaa llaa nniivveell ddee cciipp

    Sinteza la nivel de sistem produce o descriere la nivel de cip sub forma unor subdescrieri func$ionale care pot fi implementate prin arhitecturi ASFD care comunic#între ele. Aceste automate pot fi utilizate pentru a descrie procesoare, memorii cache,cozi, memorii, circuite de arbitraj a magistralelor "i interfe$e. Sinteza la nivel de cip areca scop transformarea unei descrieri func$ionale ASFD într-o descriere structural# careutilizeaz# componente RT. Un sistem generic de sintez# la nivel de cip este prezentat înFigura 7.

    Sistemul de sintez# const# dintr-un compilator care genereaz# o reprezentare in-tern#, un set de utilitare pentru sinteza de nivel înalt, o baz#  de date a componentelor RT, un utilitar pentru adaptarea tehnologic#  "i un utilitar pentru optimizareamicroarhitecturii. Descrierea func$ional#  de intrare este compilat#  într-o reprezentareintern# (de exemplu, un graf al fluxului de control "i de date), care pune în eviden$# de-

     penden$ele de control "i de date necesare pentru planificare "i alocare. Mai multe utilita-re ale sintezei de nivel înalt adnoteaz# aceast# reprezentare cu informa$ii necesare pentrusinteza logic# "i secven$ial#.

    Utilitarul de Planificare asigneaz# opera$ii st#rilor de control. Utilitarele de Alo-care a unit !" ilor func " ionale, de memorie "i de interconectare aloc# operatori unit#$ilor func$ionale, variabile scalare "i tablouri registrelor "i memoriilor, "i conexiuni magis-

  • 8/18/2019 Minimizarea starilor

    14/47

    Sistem CAD pentru sinteza sistemelor numerice   %3

    tralelor. Utilitarul de Grupare a memoriilor  une"te registrele în tablouri de registre, "itablourile de registre în memorii. Acest utilitar determin#  de asemenea loca$ia fiec#reivariabile în cadrul memoriei grupate. Selectorul de module selecteaz# componentele RTcare vor fi utilizate pentru implementare. Acest utilitar poate parti$iona graful fluxului

    de control "i de date "i poate executa o amplasare preliminar # pentru a determina com- bina$ia de componente RT care vor satisface restric$iile date.

     Baza de date a componentelor  ( BDC ) memoreaz# componentele RT care vor fiutilizate pentru sintez# "i furnizeaz# informa$ii despre caracteristicile acestora. Utilitarulde Adaptare tehnologic! mapeaz#  componentele generice din descrierea pentru care serealizeaz# sinteza la instan$ieri ale componentelor memorate în BDC . C#ile critice esti-mate "i întârzierile acestor c#i se pot modifica dup# mapare. Utilitarul de Optimizaremicroarhitectural !  elimin#  unele c#i critice "i reduce întârzierile prin redistribuirea

    Figura 7. Sinteza la nivel de cip.

  • 8/18/2019 Minimizarea starilor

    15/47

  • 8/18/2019 Minimizarea starilor

    16/47

    Sistem CAD pentru sinteza sistemelor numerice   %5

    22..44.. SSiinntteezzaa llooggiicc!! $$ii sseeccvveenn""iiaall!!

    Ie"irea sintezei de nivel înalt este o descriere structural# în care fiecare compo-nent# este un automat ASFD descris printr-o tabel# de st#ri, o component# a c#ii de datedescris# prin ecua$ii booleene, o component# de interfa$# descris# prin diagrame de timpsau forme de und#, sau o memorie specificat# prin dimensiune, num#rul "i tipul portu-rilor, "i protocolul de acces. Fiecare din aceste componente necesit# tehnici diferite desintez#, dup# cum se indic# în Figura 8 pentru un sistem ipotetic de sintez# logic#.

    O arhitectur #  ASFD const# dintr-o cale de date "i o unitate de control a c#reifunc$ionare poate fi modelat#  ca un automat determinist cu st#ri finite. Un asemeneaautomat con$ine un registru de stare pentru memorarea st#rii prezente "i un circuit

    combina$ional pentru evaluarea st#rii urm#toare "i a func$iilor de ie"ire. Un utilitar desintez# a unit#$ii de control trebuie s# translateze o asemenea descriere într-o structur #hardware, executând minimizarea st#rilor, codificarea st#rilor, minimizarea logic#  "iadaptarea tehnologic#.

    Minimizarea st#rilor reduce num#rul st#rilor unui automat cu st#ri finite prineliminarea st#rilor redundante, ale c#ror func$ii pot fi executate de alte st#ri. Procedurilede minimizare a st#rilor parti$ioneaz# st#rile în clase de st#ri echivalente. Dou# st#ri si "i

     s j sunt echivalente dac# nu exist# secven$# de intrare care genereaz# dou# secven$e dife-rite de ie"ire, atunci când aceasta este aplicat# automatului în st#rile  si "i  s j. Deoarecetoate st#rile echivalente genereaz# acelea"i ie"iri, fiecare clas# echivalent# poate fi înlo-

    cuit# printr-o singur # stare. Minimizarea st#rilor este important# deoarece num#rul st#-

    Figura 8. Sistem de sintez# logic#.

  • 8/18/2019 Minimizarea starilor

    17/47

    Sistem CAD pentru sinteza sistemelor numerice   %6

    rilor determin# dimensiunea registrului de stare "i a logicii de control. Minimizarea st#-rilor îmbun#t#$e"te de asemenea testabilitatea automatelor cu st#ri finite, deoarece au-tomatele f #r # st#ri redundante sunt mai u"or de testat.

    Codificarea st#rilor asigneaz# coduri binare st#rilor simbolice. Scopul codific#riist#rilor este de a minimiza logica necesar # pentru implementarea automatului cu st#rifinite. Pentru satisfacerea acestui scop, se poate aplica implementarea prin dou# nivelelogice sau implementarea printr-o logic# multi-nivel.

    În cazul implement#rii prin dou#  nivele logice, se execut# o minimizare logic#cu valori multiple (simbolic#) a logicii necodificate, prin gruparea setului de intr #ri carecorespunde fiec#rui simbol de ie"ire. Aceast# grupare stabile"te de asemenea un set derestric$ii pentru codificarea fiec#rui simbol. Simbolurile sunt codificare secven$ial utili-zând codul cu lungimea minim# care satisface toate restric$iile.

    În cazul implement#rii printr-o logic#  multi-nivel, procedura de codificare în-cearc#  s# minimizeze costul implement#rii prin minimizarea num#rului de literale dinexpresiile booleene ale logicii st#rii urm#toare. Minimizarea num#rului de literale esterealizat# prin maximizarea num#rului "i dimensiunii subexpresiilor comune, ceea ce serealizeaz# prin asignarea codurilor similare st#rilor care genereaz# ie"iri similare.

    Dup# codificarea tuturor intr #rilor, ie"irilor "i st#rilor simbolice, prin minimiza-rea logic# se reduce costul implement#rii logicii st#rii urm#toare "i a logicii de control.Diferite implement#ri necesit# concentrarea asupra unor obiective diferite. Pentru logicacu dou# nivele, obiectivul este de a se minimiza num#rul termenilor produs ale ecua$ii-lor booleene scrise sub forma sumelor de produse. Pentru logica multi-nivel, obiectivuleste de a se minimiza num#rul de literale din ecua$iile booleene prin aplicarea mai mul-tor tehnici.

    Opera$ia de extragere identific# divizorii comuni din expresiile booleene care se pot utiliza pentru a reduce num#rul total de literale. Opera$ia de resubstituire  testeaz#dac# o func$ie existent# este un divizor al altor func$ii. Opera$ia de asignare a fazei rea-lizeaz# alegerea între implementarea func$iei sau a complementului acesteia, în scopulminimiz#rii num#rului total de inversoare necesare pentru implementare. Opera$ia de

     factorizare a por  " ilor  factorizeaz# ecua$ia logic# pentru fiecare poart# complex# pentrua produce o re$ea optim# pentru poarta respectiv#. Descompunerea por  " ilor  împarte fun-c$iile complexe în p#r $i mai simple. Prin simplificare se aplic# minimizarea cu dou# ni-vele fiec#rui nod din re$ea.

    Opera$iile logice men$ionate sunt executate în ordinea specificat# într-un scena-

    riu, eficien$a acestora depinzând în mare m#sur # de caracteristicile logicii de intrare. In-terac$iunea utilizatorului "i un scenariu cu autoadaptare pot fi utilizate pentru a cre"tecalitatea minimiz#rii.

    În timp ce logica cu dou# nivele este implementat#  de obicei printr-un circuitPLA, logica multi-nivel poate fi implementat# prin biblioteci de celule standard. Adap-tarea tehnologic#  transform#  o re$ea logic#  independent#  de tehnologie generat#  prinminimizarea logic# într-o list# de conexiuni a unor celule standard aflate într-o anumit#

     bibliotec#. Dintre numeroasele metode care pot fi aplicate pentru adaptarea tehnologic#se aminte"te parti$ionarea re$elei logice într-o p#dure de arbori, "i determinarea pentrufiecare arbore a unei acoperiri prin celule de bibliotec#, cu un cost minim.

  • 8/18/2019 Minimizarea starilor

    18/47

    Sistem CAD pentru sinteza sistemelor numerice   %7

    Deoarece se presupune c# fiecare proiect poate fi descris printr-un set de procesecomunicante "i poate fi implementat printr-un set de automate ASFD care comunic# în-tre ele, proiectarea logicii de comunica$ie este o parte necesar # a sintezei. Circuitul deinterfa$# poate fi implementat ca o parte integrant# a fiec#rui automat ASFD, sau ca un

    automat independent. Dac# un protocol de comunica$ie este o parte a descrierii ASFD,fiecare r #spuns la un semnal de protocol necesit# un num#r întreg de st#ri. De exemplu,

     protocolul de cerere-confirmare se poate implementa utilizând o stare de a"teptare "i ostare de confirmare. Activarea semnalului de cerere determin#  ie"irea automatului dinstarea de a"teptare "i trecerea acestuia în starea de confirmare, în care este activat sem-nalul de confirmare. La dezactivarea cererii, automatul va ie"i din starea de confirmare.Pe de alt#  parte, dac#  trebuie s#  se realizeze interfa$area între dou#  automate ASFDstandard cu protocoale diferite, trebuie s#  se realizeze sinteza unui al treilea automat

     pentru conversia între cele dou# protocoale.

    Sinteza interfe$elor este dificil#  din cauza lipsei limbajelor de descriere a in-

    terfe$elor "i a metodelor de sintez# pentru logica combinat# secven$ial# sincron# "i asin-cron#. Protocoalele de comunica$ie sunt descrise de obicei prin diagrame de timp curestric$ii impuse de temporizare. Exist# trei tipuri de restric$ii de temporizare: de ordo-nare, de simultaneitate "i de sincronizare. O restric$ie de ordonare define"te ordinea încare apar evenimentele într-un anumit interval de timp. O restric$ie de simultaneitatedefine"te toate evenimentele care apar împreun#, iar o restric$ie de sincronizare defi-ne"te timpul de setare "i men$inere pentru logica sincron#.

    O asemenea descriere trebuie convertit# într-un graf de temporizare, în care fie-care nod reprezint# un eveniment, deci o tranzi$ie logic# a unui semnal. Arcele grafuluicorespund restric$iilor de temporizare care exist# între dou# evenimente. Aceste grafuri

     pot fi construite în mod direct pe baza diagramelor de timp. Sinteza interfe$elor const#în implementarea grafului de temporizare cu un num#r minim de latch-uri "i bistabile "iminimizarea logicii pentru setarea "i resetarea acestora. Logica de interfa$# poate fi sin-cron# sau asincron#.

    Sinteza memoriei genereaz# o descriere a memoriei pentru anumite cerin$e date,ca num#rul de cuvinte, num#rul de bi$i pe cuvânt, num#rul de porturi, tipul porturilor (citire, scriere, sau citire/scriere), rata de transfer, protocolul de acces, "i restric$iile detemporizare. Sinteza memoriilor poate fi complex# pentru anumite cerin$e. De exemplu,

     proiectarea unei memorii cu 4 porturi utilizând numai circuite de memorie cu un singur  port poate fi simpl# dac# datele pot fi parti$ionate în patru grupuri, fiecare grup fiind ac-cesat numai printr-un port (de exemplu,  Memorie1 din Figura 2(c)). Dac# îns# acelea"idate sunt accesate prin dou# porturi diferite, sau dac# dou# porturi acceseaz# datele dinacela"i circuit de memorie cu un singur port, trebuie s# se adauge o logic# de rezolvare aconflictelor. Aceast#  logic#  are ca rezultat cre"terea timpului de acces al memoriei.Deci, scopul utilitarului de grupare a memoriilor este de a parti$iona datele "i de a asignafiecare parti$ie unei memorii astfel încât num#rul de conflicte "i costul logicii de genera-re a adreselor s# fie minimizat.

  • 8/18/2019 Minimizarea starilor

    19/47

    Sistem CAD pentru sinteza sistemelor numerice   %8

    22..55.. PPrrooiieeccttaarreeaa f f iizziicc!!

    Metodologia de proiectare fizic# prezentat# în Figura 9 porne"te de la o list# deconexiuni RT care con$ine trei tipuri de componente, acestea fiind caracterizate prinnum#rul dimensiunilor în care ele prezint# o regularitate. Componentele cu dimensiunilecele mai mari sunt tablourile bidimensionale, ca memoriile, circuitele de înmul$ire "igrupurile de registre. Componentele cu dimensiuni medii sunt tablourile unidimensio-nale ca registrele, num#r #toarele, unit#$ile aritmetice "i logice, driverele de magistral# "iunit#$ile logice. Por $ile logice, latch-urile "i bistabilele sunt componente de dimensiunimici, f #r # o regularitate.

    Fiecare grup de componente are un stil de amplasare diferit. Componentele bi-dimensionale au de obicei dimensiuni mari "i constituie module separate. Componentele

    unidimensionale pot fi grupate împreun#  sub forma unei stive (Figura #0(a)), datelefiind rutate într-o direc$ie "i semnalele de control în cealalt# direc$ie, pe straturi metalicediferite. Ca un stil arhitectural eficient de amplasare, arhitectura de tip stiv# reduce sem-nificativ spa$iul necesar "i lungimea conexiunilor. Totu"i, aceast# amplasare poate aveaca rezultat o pierdere semnificativ# de spa$iu datorit# componentelor cu dimensiuni ine-gale. De exemplu, poate exista o unitate aritmetic# "i logic# de %6 bi$i "i un num#r #tor de 4 bi$i, amplasate al#turat în stiv#. În asemenea cazuri, spa$iul liber trebuie umplut

     prin amplasarea por $ilor "i a bistabilelor, utilizând stilul de amplasare standard al celu-lelor, în care celulele sunt amplasate pe linii "i sunt conectate prin canale de rutare întrelinii. De exemplu, spa$iul liber de lâng# stiva din Figura #0(a) este divizat în trei zone

    Figura 9. Metodologie de proiectare fizic#.

  • 8/18/2019 Minimizarea starilor

    20/47

    Sistem CAD pentru sinteza sistemelor numerice   %9

    dreptunghiulare. Dou# dintre aceste sunt umplute cu logica de control necesar # compo-nentelor din stiv#, dar a treia este umplut# cu componente care nu au leg#tur # cu stiva.

    Dup# parti$ionarea componentelor în trei grupuri pe baza dimensiunii acestora,ele sunt parti$ionate în continuare pentru a satisface restric$iile spa$iale impuse de planulde amplasare selectat (Figura #0(b)). Por $ile "i bistabilele sunt parti$ionate pentru a um-

     ple spa$iile dintre modulele de dimensiuni mari. Spa$iul disponibil poate avea formaunui poligon arbitrar, "i astfel trebuie parti$ionat la rândul s#u în zone dreptunghiulare,cu capacit#$i estimate ale tranzistoarelor. Por $ile "i bistabilele sunt parti$ionate apoi îngrupuri pentru care nu se dep#"esc capacit#$ile tranzistoarelor zonelor care le sunt asig-nate. Similar, componentele unidimensionale pot fi parti$ionate în mai multe stive.

    Parti$ionarea "i amplasarea trebuie executate în mod iterativ, deoarece fiecare parti$ionare influen$eaz#  amplasarea, "i invers, fiecare plan de amplasare influen$eaz# parti$ionarea. Dup# terminarea amplas#rii, trebuie s# se realizeze sinteza descrierii am-

     plas#rii pentru fiecare component#, utilizând una din cele trei arhitecturi de amplasare:tablou, stiv#, sau celule standard. Opera$ia final# din cadrul proiect#rii fizice este rutareacomponentelor instan$iate.

    22..66.. BBaazzaa ddee ddaattee aa ssiisstteemmuulluuii

    În mod tradi$ional, sistemele de sintez# sunt elaborate ca o colec$ie de utilitare de proiectare de sine st#t#toare. În cazul acestor sisteme, exist# diferen$e în ceea ce prive"tereprezentarea datelor, "i formatele de intrare "i de ie"ire. A doua genera$ie a unui aseme-

    nea sistem de sintez# poate fi dezvoltat# fie ca un sistem puternic integrat, fie ca un sis-

    Figura #0. Planuri de amplasare generice.

  • 8/18/2019 Minimizarea starilor

    21/47

    Sistem CAD pentru sinteza sistemelor numerice 20

    tem integrat într-o m#sur #  mai mic#. Un sistem puternic integrat utilizeaz#  o repre-zentare comun# a datelor, fiecare utilitar utilizând acelea"i proceduri pentru accesul ladate. Un asemenea sistem este foarte eficient, dar extrem de rigid, deoarece o modificarea formatului influen$eaz# toate utilitarele componente. Un sistem integrat într-o m#sur #

    mai mic# separ # datele de utilitare. Datele sunt memorate într-o baz# de date "i fiecareutilitar face acces numai la informa$iile de care are nevoie, utilizând o reprezentare pro-

     prie pentru prelucrarea informa$iilor respective.

    O alt# motiva$ie pentru bazele de date este existen$a unor versiuni diferite aleaceluia"i proiect în timpul explor #rii spa$iului de proiectare. În multe sisteme, proiec-tan$ii sunt cei care gestioneaz# ierarhia de proiectare, reviziile "i configura$iile acesteia,

    de"i aceste sarcini pot fi asignate bazei de date. O baz# de date poate memora "i gestiona

    Figura ##. Model al datelor de proiectare.

  • 8/18/2019 Minimizarea starilor

    22/47

  • 8/18/2019 Minimizarea starilor

    23/47

    Sistem CAD pentru sinteza sistemelor numerice 22

    Verificarea consisten$ei este executat#  la dou#  nivele diferite. În primul rând,utilitarul de Verificare a consisten " ei testeaz# dac# utilitarele sunt apelate în ordinea co-respunz#toare "i dac# datele solicitate de fiecare utilitar sunt disponibile în baza de date.În al doilea rând, verific# dac# datele noi ad#ugate sunt consistente cu datele originale.

    De exemplu, asignarea operatorilor la unit#$ile func$ionale nu trebuie s# modifice num#-rul pa"ilor de control, "i o modificare a num#rului pa"ilor de control nu trebuie s# modi-fice func$ionarea ini$ial# specificat#. Utilitarul de  Evaluare a calit !" ii proiectului punela dispozi$ie indicatori de calitate sub forma unor atribute în graful entit#$ilor de proiec-tare dup# fiecare actualizare, astfel încât diferite versiuni ale proiectului pot fi reg#site

     pe baza unui indicator de calitate sau a unei combina$ii a unor asemenea indicatori.

    22..77.. BBaazzaa ddee ddaattee aa ccoommppoonneenntteelloorr

    Utilitarele de sintez# func$ional# genereaz# un proiect microarhitectural din des-crieri func$ionale sau descrieri la nivelul transferurilor între registre. Microarhitecturagenerat# const# din componente RT ca unit#$i aritmetice "i logice, circuite de înmul$ire,num#r #toare, decodificatoare "i registre. Spre deosebire de componentele logice de baz#,componentele RT au diferite op$iuni care pot fi parametrizate. Unul din parametri estedimensiunea componentei, ceea ce indic# num#rul de bi$i. Al$i parametri sunt lega$i deaspectele func$ionale sau propriet#$ile electrice "i geometrice ale componentei. Deexemplu, num#r #toarele pot avea op$iuni pentru incrementare sau decrementare, "i fun-c$ii de înc#rcare, setare "i resetare. De asemenea, fiecare component# poate avea întârzi-eri diferite "i fiecare pin de ie"ire poate fi înc#rcat în mod diferit. În plus, fiecarecomponent# poate avea mai multe op$iuni diferite pentru amplasare, ca "i pentru pozi$i-

    onarea porturilor de I/E în cadrul modulului.

    Figura #2. Arhitectura bazei de date a sistemului.

  • 8/18/2019 Minimizarea starilor

    24/47

    Sistem CAD pentru sinteza sistemelor numerice 23

    Baza de date a componentelor ( BDC ) genereaz# componente care satisfac cerin-$ele specifice de proiectare "i furnizeaz# informa$ii despre caracteristicile electrice "i deamplasare ale componentelor.

    Deci,  BDC  trebuie s# pun# la dispozi$ie dou#  tipuri de informa$ii: o estimare acaracteristicilor componentelor pentru fiecare tip de component# disponibil#, "i o des-criere a instan$ierii componentelor pentru a fi inclus# în descrierile la nivel RT, logic "ila nivel de cip. Estim#rile caracteristicilor componentelor sunt utilizate de utilitarelesintezei de nivel înalt pentru planificare "i alocare, "i de utilitarele proiect#rii fizice pen-tru planul de amplasare. Descrierile componentelor sunt utilizate la trei nivele diferite.În primul rând, numele componentelor "i numele pinilor acestora sunt utilizate în des-crierile RT generate de utilitarele sintezei de nivel înalt. În al doilea rând, descrierile dela nivelul logic sunt utilizate în timpul sintezei logice "i a optimiz#rii. În al treilea rând,descrierile la nivel de cip sunt utilizate în timpul asambl#rii planurilor de amplasare. În

     plus fa$# de descrierile componentelor,  BDC   trebuie s#  furnizeze trei modele diferite

     pentru simulare la nivel RT, la nivel logic "i la nivel de cip.

    Exist#  pu$ine lucr #ri legate de generarea componentelor "i bazele de date alecomponentelor pentru sinteza de nivel înalt. Baza de date generic# prezentat# în Figura#3 const# din dou# p#r $i: Serverul de componente "i Serverul de cuno #tin " e. Serverul decomponente furnizeaz# estim#ri "i descrieri la nivel RT, la nivel logic "i la nivel de cip,atunci când indic# r #spunsuri la întreb#ri legate de instan$ierile componentelor. Serverul de cuno #tin " e permite ad#ugarea unor noi instan$ieri de componente, a generatoarelor de

    Figura #3. Baza de date a componentelor.

  • 8/18/2019 Minimizarea starilor

    25/47

    Sistem CAD pentru sinteza sistemelor numerice 24

    componente sau a utilitarelor de optimizare a componentelor. Acest server este utilizat pentru extinderea bibliotecilor de componente disponibile.

    O component# poate fi memorat# ca o instan$iere atunci când este proiectat# ma-nual pentru o anumit# implementare particular #, sau ca o descriere parametrizat# pentruo clas# de instan$ieri ale componentelor. Generatoarele de componente  sunt seturi deutilitare care genereaz# instan$ieri de componente din descrieri parametrizate. Utilitarelede optimizare la nivel logic sau la nivel de cip pot fi utilizate ca o parte a procesului degenerare a componentelor. Toate instan$ierile proiectate manual sau generate sunt p#s-trate în  Memoria de componente  pentru a fi utilizate de un anumit proiectant sau unanumit utilitar de sintez#.

     BDC   este o component# critic# a metodologiei sintezei de nivel înalt, deoareceasigur # o separare clar # a sintezei la nivel de sistem "i la nivel de cip de sinteza logic# "ifizic#. Existen$a unei  BDC  permite ca proiectan$ii s#  se concentreze asupra proiect#riisistemului, f #r #  implicarea în proiectarea logic#  sau fizic#. Permite de asemenea dez-

    voltarea rapid# a utilitarelor sintezei de nivel înalt, punând la dispozi$ie interfe$e stan-dard pentru sinteza componentelor "i izolarea fa$#  de modific#rile tehnologiilor defabrica$ie.

    22..88.. MMeeddiiuull ddee ccoonncceeppttuuaalliizzaarree

    Automatizarea complet#  a procesului de proiectare pornind de la nivele maiînalte de descriere este un scop important, de"i nu este posibil# imediat. Chiar dac# toateutilitarele sintezei de nivel înalt ar fi disponibile în momentul de fa$#, ar fi necesar ca

     proiectan$ii s# devin# familiariza$i cu utilizarea lor. De asemenea, este necesar un timp pentru ca algoritmii de sintez#  s# asigure o calitate uniform# pentru diferite stiluri de proiectare. Astfel, este necesar s# se asigure un mediu în care proiectan$ii pot verificadeciziile de proiectare "i pot modifica manual algoritmii de sintez#. Chiar dac#algoritmii sunt performan$i, proiectan$ii trebuie s# aib# posibilitatea de a lua decizii denivel înalt, ca de exemplu selec$ia stilului de proiectare, a arhitecturii, a topologiei, acerin$elor "i a restric$iilor pentru componente. Deci, un mediu de conceptualizare trebuies# permit# controlul deciziilor de proiectare "i a strategiei de proiectare în toate etapele

     procesului de proiectare, ceea ce necesit#  ca mediul s#  pun#  la dispozi$ie indicatoriutilizabili de calitate la fiecare nivel de abstractizare.

    Mediul de conceptualizare este strâns legat de baza de date a sistemului "i bazade date a componentelor. Aceste baze de date memoreaz#  toate versiunile datelor de proiectare pentru perioade lungi de timp, în timp ce mediul de conceptualizare face ac-ces numai la por $iuni reduse ale datelor pentru modificare în timpul unor perioade scurtede timp.

    Mediul de conceptualizare const# din cinci p#r $i: gestiunea datelor "i a proiectu-lui, vizualizarea "i editarea datelor, estimarea indicatorilor de calitate, algoritmii de sin-tez#  "i verificarea consisten$ei proiect#rii. Calitatea proiectului este estimat#  pe bazadatelor proiectului par $ial sau complet. Indicatorii de calitate pot fi calcula$i relativ sim-

     plu pe baza proiectului final, dar trebuie s# se utilizeze tehnici diferite de estimare la di-ferite nivele de abstractizare. Algoritmii de sintez# pot fi aplica$i întregului proiect saunumai unor p#r $i ale proiectului. Proiectantul trebuie s# poat# împ#r $i sinteza în etape "i

  • 8/18/2019 Minimizarea starilor

    26/47

    Sistem CAD pentru sinteza sistemelor numerice 25

    s# aplice algoritmii fiec#rei etape separat. Prin verificarea consisten$ei proiect#rii se asi-gur # faptul c# modific#rile manuale ale proiectului nu produc nici o modificare în des-crierea func$ional#. De exemplu, dac# un transfer între registre de forma  y ←  a+b+c,care necesit# dou# sumatoare, este împ#r $it de proiectant în dou# transferuri între regis-

    tre, y ←  a+b, y ←  y+c, care necesit# un singur sumator, dar dou# st#ri, prin verificareaconsisten$ei trebuie s# se asigure c# cele dou# transferuri între registre genereaz# acela"irezultat ca "i transferul original.

    Proiectul complet al unui cip poate fi reprezentat sub dou# forme: o tabel# func-$ional#  de st#ri "i un plan de amplasare. Fiecare descriere func$ional#  exprimat#  subforma instruc$iunilor "if", "case" "i "loop" poate fi parti$ionat# dup# aceste instruc$iuni.De exemplu, testul condi$ional dintr-o instruc$iune "if" poate fi asignat unei st#ri, coduldin fiecare ramur #  fiind asignat câte unei st#ri. Dac#  exist#  mai multe instruc$iuni deasignare a unor variabile în fiecare ramur #, ele pot fi divizate în continuare manual sauautomat în mai multe st#ri. De exemplu, o descriere func$ional# sub forma unei organi-

    grame este prezentat#  în Figura #4(a). Tabela func$ional#  de st#ri care corespunde

    Figura #4. Descriere func$ional#: (a) organigram#; (b) tabel# func$ional# dest#ri.

  • 8/18/2019 Minimizarea starilor

    27/47

    Sistem CAD pentru sinteza sistemelor numerice 26

    acestei organigrame este prezentat# în Figura #4(b). De notat c# nodul de unire din Fi-gura #4(a) nu trebuie s# ocupe neap#rat o stare complet#, dar astfel descrierea este mailizibil# "i se permite verificarea modific#rilor. În proiectul final, o asemenea descriereeste compactat# în tabela de st#ri alocat#. În$elegerea proiectului dintr-o tabel# de st#ri

    compactat# "i nestructurat# este îns# dificil#.

    A doua reprezentare este planul de amplasare al proiectului, care indic# pozi$ia "iconexiunile fiec#rei componente (Figura #5). Aceast# reprezentare este ierarhic#, deoa-rece poate fi de asemenea reprezentat planul de amplasare al fiec#rei componente, ca deexemplu calea de date. Pentru fiecare component# se reprezint# porturile acestuia. Co-

    nexiunile dintre porturi pot fi reprezentate fie ca linii drepte între porturi, fie ca "i co-nexiuni rutate între porturi.

    Alte reprezent#ri faciliteaz# selec$ia modulelor, amplasarea, alocarea "i planifi-carea. Selec " ia modulelor  este realizat# prin parcurgerea componentelor disponibile în

     BDC , pe categorii specifice ca de exemplu clasa (combina$ionale, secven$iale), func$io-narea (UAL, comparatoare, num#r #toare), num#rul maxim de bi$i "i stilul (de exemplu,cu transport succesiv sau anticipat). Informa$iile fizice despre fiecare component# suntafi"ate dup# ce au fost specificate categoriile precedente.

     Amplasarea este realizat# pe baza planului de amplasare "i cu ajutorul unui edi-tor. Proiectan$ii pot ad#uga, "terge, roti "i repozi$iona diferite module. De asemenea, se

     pot pozi$iona porturile modulelor. Similar, proiectan$ii pot ad#uga sau "terge conexiuni,

    Figura #5. Plan de amplasare.

  • 8/18/2019 Minimizarea starilor

    28/47

    Sistem CAD pentru sinteza sistemelor numerice 27

    sau le pot pozi$iona în cadrul canalelor din jurul modulelor. Calitatea amplas#rii, subforma unor indicatori ca în#l$imea, l#$imea, spa$iul de rutare, densitatea tranzistoarelor,lungimea conexiunilor "i frecven$a ceasului, este afi"at# pentru fiecare amplasare.

     Alocarea este executat# prin selec$ia unit#$ilor "i asignarea obiectelor func$ionale(de exemplu, variabile "i opera$ii) la componentele RT, "i a conexiunilor la multiplexoa-re "i magistrale. Aceast# asignare poate fi realizat# utilizând o matrice, în care apar pede o parte obiectele func$ionale, iar pe de alt# parte componentele. Calitatea unei asig-n#ri este estimat# prin indicatori ca gradul de utilizare al componentelor, întârzierile dela registru la registru "i spa$iul de rutare.

     Planificarea  este realizat#  prin reparti$ionarea descrierii func$ionale ini$iale întabela func$ional# de st#ri. Proiectantul poate ad#uga sau "terge st#ri, poate diviza sauconcatena expresii, condi$ii "i bucle, sau poate realoca asign#rile de la o stare la alta.Calitatea planific#rii este estimat# prin indicatori ca num#rul de componente necesare,suma spa$iului necesar pentru toate componentele, întârzierile de la registru la registru,

    num#rul de st#ri, "i timpul total de execu$ie.Pentru a se permite o estimare rapid# a calit#$ii, descrierea func$ional# "i planu-

    rile de amplasare sunt legate printr-o structur # de date comun#, astfel încât modific#riledin cadrul unei reprezent#ri sunt propagate în cealalt# reprezentare. Uneori propagareaunei modific#ri nu este posibil# în totalitate, "i ambele structuri trebuie actualizate. Deexemplu, dac#  dou#  opera$ii de adunare sunt planificate în acela"i pas de control "iexist# un singur sumator, aceast# modificare va genera un nou proiect, cu un sumator suplimentar, neconectat la nici o alt# component#. Acest sumator trebuie conectat ma-nual pentru ca descrierea func$ional# s# fie corect#.

    Mediul de conceptualizare permite utilizarea mai multor metodologii diferite.

    Proiectantul trebuie s# aib# posibilitatea iter #rii unei anumite opera$ii ori de câte ori estenecesar pentru a satisface cerin$ele. Figura #6 prezint# câteva scenarii posibile. Proiec-tantul poate porni de la o reprezentare a unei descrieri, care va fi parti$ionat# în por $iunimai mici. Deoarece func$ionarea este specificat# printr-o tabel# de st#ri, descrierea areîntotdeauna o planificare ini$ial#. Dup#  selec$ia componentelor "i asignare, dac#  deexemplu planificarea violeaz# anumite restric$ii de proiectare, proiectantul poate efectuao replanificare. Dup#  ce planificarea ini$ial#  devine satisf #c#toare, proiectantul poatevizualiza BDC  pentru a identifica componentele de baz# pentru proiectul final. Celelaltecomponente pot fi asignate ulterior, fie manual, fie automat. Proiectantul poate efectua oasignare prealabil#  a unor obiecte func$ionale importante la componentele selectate,

    înaintea execut#rii aloc#rii complete.Dup#  selec$ia componentelor, proiectantul poate efectua amplasarea. Deoarece

    componentele de baz# ocup# de obicei cea mai mare parte a spa$iului, un plan de ampla-sare disponibil din fazele ini$iale poate cre"te viteza de explorare a spa$iului de proiecta-re. Proiectantul poate specifica interconexiuni de baz#, ca magistralele de date "i deadrese.

    Dup# amplasare, proiectantul poate reveni la planificare, deoarece restric$iile deresurse "i de temporizare sunt cunoscute mai exact. De obicei, se încearc# îmbun#t#$ireaindicatorilor de calitate prin mai multe itera$ii, pân# la atingerea unei calit#$i satisf #c#-toare. Este de a"teptat ca proiectantul s# ia cele mai multe din deciziile de nivel înalt, dar 

    s# efectueze sinteza manual# doar a unei por $iuni reduse a proiectului. Restul proiectului

  • 8/18/2019 Minimizarea starilor

    29/47

    Sistem CAD pentru sinteza sistemelor numerice 28

    va fi generat de c#tre utilitarele de sintez#, care nu vor afecta de obicei în mod drasticdeciziile luate de proiectant.

    În concluzie, un mediu de conceptualizare permite proiectan$ilor s# execute ma-nual acelea"i opera$ii pe care le execut# proiectan$ii care lucreaz# la nivele mai înalte deabstractizare. Îns#, un asemenea mediu permite de asemenea ca proiectan$ii s# executeaceste opera$ii par $ial prin utilitarele de sintez# automat#. Pe m#sura îmbun#t#$irii algo-ritmilor pentru sinteza de nivel înalt, un num#r mai mare de opera$ii vor fi executate cuajutorul utilitarelor de sintez# automat#.

    Figura #6. Scenarii posibile pentru sinteza de nivel înaltinteractiv#.

  • 8/18/2019 Minimizarea starilor

    30/47

    Sistem CAD pentru sinteza sistemelor numerice 29

    3. Rafinarea specifica"iilor

    33..##.. IInnttrroodduucceerree

    O specifica$ie a unui sistem const# din obiecte func " ionale ca variabile "i canale

    de comunica$ie. În timpul proiect#rii sistemului, aceste obiecte func$ionale din cadrulspecifica$iilor sunt grupate într-un set de componente de sistem, ca circuite ASIC, me-morii "i magistrale. În timp ce obiectele func$ionale sunt lipsite de structur #, compo-nentele de sistem au o structur # bine definit#, ca num#rul pinilor unui cip, num#rul "idimensiunea cuvintelor unei memorii, sau num#rul liniilor unei magistrale. Actualizareaspecifica$iilor pentru reflectarea transform#rii obiectelor func$ionale în componente desistem reprezint# rafinarea specifica " iilor .

    Rafinarea specifica$iilor este important# în cadrul proiect#rii din mai multe mo-tive. În primul rând, rafinarea determin#  ca specifica$ia s# devin# consistent# din toate

     punctele de vedere, prin actualizarea acesteia pentru a reflecta deciziile de grupare luateîn timpul parti$ion#rii sistemului. De exemplu, dac# variabilele sunt grupate pentru a fiasignate unei singure memorii, declara$iile "i referin$ele la aceste variabile trebuie actu-alizate. Rafinarea specifica$iilor va înlocui declara$iile variabilelor cu o declara$ie a unuitablou de memorie, iar referin$ele la variabilele originale vor fi actualizate pentru a seaccesa elemente de tablou. În al doilea rând, rafinarea permite ca specifica$ia s# poat# fisimulat#, permi$ând ca proiectantul s# verifice corectitudinea func$ional#  a sistemuluidup# o etap# de proiectare. În fine, specifica$ia rafinat# care este generat# poate fi utili-zat# ca intrare pentru utilitarele de verificare, sintez# "i compilare care pot urma proiec-t#rii sistemului.

    În continuare se va prezenta un set de opera$ii de rafinare a specifica$iilor. Întâise vor descrie opera$iile de rafinare asociate cu implementarea grupurilor de variabile "i

    canale. Se vor introduce apoi mecanisme pentru rezolvarea conflictelor de acces care potapare atunci când se efectueaz# accesul concurent la variabile "i canale care au fost gru-

     pate împreun# într-o memorie sau o magistral#.

    33..22.. R R aaf f iinnaarreeaa ggrruupp!!rriiii vvaarriiaabbiilleelloorr

    Memoria c#reia i s-a asignat un grup de variabile este modelat#  în specifica$iarafinat# ca un tablou cu un num#r fix de cuvinte "i bi$i pe cuvânt. Pentru gruparea varia-

     bilelor trebuie efectuate dou# opera$ii: amplasarea variabilelor în memorie "i translatarea

    adreselor de memorie.

  • 8/18/2019 Minimizarea starilor

    31/47

    Sistem CAD pentru sinteza sistemelor numerice 30

    33..22..##.. AAmmppllaassaarreeaa vvaarriiaabbiilleelloorr î  î nn mmeemmoorriiee

    Parti$ionarea sistemului asigneaz# un grup de variabile la o memorie cu un nu-m#r fix de cuvinte "i o dimensiune a cuvântului fix#. Diferite variabile pot avea dimen-siuni diferite. Amplasarea variabilelor în memorie se refer #  la asignarea bi$ilor uneivariabile la bi$ii fiec#rui cuvânt din memorie.

    Amplasarea variabilelor este simpl# dac# dimensiunea variabilelor este mai mic#decât dimensiunea cuvântului de memorie sau dac# este un multiplu exact al acestei di-mensiuni. Consider #m declara$iile variabilelor din Figura #7(a), care trebuie amplasateîntr-o memorie de 8 bi$i, dup# cum se indic#  în Figura #7(b). Variabilelor a "i b  li seasigneaz# un cuvânt, respectiv dou# cuvinte de memorie.

    Dac# dimensiunea variabilelor nu este un multiplu întreg al dimensiunii cuvân-tului, variabilele pot fi amplasate într-unul din dou# moduri. Pentru variabila de %2 bi$ic, cei 8 bi$i mai pu$in semnificativi sunt asigna$i unei adrese, iar cei 4 bi$i r #ma"i suntasigna$i urm#toarei adrese (Figura #7(b)). Variabila d  este o alt# variabil#  de %2 bi$i,

     pentru care cei 6 bi$i mai pu$in semnificativi sunt asigna$i unei adrese, iar ceilal$i 6 suntasigna$i urm#toarei adrese. Prima variant#  necesit# un multiplexor 4:% pentru scriereavariabilei c în memorie, dar necesit# conectarea a 8 drivere la magistrala de date a me-moriei, dup# cum se indic# în Figura #7(c). A doua variant# necesit# un multiplexor de6:%, dar sunt necesare numai 6 drivere de magistral# (Figura #7(d)).

    Figura #7. Amplasarea variabilelor în memorie: (a) declara$ii de variabile;(b) amplasarea într-o memorie de 8 bi$i; (c) înscrierea variabilei c cu o va-

    loare de %2 bi$i; (d) înscrierea variabilei d  cu o valoarea de %2 bi$i.

  • 8/18/2019 Minimizarea starilor

    32/47

    Sistem CAD pentru sinteza sistemelor numerice 3%

    33..22..22.. TTrraannssllaattaarreeaa aaddrreesseelloorr ddee mmeemmoorriiee

    Asignarea adreselor la variabilele asignate la o memorie "i modificarea tuturor referin$elor la aceste variabile în cadrul specifica$iei este cunoscut#  ca translatareaadreselor de memorie.

    Pentru asignarea adreselor de memorie, variabilele se pot considera în orice or-dine. Num#rul cuvintelor de memorie necesare pentru fiecare variabil#  se poate deter-mina prin amplasarea variabilelor în memorie. Elementelor unei variabile de tip tabloutrebuie s# li se asigneze adrese contigue în memorie.

    Pentru variabile scalare, translatarea adreselor de memorie este relativ direct#.Presupunem c# o variabil#  scalar # v apar $ine unui grup de variabile reprezentate de ta-

     bloul Mem, iar adresa variabilei v în memoria Mem este 30. Toate referin$ele la variabila

    v în cadrul specifica$iei sunt înlocuite simplu prin referin$e la Mem(30).Pentru o variabil# de tip tablou care a fost grupat# cu alte variabile, adresele care

    indexeaz#  variabila trebuie actualizate la rafinarea referin$elor la aceste variabile. Deexemplu, pentru o variabil# de tip tablou v(63 DOWNTO 0) asignat# adreselor de la %00la %63 în memoria  Mem, trebuie considerate mai multe aspecte pentru actualizareareferin$elor la variabila v.

    În primul rând, dac# variabila de tip tablou v este indexat# în totalitate prin adre-se numerice, referin$ele la aceasta sunt înlocuite în mod simplu prin referin$ele cores-

     punz#toare la memoria  Mem. Astfel, referin$a v(0)  va fi înlocuit#  prin  Mem(100), iar v(36) prin Mem(136).

    În al doilea rând, dac# tabloul este indexat printr-o expresie care implic# varia- bile, la expresia respectiv# trebuie s# se adune un offset corespunz#tor adresei de memo-rie a primului element al variabilei. De exemplu, consider #m variabila de tip tablou v,care este indexat# prin j sau k  în cadrul codului din Figura #8(a). Deoarece variabilei v is-au asignat adrese începând cu %00 în memoria Mem, o referin$# v(j) va fi înlocuit# prin

     Mem(j+100), iar o referin$# v(k) va fi înlocuit# prin Mem(k+100), ca în Figura #8(b).

    În al treilea rând, dac# o variabil# este utilizat# pentru a indexa un singur tablou,adunarea offsetului poate fi evitat#  prin ini$ializarea corespunz#toare a variabilei deadres#. De exemplu, în Figura #8(a), variabila j indexeaz# numai variabila de tip tablouv. Figura #8(c)  indic# modul în care actualizarea tuturor ini$ializ#rilor variabilei  j  (in-clusiv a limitelor buclei for) elimin# necesitatea adun#rii offseturilor. Totu"i, aceasta nueste posibil# întotdeauna dac# variabila j indexeaz# mai multe tablouri. În acest caz, se

     poate evita adunarea offsetului pentru cel pu$in o variabil# de tip tablou prin asignareaacesteia a adreselor de memorie începând cu 0.

  • 8/18/2019 Minimizarea starilor

    33/47

    Sistem CAD pentru sinteza sistemelor numerice 32

    VARIABILE j,k: INTEGER := 0;

    VARIABILE v: IntArray(63 DOWNTO 0);

    ...

    v(k) := 3;x := v(36);

    v(j) := x;

    ...

    FOR j IN 0 TO 63 LOOP

      sum := sum + v(j);

    END LOOP;

    ...

    (a)

    VARIABILE j,k: INTEGER := 0;

    VARIABILE Mem: IntArray(255 DOWNTO 0);...

    Mem(k+100) := 3;

    x := Mem(136);

    Mem(j+100) := x;

    ...

    FOR j IN 0 TO 63 LOOP

      sum := sum + Mem(j+100);

    END LOOP;

    ...

    (b)

    VARIABILE j: INTEGER := 100;

    VARIABILE k: INTEGER := 0;

    VARIABILE Mem: IntArray(255 DOWNTO 0);

    ...

    Mem(k+100) := 3;

    x := Mem(136);

    Mem(j) := x;

    ...

    FOR j IN 100 TO 163 LOOP

      sum := sum + Mem(j);

    END LOOP;

    ...

    (c)

    Figura #8. Translatarea adreselor de memorie: (a) specifica$ieini$ial#; (b) specifica$ie ob$inut# prin înlocuirea expresiilor deindex din referin$ele la variabila v cu un offset; (c) specifica$ie

    cu actualizarea variabilei de index j.

  • 8/18/2019 Minimizarea starilor

    34/47

    Sistem CAD pentru sinteza sistemelor numerice 33

    33..33.. R R aaf f iinnaarreeaa ccaannaalleelloorr $$ii aa mmaaggiissttrraalleelloorr

    Obiectele func$ionale concurente dintr-o specifica$ie, numite de obicei procese,comunic# între ele prin mesaje transmise prin canale de comunica$ie abstracte. Pentruminimizarea costului de interconectare, canalele din sistem sunt grupate astfel încât fie-care grup de canale este implementat printr-un mediu fizic comun numit magistral#. Omagistral# const# dintr-un set de linii prin care are loc transferul datelor conform unui

     protocol de magistral#. Opera$ia de generare a magistralelor "i a protocoalelor acestora pentru fiecare grup de canale este numit# rafinarea interfe " elor . Se vor descrie în conti-nuare metode pentru rafinarea interfe$elor.

    33..33..##.. PPaarraammeettrriiii ccaannaalleelloorr $$ii mmaaggiissttrraalleelloorr

    Pentru fiecare canal, un singur proces master   ini$iaz#  "i controleaz#  transferuldatelor, "i unul sau mai multe procese  slave r #spund la comunica$ia ini$iat# de procesulmaster. Dac# procesul master transmite (sau recep$ioneaz#) date prin canal, direc " ia aso-ciat# cu canalul este cea de scriere (sau citire). Canalele sunt de obicei unidirec$ionale,ceea ce implic# faptul c# dac# un proces cite"te "i scrie o variabil# a unui alt proces, suntnecesare canale distincte pentru fiecare direc$ie a transferului datelor.

    Canalele sunt caracterizate prin patru parametri. Dimensiunea în bi"i a datelor transmise prin canal, dim(C), reprezint# num#rul de bi$i dintr-un singur mesaj transferat

     prin canalul C . Dimensiunea datelor include bi$ii de adres# care pot fi necesari pentruaccesarea variabilelor de tip tablou prin canal. Num!rul de accesuri, acces(P, C), re-

     prezint# num#rul de transferuri efectuate de procesul P  prin canalul C , pe durata de via$#a procesului. Rata medie a canalului, rata_med(C), este rata la care datele sunttransmise prin canalul C  pe durata de via$# a proceselor care comunic# prin canal. Ratala vârf a canalului, rata_vârf(C), este rata la care este transferat un singur mesaj princanalul C .

    Orice implementare printr-o magistral# a unui canal sau grup de canale poate ficaracterizat# prin patru parametri. Dimensiunea magistralei, dim_bus(B), este num#rulliniilor de date ale magistralei B prin care mesajele pot fi transferate între procese. Fie-c#rei magistrale i se asociaz# un protocol care define"te secven$a exact# de opera$ii careimplementeaz# transferul mesajelor prin setul liniilor de date. Întârzierea protocolului,

     prot_delay(B), este întârzierea total# a protocolului utilizat pentru un singur transfer prinmagistral#. Rata medie a magistralei, rata_med(B), este rata la care datele sunt transfe-rate prin magistral# pe întreaga durat# de via$# a sistemului. Rata la vârf a magistralei,rata_vârf(B), este rata maxim# la care datele pot fi transferate prin magistral#. Între ratala vârf a magistralei "i dimensiunea magistralei exist# urm#toarea rela$ie:

    rata vârf Bbus B

     prot delay B _ ( )

    dim_ ( )

     _ ( )= (3.%)

  • 8/18/2019 Minimizarea starilor

    35/47

    Sistem CAD pentru sinteza sistemelor numerice 34

    33..33..22.. DDeef f iinniirreeaa pprroobblleemmeeii

    Fiind dat un grup de canale abstracte de comunica$ie, rafinarea interfe$elor de-termin# dimensiunea magistralei "i protocolul pentru magistrala care va implementa ca-nalele. În cadrul acestei opera$ii, exist#  dou#  cerin$e contradictorii. Prima este cea deminimizare a costului de interconectare între componentele de sistem care utilizeaz# omagistral# prin reducerea dimensiunii magistralei, dim_bus(B). A doua cerin$# este de ase maximiza performan$ele de comunica$ie prin magistral#, prin cre"terea ratei la vârf amagistralei, rata_vârf(B), "i în consecin$# prin cre"terea dim_bus(B).

    Rafinarea interfe$elor const# din dou# opera$ii: generarea magistralei "i genera-rea protocolului. Fiind dat un set de restric$ii, generarea magistralei determin# dimen-siunea magistralei care va implementa grupul de canale. Dup# ce a fost selectat# dimen-siunea dorit# a magistralei, generarea protocolului selecteaz# "i genereaz# protocolulde comunica$ie care va implementa transferul datelor prin magistral#.

    33..33..33.. GGeenneerraarreeaa mmaaggiissttrraalleeii

    Un caz simplu de determinare a dimensiunii magistralei este cel în care toate ca-nalele unui grup au dimensiuni identice ale mesajelor. În acest caz, canalele sunt uniteastfel încât toate canalele din fiecare grup sunt utilizate exclusiv pentru a comunica întreacelea"i dou#  procese. În consecin$#, fiecare grup de canale este implementat cu o di-mensiune a magistralei identic# cu dimensiunea fiec#rui canal.

    Într-un caz mai general, procesele comunicând între ele prin canale care au fostgrupate împreun# transfer # date simultan prin mediul fizic partajat. În plus, diferite ca-nale transfer # mesaje cu dimensiuni diferite între procese. Un asemenea exemplu este

     prezentat în Figura #9. Procesele P , Q, R "i S  comunic# prin canalele X , Y  "i Z , care aufost grupate prin parti$ionarea sistemului pentru a fi implementate printr-o singur # ma-gistral#, B. Cele trei canale transfer # date de dimensiuni diferite, de 8, %6, respectiv %2

     bi$i. În plus, este necesar ca procesul P  s# transfere date la procesul R în acela"i timp în

    Figura #9. O magistral# tipic# format# prin unireacanalelor care transfer # date de diferite dimensiuni

    între diferite procese.

  • 8/18/2019 Minimizarea starilor

    36/47

    Sistem CAD pentru sinteza sistemelor numerice 35

    care procesul Q trebuie s# transmit# date la procesul S . Se va descrie o metod# de gene-rare a magistralei pentru un asemenea caz general.

    3.3.3.#. Determinarea ratei magistraleiSe consider # dou#  canale,  X   "i Y , care transfer # mesaje de 8 bi$i, respectiv %6

     bi$i, dup# cum se prezint# în Figura 20. Num#rul de bi$i asociat cu fiecare transfer demesaj este indicat deasupra mesajului. Pentru simplitate, se presupune c# cele patru in-tervale de timp indicate în figur # reprezint# transferurile de date pe duratele de via$# ale

     proceselor care comunic# prin canalele X  "i Y . Canalele X  "i Y  au ratele medii de 4 "i %2 bi$i/s, respectiv. Dac# aceste canale sunt reunite într-o singur # magistral#  B, magistralatrebuie s#  transmit# datele cu o rat# de cel pu$in %6 bi$i/s pentru a putea satisface ce-rin$ele pentru transferul datelor ale celor dou# canale originale.

    Mesajele individuale transferate prin canale au fost etichetate în figur # pentru a putea fi asociate mai u"or cu datele transferate prin magistrala partajat#. Consider #mmesajul etichetat cu Y2 transferat la t  = % s prin canalul original Y , care este transferat

     prin magistrala B la t  = %.5 s. În timp ce transferurile individuale de mesaje pot fi întâr-ziate datorit# conflictelor de acces la magistral#, num#rul total de bi$i transfera$i princanalele individuale înaintea unirii canalelor este transmis prin magistrala partajat#  înacela"i interval de timp.

    Pentru sinteza magistralei  B din Figura 20, se $ine cont de faptul c# cele dou#canale individuale nu vor transfera date în permanen$#. Intervalele de timp în care uncanal este inactiv sunt utilizate pentru transferul datelor celuilalt canal, realizându-sesinteza unei magistrale prin care datele sunt transferate întotdeauna cu o rat# constant#.

    Înainte de a fi unit într-o magistral#, dac# un canal transfer # datele la o anumit#rat# medie, trebuie s# fie capabil s# transfere datele prin magistral# la aceea"i rat# medie.Aceasta se poate realiza dac#  rata medie, rata_med(B), a magistralei  B este mai maredecât suma ratelor medii ale canalelor individuale. Deci

    Figura 20. Unirea canalelor X  "i Y  sub forma magistralei B.

  • 8/18/2019 Minimizarea starilor

    37/47

    Sistem CAD pentru sinteza sistemelor numerice 36

    rata med B rata med C   _ ( ) _ ( ) C B

    ≥∈∑ (3.2)

    Scopul gener #rii magistralei este sinteza unei magistrale cu un num#r minim delinii "i o rat# medie dat# de ecua$ia (3.2). Implementarea cea mai eficient# a magistralei

    va fi ob$inut# dac# magistrala nu este niciodat# inactiv#, "i dac# ea transfer # în mod con-stant date cu o rat# fix#. În asemenea condi$ii ideale, rata la vârf "i cea medie a magis-tralei vor fi identice:

    rata_vârf(B) = rata_med(B) (3.3)

    3.3.3.2. Restric"ii pentru generarea magistralei

    Pentru un set dat de canale care au fost grupate împreun# pentru a fi implemen-tate printr-o singur # magistral#, pot fi specificate restric$ii pentru mai mul$i parametri aimagistralei "i ai canalelor.

    O restric$ie a dimensiunii minime/maxime a magistralei  poate fi dedus#  dinrestric$iile num#rului de pini specificate pentru modulele sau cipurile c#rora li s-au asig-nat procesele care comunic# prin intermediul magistralei.

    Rata medie a canalului poate fi restric$ionat# astfel încât s# se asigure ca proce-sele s# nu fie încetinite datorit#  întârzierilor de comunica$ie pe magistral#. Fiind daterestric$ii asupra timpului de execu$ie al unui proces care comunic# prin mai multe cana-le, proiectantul poate aloca sau calcula timpul necesar comunica$iei prin diferite canale,din care se poate deduce o restric$ie asupra ratei medii minime a canalului. O rat# mediemaxim# a canalului poate fi specificat# în cazurile în care unul din procesele care comu-nic# prin canal reprezint# un dispozitiv lent care nu poate transmite sau recep$iona da-tele mai rapid decât o anumit# rat#.

    Figura 2#. Restric$ii asupra ratei la vârf a canalelor: (a) trasarea execu$iei pentru canalul X ; (b) magistrala B implementat# f #r # restric$ii asupra ratei lavârf a canalelor; (c) magistrala B implementat# cu o restric$ie a ratei la vârf de

    minim %6 bi$i/s.

  • 8/18/2019 Minimizarea starilor

    38/47

    Sistem CAD pentru sinteza sistemelor numerice 37

    În anumite cazuri, poate fi specificat# o rat! la vârf  minim#, pentru a se asiguraca transferul unui singur mesaj prin canal s# nu necesite un interval de timp excesiv. Deexemplu, consider #m canalul X  din Figura 2#(a), care transfer # un mesaj de %6 bi$i înfiecare din primele dou# intervale de timp, t  = 0 "i t  = %. Celelalte dou# intervale de timp

    sunt utilizate pentru a efectua calcule interne de c#tre procesul care comunic# prin ca-nalul  X . Dac# s-ar implementa canalul ca o magistral#, din ecua$ia (3.2), rata medie amagistralei ar fi de 8 bi$i/s, trasarea execu$iei fiind cea din Figura 2#(b). Îns#, procesular necesita atunci patru intervale de timp numai pentru comunica$ia prin magistral#.Aceasta nu se poate accepta, deoarece vor fi necesare înc# dou# intervale suplimentarede timp pentru execu$ia calculelor interne ale procesului (executate ini$ial în intervalelede timp t  = 2 "i t  = 3 în Figura 2#(a)).

    Dac# se specific# pentru canalul X  o rat# la vârf minim# de %6 bi$i/s, se va ob$ineimplementarea dorit# a magistralei din Figura 2#(c), care nu necesit# intervale de timpsuplimentare. Deci, pentru toate canalele C   c#rora li se asociaz# o restric$ie minim#  a

    ratei la vârf, exist# rela$ia:rata_vârf(B) > rata_vârf(C) (3.4)

    În cazul în care se specific# o rat# la vârf minim# a canalului, magistrala rezul-tat# poate fi inactiv# în anumite intervale de timp.

    3.3.3.3. Algoritm pentru determinarea dimensiunii magistralei

    Dup# ce s-au introdus restric$iile care pot fi specificate pentru generarea magis-tralei, se prezint# un algoritm pentru determinarea dimensiunii unei implement#ri a ma-

    gistralei. Algoritmul presupune c#  liniile de control "i de date sunt disjuncte. În oricemoment de timp, un singur canal poate transfera date prin magistral#. Dac# dimensiuneamagistralei este mai mare decât num#rul de bi$i de adrese "i de date, bi$ii de adrese "i dedate sunt transfera$i simultan prin magistral#, în caz contrar ace"tia sunt transfera$i sepa-rat, în dou# transferuri distincte. În ultimul caz, bi$ii de adres# trebuie memora$i de pro-cesul receptor. Dac#  dimensiunea magistralei este mai mic#  decât dimensiuneamesajului care trebuie transmis prin magistral#, mesajul este transmis prin transferurimultiple.

    Se presupune c# toate procesele care comunic# printr-una din canalele magistra-lei au o implementare sincron#. Transferul unui mesaj prin magistral# necesit# deci unnum#r întreg de cicluri de ceas. O variabil# care se acceseaz# prin magistral# este mo-delat#  printr-un proces separat care transmite "i recep$ioneaz#  valoarea acesteia prinmagistral#  ca r #spuns la cererile de la alte procese. Deci, pentru calculul timpului deexecu$ie al unui proces master care acceseaz# o variabil# prin magistral#, se presupunec#  procesul slave care modeleaz#  acea variabil# este întotdeauna gata pentru transfer,adic# nu apar întârzieri de sincronizare pentru accesul la variabile prin magistral#.

    Intrarea pentru algoritmul de generare a dimensiunii magistralei const# dintr-unset de canale care trebuie implementate printr-o singur # magistral# "i din restric$ii asu-

     pra ratelor de transfer prin canale "i asupra dimensiunii magistralei. Ie"irea algoritmuluieste dimensiunea în bi$i a magistralei care va implementa setul de canale.

  • 8/18/2019 Minimizarea starilor

    39/47

    Sistem CAD pentru sinteza sistemelor numerice 38

    Algoritmul examineaz#  un domeniu al dimensiunilor posibile. Pentru fiecaredimensiune, se calculeaz# rata la vârf a magistralei "i ratele medii individuale ale cana-lelor. Pentru sinteza unei magistrale care transfer # date în mod constant, conform ecua-$iilor (3.2) "i (3.3) rata la vârf a magistralei trebuie s# fie mai mare decât suma ratelor 

    medii ale canalelor. Fiecare dimensiune a magistralei pentru care aceast#  condi$ie esterespectat# reprezint# o implementare fezabil# a magistralei. Din setul de implement#rifezabile ale magistralei, fiecare corespunzând unei dimensiuni diferite a magistralei, seselecteaz# cea cu costul cel mai redus. În cazul în care nu sunt specificate restric$ii, seselecteaz# o dimensiune unitar # care corespunde unui transfer serial de date.

    Algoritmul pentru determinarea dimensiunii magistralei este prezentat în Figura

    22. Întâi se determin# domeniul dimensiunilor examinate de algoritm. Dimensiunea ma-

    if  nu exist# restric$ii thenreturn (%)

    end if 

    /* calculeaz# domeniul dimensiunilor */

    dim_min = %dim_max = Max (bi " i(C ))

    mincost  = ∞dim_mincost  = ∞for dim_curent ! in dim_min to dim_max loop

    /* calculeaz# rata la vârf a magistralei */rata_vârf ( B) = dim_curent ! / prot_delay ( B)

    /* calculeaz# suma ratelor medii ale canalelor pentru dim_curent ! */ suma_rata_med  = 0;for toate canalele C  ∈  B loop

    rata med C   acces P C biþi C  timp calcul P timp comunic P  

     _ ( ) ( , ) ( ) _ ( ) _ ( )

    =   ×+

     suma_rata_med  = suma_rata_med  + rata_med  (C)end loop

    if  (rata_vârf  ( B) > suma_rata_med ) then/* solu$ie fezabil#, determin# costul minim */cost_curent  = CalculCost  (dim_curent !)if  (cost_curent  < mincost ) then

    mincost  = cost_curent dim_mincost  = dim_curent !

    end if end if end loop

    if  (mincost  = ∞)then return (e #ec)else return (dim_mincost )

    end if 

    Figura 22. Algoritm pentru determinarea dimensiunii magistralei.

  • 8/18/2019 Minimizarea starilor

    40/47

    Sistem CAD pentru sinteza sistemelor numerice 39

    xim# a magistralei, dim_max, este dimensiunea maxim# a mesajelor transmise prin ori-care canal. Dimensiunea minim#, dim_min, este %.

    Variabila dim_curent ! reprezint# dimensiunea curent#  care este evaluat# de al-goritm. Pentru fiecare valoare din domeniul (dim_min, dim_max), se calculeaz# rata lavârf a magistralei cu ecua$ia (3.%).

    Se noteaz# cu acces(P,C) num#rul mediu de accesuri efectuate de c#tre procesul P  la canalul C . Num#rul de bi$i transmi"i sau recep$iona$i prin canalul C  într-un singur mesaj se noteaz# cu bi " i(C). Dac# un proces face acces la o variabil# de tip tablou princanal, dimensiunea adresei este de asemenea inclus#  în bi " i(C). De exemplu, dac#  un

     proces face acces la o variabil# scalar # de %6 bi$i x "i la o variabil# de tip tablou y de 32cuvinte × %6 bi$i prin canalele Cx, respectiv Cy, atunci bi " i(Cx) este %6, iar bi " i(Cy) este2% (5 bi$i de adres# "i %6 bi$i de date).

    Pentru simplitate, se presupune c# un proces  P  are un singur canal C  prin caresunt transferate mesajele. În cazul în care dimensiunea curent# este mai mic# decât nu-m#rul de bi$i ai mesajului, pot fi necesare mai multe transferuri (în num#r de

    biþi C curentã( ) / dim_   ) pentru implementarea transferului unui singur mesaj. Timpulnecesar comunica$iei pentru procesul P  este calculat astfel:

     )( _ dim_ 

    )(),(=)( _    

     

      

     ×

    ×  Bdelay prot 

    curenta

    C bi " iC  P acces P comunictimp (3.5)

    Utilizând valoarea calculat# mai sus pentru timp_comunic(P), se poate calcularata medie pentru fiecare canal asignat magistralei. Suma ratelor medii a canalului pen-tru o valoare specific# a variabilei dim_curent ! este memorat# în suma_rata_med .

    Dac#  rata la vârf a magistralei, rata_vârf(B), este mai mic# decât suma ratelor medii a tuturor canalelor, atunci dim_curent !  reprezint# o implementare a magistraleicare nu este fezabil#. Se repet# calcularea ratei la vârf a magistralei "i a sumei ratelor canalelor pentru urm#toarea dimensiune în cadrul domeniului (dim_min, dim_max).

    Dac# rata la vârf a magistralei este mai mare decât suma ratelor medii ale cana-lelor, atunci dim_curent ! reprezint# o implementare fezabil# a magistralei. Pentru fieca-re restric$ie asupra dimensiunii magistralei, a ratelor medii "i la vârf specificate pentrumagistral#, procedura CalculCost  calculeaz# costul unei implement#ri fezabile ca suma

     p#tratelor pentru toate viol#rile restric$iilor, înmul$ite cu ponderile relative specificate pentru restric$iile respective. De exemplu, presupunem c# singura restric$ie specificat#

    este cea a dimensiunii maxime a magistralei, reprezentat# de max_linii. Fie k  ponderearelativ# specificat# pentru aceast# restric$ie. Pentru fiecare valoare a dimensiunii magis-tralei, dim_curent !, func$ia de cost pentru magistral# va fi definit# astfel:

      >−

    = altfel 0

    max_ dim_ daca))max_ (dim_ (cos

    2 liniicurentaliniicurentak t   (3.6)

    Pot fi specificate "i alte func$ii de cost pentru evaluarea costului asociat cu o di-mensiune specific# a magistralei. De exemplu, dac# se dore"te o implementare a magis-tralei cu un num#r minim de linii, costul poate fi calculat simplu, ca fiind valoareadim_curent !.

  • 8/18/2019 Minimizarea starilor

    41/47

    Sistem CAD pentru sinteza sistemelor numerice 40

    Dac#  exist#  mai multe solu$ii fezabile pentru grupul de canale, pentru imple-mentare se selecteaz# dimensiunea care conduce la costul minim. Variabila mincost  dincadrul algoritmului reprezint#  costul minim calculat pentru toate implement#rile fe-zabile, iar variabila dim_mincost   reprezint# dimensiunea care corespunde costului mi-

    nim.Dac# nu exist# solu$ii fezabile pentru niciuna din dimensiunile examinate, atunci

    o implementare pentru grupul respectiv de canale nu este posibil#. Orice implementare aunui asemenea grup de canale va întârzia procesele care comunic# prin magistral#. Oasemenea situa$ie poate apare dac# mai multe canale cu rate medii foarte ridicate suntgrupate pentru a fi implementate printr-o singur # magistral#. O solu$ie poate fi divizareagrupului de canale pentru a fi implementate ulterior prin mai multe magistrale. O alt#

     posibilitate este selec$ia dimensiunii nefezabile cu costul minim.

    33..33..44.. GGeenneerraarreeaa pprroottooccoolluulluuiiD