Sunteți pe pagina 1din 2

Algoritm de partiionare pe niveluri a setului de micro-operaii dintr-un micro-subbloc.

SB = (B(o), <) microsublocul care trebuie sa il partiionam pe niveluri ( seturi de


microinstrucuni complete)
PT = partiia care se va genera
PTA = partiia de microinstructiuni anterioara, considerata cea mai buna pana in momentul respectiv
oD = setul de micro-operatii disponibile la momentul curent
oND = setul de micro-operatii nedisponibile la momentul curent
nmI = numarul de micro-instructiuni complete care s-ar putea genera
IC = micro-instructiunea completa generata din oD
{od} = multimea de micro-operatii disponibile rezultate ca urmare a generarii IC
Pas 1. Initializare
PT =
PTA = B(o)
oD = { o | o B(o) nu exista oi astfel ca oi < o}
oND = B(o) \ OD
Pas 2. Daca OND = si |oD| 3 atunci pas 5
Pas 3. Se genereaza
{IC} = multimea de I complete {IC}= {ICj, , ICk}
Daca j k (s-a generat o singura IC)
Atunci salvare
PTj = PT;
ODj = OD curent;
{IC}j = {IC}\ICj
Pas 4. PT = PT + ICj
OD = OD \ ICj U {od}j
oND = OND \ {od}j
Daca |OD| 0 si |PT| |PTj| -1
atunci salt la Pas 2
Pas 5. Daca OD =
Atunci salt Pas 7.
Pas 6. Se genereaza
IC din OD curent
PT = PT + IC
OD = OD \ IC
Daca OD si |PT| |PTA| -1
atunci salt Pas 4.
altfel salt Pas 2.
Pas 7. Daca |PT| |PTA|
atunci
altfel daca |PT| nmI
atunci PTA este optima STOP
Pas 8. Daca {IC}j =0 (cel care a fost salvat la Pas 3.
Atunci reface PT= PTj
OD= Odj
j=j+1 (selecteaza urmatoarea uIC din setul generat
IC = ICj
oND = B(o) \ PT \ OD
salt Pas 4.
Altfel PTA este optima STOP

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