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