Кіріспе

Компьютерлік процессордың компоненті Компьютерлік процессордың компоненті Басқару блогы (ББ) – компьютердің орталық процессор бөлігінің (CPU) жұмысын бағыттайтын компоненті. ББ әдетте кодталған командаларды уақыттық және басқару сигналдарына түрлендіру үшін екілік декодерді пайдаланады, бұл сигналдар жад, арифметикалық-логикалық құрылғы және кіріс-шығыс құрылғылары сияқты басқа бөліктердің жұмысын бағыттайды. Көптеген компьютерлік ресурстар ББ арқылы басқарылады. Ол CPU мен басқа құрылғылар арасындағы деректер ағынын басқарады. Джон фон Нейман басқару блогын фон Нейман архитектурасының құрамына енгізген. Қазіргі заманғы компьютерлерде басқару блогы әдетте CPU-дың ішкі бөлігі болып табылады және оның негізгі функциясы мен жұмысы енгізілгеннен бері өзгерген жоқ.

Көп циклді басқару блоктары

Ең қарапайым компьютерлер көп циклді микроархитектураны қолданады. Бұл ең алғашқы құрылымдар. Олар әлі де ең кішкентай компьютерлерде, мысалы, жабдықты басқаратын кіріктірілген жүйелерде жиі қолданылады. Компьютерде басқару блогы нұсқаулар циклін бірінен соң бірі орындайды. Бұл нұсқауды алу, операндарды алу, нұсқауды түсіндіру, нұсқауды орындау және нәтижелерді жадқа жазудан тұрады. Басқару блогына келесі нұсқау келгенде, ол нұсқауды дұрыс орындау үшін басқару блогының жұмысын өзгертеді. Осылайша, нұсқаудың биттері тікелей басқару блогын басқарады, ал ол өз кезегінде компьютерді басқарады. Басқару блогының логикасына қандай қадам жасау керектігін көрсету үшін бинарлық санауыш қолданылуы мүмкін. Көп циклді басқару блоктары әдетте тіктөртбұрышты толқынның өсу және төмендеу жиектерін пайдаланады. Олар операцияның бір қадамын уақыт сағатының әр жиегінде орындайды, сондықтан төрт қадамдық операция екі циклде аяқталады. Бұл бірдей логикалық элементтерді ескере отырып, компьютердің жылдамдығын екі есе арттырады. Көптеген компьютерлерде екі түрлі күтпеген оқиға болады. Үзіліс, егер кіріс немесе шығысқа дұрыс жұмыс істеу үшін бағдарламалық қолдау қажет болса, пайда болады. Ал қателік компьютердің жұмысынан туындайды. Маңызды айырмашылық – үзілістің уақытын болжау мүмкін емес. Тағы бір айырмашылық – кейбір қателіктер (мысалы, жад қолжетімсіз қателігі) қайта іске қосу қажет болатын нұсқаудан туындауы мүмкін. Басқару блоктары үзілістерді басқару үшін екі стандартты тәсілдің бірін пайдалана алады. Егер жылдам жауап беру маңыздырақ болса, басқару блогы үзілісті өңдеу үшін жұмысты тоқтатуға бағдарланады. Бұл жағдайда, ағымдағы жұмыс соңғы аяқталған нұсқаудан кейін қайта басталады. Егер компьютер өте арзан, өте қарапайым, өте сенімді болуы керек немесе көбірек жұмыс істеуі керек болса, басқару блогы үзілісті өңдеуден бұрын ағымдағы жұмысты аяқтайды. Жұмысты аяқтау арзан, өйткені соңғы аяқталған нұсқауды сақтау үшін тіркегіш қажет емес. Бұл қарапайым және сенімді, өйткені оның ең аз күйлері бар. Сондай-ақ, ол ең аз жұмысты ысыраптайды. Қателіктер өте қарапайым компьютерлерде үзілістер сияқты жұмыс істеуі мүмкін. Егер виртуалды жад қажет болса, жад қолжетімсіз қателігі сәтсіз нұсқауды қайтадан орындау керек. Көп циклді компьютерлер көбірек циклдарды пайдалануы жиі кездеседі. Кейде шартты секіру үшін көбірек уақыт кетеді, өйткені бағдарлама санағышын қайта жүктеу қажет. Кейде олар көбейту немесе бөлу нұсқауларын екілік ұзын көбейту және бөлу сияқты процестер арқылы орындайды. Өте кішкентай компьютерлер арифметикалық амалдарды бір немесе бірнеше биттен бастап орындай алады. Кейбір компьютерлерде көп қадамдарды қажет ететін өте күрделі нұсқаулар бар.

Құбырлы басқару блоктары

Көптеген орташа күрделіліктегі компьютерлер нұсқауларды конвейерлендіреді. Бұл конструкция өнімділігі мен жылдамдығы үшін танымал. Конвейерлендірілген компьютерде нұсқаулар компьютер арқылы ағып өтеді. Бұл конструкция бірнеше кезеңнен тұрады. Мысалы, әр кезең фон Нейман циклінің бір қадамын орындауы мүмкін. Конвейерлендірілген компьютерде әр кезеңнен кейін әдетте «конвейерлік тіркегіштер» болады. Олар кезең есептеген биттерді сақтайды, сонда келесі кезеңнің логикалық қақпалары оларды келесі қадамды орындау үшін пайдалана алады. Жұп нөмірлі кезеңдер квадрат толқынды сағаттың бір жиегінде, ал тақ нөмірлі кезеңдер екінші жиегінде жұмыс істеуі әдеттегі жағдай. Бұл бір жиекті конструкцияларға қарағанда компьютердің жылдамдығын екі есе арттырады. Конвейерлендірілген компьютерде басқару блогы ағынның басталуын, жалғасуын және тоқтатылуын бағдарламаның командаларына сәйкес ұйымдастырады. Нұсқаулық деректер әдетте конвейерлік тіркегіштер арқылы бір кезеңнен келесі кезеңге жіберіледі, әр кезең үшін жеке басқару логикасы бөлігімен. Басқару блогы сондай-ақ әр кезеңдегі нұсқаулардың басқа кезеңдердегі нұсқаулардың жұмысына зиян келтірмейтінін қамтамасыз етеді. Мысалы, егер екі кезең бір деректерді пайдалануы керек болса, басқару логикасы олардың дұрыс ретпен пайдаланылуын қамтамасыз етеді. Тиімді жұмыс істеген кезде конвейерлендірілген компьютерде әр кезеңде нұсқау болады. Ол сонда барлық нұсқауларды бір уақытта өңдейді. Ол әр циклде шамамен бір нұсқауды аяқтай алады. Бағдарлама шешім қабылдап, басқа нұсқаулар тізбегіне ауысқанда, конвейер кейде өңделіп жатқан деректерді жойып, қайта іске қосуы керек. Бұл «тоқтау» деп аталады. Егер екі нұсқау кедергі келтіре алса, басқару блогы кейде ертерек нұсқау аяқталғанға дейін кешіккен нұсқауды өңдеуді тоқтатуы керек. Бұл «конвейерлік көпіршік» деп аталады, өйткені конвейердің бір бөлігі нұсқауларды өңдемейді. Конвейерлік көпіршіктер екі нұсқау бір тіркегіште жұмыс істегенде пайда болуы мүмкін. Үзілістер мен күтпеген қателер де конвейерді тоқтатады. Конвейерлендірілген компьютер үзіліс үшін жұмысты тоқтатса, көп циклді компьютерге қарағанда көбірек жұмыс жоғалады. Болжамды қателер тоқтатуды қажет етпейді. Мысалы, егер қателік нұсқаулық операциялық жүйеге кіру үшін пайдаланылса, ол тоқтатуды тудырмайды. Электрондық логиканың бірдей жылдамдығы үшін конвейерлендірілген компьютер көп циклді компьютерге қарағанда секундына көбірек нұсқауларды орындай алады. Сонымен қатар, электрондық логиканың ең жоғары жылдамдығы болса да, конвейердегі кезеңдер санын өзгерту арқылы конвейерлендірілген компьютерді жылдамдатуға немесе баяулатуға болады. Көп кезеңдер болғанда, әр кезең аз жұмыс істейді, сондықтан кезеңде логикалық қақпалардан туындайтын кешігу азаяды. Компьютердің конвейерлендірілген моделінде көбінесе секундына бір нұсқау үшін көп циклді және тәртіпсіз компьютерлерге қарағанда логикалық қақпалар аз болады. Өйткені орташа кезең көп циклді компьютерге қарағанда аз күрделі. Тәртіпсіз компьютерде кез келген уақытта бос логиканың үлкен көлемі болады. Ұқсас есептеулер конвейерлендірілген компьютер бір нұсқау үшін аз энергия жұмсайтынын көреді. Алайда, конвейерлендірілген компьютер әдетте ұқсас көп циклді компьютерге қарағанда күрделірек және қымбат болады. Онда әдетте көбірек логикалық қақпалар, тіркегіштер және күрделі басқару блогы болады. Сол сияқты, ол жалпы энергияны көбірек пайдалануы мүмкін, бірақ бір нұсқау үшін аз энергия жұмсайды. Тәртіпсіз процессорлар көбінесе секундына көбірек нұсқауларды орындай алады, өйткені олар бір уақытта бірнеше нұсқауларды орындай алады.

Тоқтамауға жол бермеу

Басқару блоктары құбырды толтыру және тоқтаудан сақтану үшін көптеген әдістерді қолданады. Мысалы, тіпті қарапайым басқару бірліктері кері бұтақты, төмен нөмірленген, ертерек нұсқаулыққа қарайтын бұтақты цикл деп есептеуі мүмкін және оның қайталануын күтеді. Сондықтан, осылай құрылған басқару блогы құбырды әрқашан кері бұтақ жолымен толтырады. Егер компилятор бұтақтың ең көп қолданылатын бағытын анықтаса, компилятор нұсқауларды осы бағытқа сәйкес жасай алады, яғни ең көп қолданылатын бұтақ артықшылықты бағыт болады. Сол сияқты, басқару блогы компилятордан кеңес ала алады: кейбір компьютерлерде бұтақтың бағыты туралы ақпаратты кодтауға мүмкіндік беретін нұсқаулар бар. Кейбір басқару блоктары бұтақтарды болжайды: басқару блогы соңғы бұтақтардың электрондық тізімін сақтайды, бұл тізім бұтақ нұсқаулығының адресімен кодталған. Бұл тізім нұсқауды қашан орындауға болатынын анықтайды. Массивтің "биіктігі" – орындау бірліктерінің саны, ал "ұзындығы" мен "ені" – операндтардың көздерінің саны. Барлық элементтер біріккенде, операндтар мен орындау бірлігі сигналдары қиылысады. Бұл қиылыстағы логика нұсқаудың орындалуға дайын екенін анықтайды, сонда нұсқау бос орындау бірлігіне "жіберіледі". Басқару блогын жіберудің тағы бір әдісі – Томасуло алгоритмін қолдану, ол нұсқаулардың аппараттық кезегін қайта ұйымдастырады. Бір жағынан, екі әдіс те кезекті пайдаланады. Скриншот – нұсқаулар кезегін кодтау және қайта реттеудің тағы бір тәсілі, кейбір инженерлер оны кезектің кестесі деп атайды. Қосымша логикамен, скриншот орындалу реттілігін, тізілімдерді қайта атауды және ерекше жағдайларды және үзілістерді тиімді біріктіре алады. Бұдан өзге, ол Томасуло алгоритмінде қолданылатын, қуатты және күрделі мазмұнды адрестейтін жадты пайдаланбай-ақ мұны істей алады.

Басқару блоктарын аудару

Кейбір компьютерлер әрбір жеке нұсқауды қарапайым нұсқаулар тізбегіне аударады. Бұл артықшылықтың себебі – реті келмейтін (out of order) процессор логикасының көп бөлігін қарапайым етуге болады, сонымен қатар күрделі көп қадамды нұсқауларды өңдеуге мүмкіндік береді. x86 Intel процессорлары Pentium Pro-дан бері күрделі CISC x86 нұсқауларын RISC-тің ішкі микрооперацияларына айналдырады. Мұндай процессорларда басқару блогының "алдыңғы" бөлігі нұсқауларды аударумен айналысады. Операндар аударылмайды. Басқару блогының "арқасы" – бұл реті келмейтін процессор, ол микрооперацияларды және операндарды орындау бірліктеріне және дерек жолдарына жібереді.

Қуаттылығы аз компьютерлерді басқару блоктары

Қазіргі заманғы компьютерлердің көпшілігі энергия тұтынуын азайтуға бағытталған басқару элементтерімен жабдықталған. Аккумулятормен жұмыс істейтін компьютерлерде, мысалы ұялы телефондарда, бұл аккумулятордың қызмет ету мерзімін ұзартады. Желілік қуатпен жұмыс істейтін компьютерлерде мұның себебі – электр қуаты, салқындату немесе шу шығындарын азайту. Көптеген заманауи компьютерлер CMOS логикасын қолданады. CMOS екі негізгі жолмен қуатты ысырап етеді: күйін өзгерту арқылы, яғни «белсенді қуат» арқылы, және қажетсіз ағым арқылы. Компьютердің белсенді қуатын басқару сигналдарын өшіру арқылы азайтуға болады. Ағымды азайту үшін электр кернеуін төмендету, транзисторлардың тозу аймақтарын кеңейту немесе логиканы толығымен өшіру шаралары қолданылады. Белсенді қуатты азайту оңайрақ, себебі логикада сақталған деректерге әсер етілмейді. Көбінесе процессордың тактық жиілігі төмендетіледі. Көптеген компьютер жүйелері осы әдісті пайдаланады. Тактық жиілікті өзгертуден туындаған қосымша әсерлерден сақтану үшін процессор көбінесе күту режиміне ауысады. Көптеген компьютерлерде «halt» командасы бар. Бұл команда үзіліссіз кодты тоқтату үшін жасалған, соның арқасында үзіліс кодының уақыты сенімді болады. Бірақ, әзірлеушілер тез арада «halt» командасының процессордың тактын толығымен өшіруге және оның белсенді қуатын нөлге дейін азайтуға мүмкіндік беретінін байқады. Үзіліс контроллеріне такты қажет болуы мүмкін, бірақ ол әдетте процессорға қарағанда әлдеқайда аз қуатты тұтынады. Бұл әдістерді жүзеге асыру салыстырмалы түрде оңай, сондықтан олар кең таралды және коммерциялық артықшылықтар үшін жаңа әдістер ойлап табылды. Көптеген заманауи, аз қуатты CMOS процессорлары қажетті командаларға байланысты арнайы орындау блоктары мен шина интерфейстерін қосып, өшіріп отырады. Кейбір компьютерлер тіпті процессордың микроархитектурасын осылай ұйымдастырады, әрбір команда тек қажетті логикалық бөліктерді ғана пайдаланады. Жүктемені көптеген процессорларға бөлу және жүктеме азайғанда пайдаланылмаған процессорларды өшіру – тағы бір кең таралған әдіс. Операциялық жүйенің тапсырма алмастыру логикасы процессордың деректерін жадқа сақтайды. Кейбір жағдайларда процессордың бірі қарапайым және кішкентай болуы мүмкін, тіпті логикалық қақпалары аз. Сондықтан, оның ағыны төмен, ол соңғы болып өшіріледі және бірінші болып қосылады. Бұл жағдайда ол арнайы, аз қуатты мүмкіндіктерді қажет ететін жалғыз процессор болады. Осыған ұқсас әдіс қуат жүйесін басқаратын қосымша кіріктірілген процессорға ие көптеген компьютерлерде қолданылады. Бірақ, компьютерлерде бағдарламалық қамтамасыз ету әдетте операциялық жүйеде емес, BIOS-та орналасқан. Теориялық тұрғыдан алғанда, төмен тактық жиілігі бар компьютерлер қуат көзінің кернеуін төмендету арқылы ағынды да азайта алады. Бұл компьютердің сенімділігіне әсер ететін көптеген факторларға байланысты, сондықтан инженерлік шешімдер қымбатқа түседі және бұл тек жоғары бағалы компьютерлерде ғана, мысалы, ПК немесе ұялы телефондарда қолданылады. Кейбір конструкциялар өте аз ағынды транзисторларды пайдалана алады, бірақ бұл әдетте құнға әсер етеді. Транзисторлардың тозу кедергілерін үлкейту арқылы ағынды азайтуға болады, бірақ бұл транзисторды үлкейтіп, оны баяу және қымбат етеді. Кейбір өндірушілер бұл әдісті IC-нің таңдалған бөліктерінде қолданады, аналогтық схемалар үшін кейбір процестер ұсынатын үлкен транзисторлардан аз ағынды логика құрастырады. Кейбір процестер транзисторларды кремнийдің бетінен жоғары, «fin fets» деп аталатын құрылымдарға орналастырады, бірақ бұл процестерде қадамдар көбірек, сондықтан олар қымбат. Арнайы транзисторлық қоспа материалдары (мысалы, гафний) да ағынды азайта алады, бірақ бұл өңдеуге қосымша қадамдарды қосады, оны қымбат етеді. Кейбір жартылай өткізгіштер кремнийге қарағанда үлкен жолақты аралыққа ие. Алайда, бұл материалдар мен процестер қазіргі уақытта (2020) кремнийге қарағанда қымбат. Ағынды басқару қиын, себебі логиканы өшіруден бұрын, ондағы деректер аз ағынды сақтаудың бір түріне көшірілуі керек. Кейбір процессорлар арнайы типтегі флип-флопты (битті сақтау үшін) пайдаланады, ол жылдам, жоғары ағынды сақтау жасушасын баяу, үлкен (құнды) төмен ағынды жасушамен біріктіреді. Бұл екі жасушаның қуат көздері бөлек. Процессор қуатты үнемдеу режиміне кіргенде (мысалы, үзілісті күтетін «halt» командасы болғанда), деректер төмен ағынды жасушаларға беріледі, ал қалғандары өшіріледі. Процессор төмен ағынды режимнен шыққанда (мысалы, үзіліс болғанда), процесс кері қайтарылады. Ескі конструкциялар процессордың күйін жадқа немесе тіпті дискіге көшіретін, кейде арнайы бағдарламалық қамтамасыз етуді пайдаланатын. Өте қарапайым кіріктірілген жүйелер кейде жай ғана қайта іске қосылады.

Компьютермен біріктіру

Барлық заманауи процессорлар CPU-ны компьютердің қалған бөлігімен байланыстыру үшін басқару логикасына ие. Қазіргі компьютерлерде бұл әдетте шина контроллері болып табылады. Егер нұсқау жадтан мәліметтерді оқыса немесе жазса, басқару блогы тікелей шинаны басқарады немесе шина контроллерін басқарады. Көптеген заманауи компьютерлер жад, кіріс және шығыс үшін бірдей шина интерфейсін пайдаланады. Бұл "жадқа бейнеленген кіріс-шығыс" деп аталады. Бағдарламашы үшін кіріс-шығыс құрылғыларының тізілімдері белгілі бір жад адрестеріндегі сандар ретінде көрінеді. x86 компьютерлері ескі әдісті қолданады – кіріс-шығыс нұсқаулары арқылы қол жетімді жеке кіріс-шығыс шинасын. Заманауи CPU-да сонымен қатар үзіліс контроллері де болады. Ол жүйелік шинадан келетін үзіліс сигналдарын басқарады. Басқару блогы – компьютердің үзілістерге жауап беретін бөлігі. Көбінесе кэш жадының кэшін басқару үшін кэш контроллері қосылады. Кэш контроллері және оған байланысты кэш жады көбінесе қазіргі заманғы, жоғары өнімділіктегі CPU-дың ең үлкен физикалық бөлігі болып табылады. Егер жад, шина немесе кэш басқа процессорлармен ортақ болса, басқару логикасы олармен байланысып, ешбір компьютердің ескірген деректер алмауына көз жеткізеді. Көптеген тарихи компьютерлер кіріс-шығысты басқару блогына тікелей енгізген. Мысалы, көптеген тарихи компьютерлерде басқару блогымен тікелей басқарылатын қосқыштар мен шамдар бар алдыңғы панель болды. Бұл бағдарламашыға бағдарламаны тікелей енгізіп, оны жөндеуге мүмкіндік берді. Кейінгі өндірістегі компьютерлерде алдыңғы панель көбінесе операциялық жүйені дискіден оқу үшін кішкентай жүктеу бағдарламасын енгізу үшін қолданылды. Бұл ыңғайсыз болды. Сондықтан алдыңғы панельдер тек оқуға арналған жадтағы жүктеу бағдарламаларымен ауыстырылды. PDP 8 модельдерінің көпшілігі кіріс-шығыс құрылғыларына басқару блогының жадты оқу және жазу логикасын пайдалануға мүмкіндік беретін дерек шинасына ие болды. Бұл жоғары жылдамдықты кіріс-шығыс контроллерлерінің күрделілігі мен құнын азайтты, мысалы дискі үшін. Xerox Alto көп тапсырмалы микропрограммаланатын басқару блогына ие болды, ол барлық кіріс-шығыс операцияларын орындады. Бұл конструкция қазіргі заманғы компьютердің көптеген мүмкіндіктерін электрондық логиканың өте шағын бөлігімен қамтамасыз етті. Екі жіпті компьютер ең төменгі басымдыққа ие екі микрожіппен басқарылды. Олар кіріс-шығыс қажет болмаған кезде есептеулер жүргізді. Жоғары басымдықты микрожіптер (басымдығы төмендеу ретімен) бейне, желі, дискі, периодты таймер, тышқан және пернетақтамен қамтамасыз етілді. Микропрограмма кіріс-шығыс құрылғысының күрделі логикасын, сондай-ақ құрылғыны компьютермен біріктіру логикасын жасады. Нақты аппараттық кіріс-шығыс үшін микропрограмма көптеген кіріс-шығыс операциялары үшін ауысу тізілімдерін оқыды және жазды, кейде шығыс кернеу деңгейлерін өзгерту үшін резисторлар желісі мен транзисторларды пайдаланды (мысалы, бейне үшін). Сыртқы оқиғаларды басқару үшін микробасқарушыда жіптер циклының соңында, мысалы, нұсқаудың соңында немесе ауысу тізіліміне кіргеннен кейін жіптерді ауыстыру үшін микроүзілістер болды. Микропрограмманы қайта жазуға және қайта орнатуға болады, бұл зерттеу компьютері үшін өте пайдалы болды.

Басқару блогының функциялары

Осылайша, жадыдағы нұсқаулар бағдарламасы басқару блогын (БУ) процессордың дерек ағынын нұсқаулар орындалғанда деректерді дұрыс өңдеу үшін реттеуге мүмкіндік береді. Бұл толық бағдарламаны іске қоса алатын компьютерді қамтамасыз етеді және нұсқаулар арасында аппараттық өзгерістер енгізу үшін адамның араласуын қажет етпейді (бұрынғы перфокарталарды қолданғандағы есептеулердегідей, сақталған бағдарламалы компьютерлер мен басқару блогы ойда келгенше).

Қондырмалы басқару блогы

Қатты сымдалған басқару блоктары комбинациялық логикалық блоктар арқылы іске асырылады, олар берілген нұсқауларға сәйкес нақты нәтижелерді шығаруға қабілетті шектеулі сандағы логикалық элементтерді қамтиды. Қатты сымдалған басқару блоктары микропрограммаланған конструкциялардан әдетте жылдам жұмыс істейді. Бұл конструкция тұрақты архитектураны қолданады – нұсқаулар жиынтығы өзгертілсе немесе жаңартылса, сымдарды өзгерту қажет болады. Бұл қарапайым, жылдам компьютерлер үшін ыңғайлы болуы мүмкін. Осы тәсілді қолданатын басқарушы жоғары жылдамдықпен жұмыс істей алады, бірақ оның икемділігі шектеулі. Күрделі нұсқаулар жиынтығы ad hoc логикалық есептеулерді қолданатын инженерді қиын жағдайға түсіруі мүмкін. Компьютерлердің дамуымен қатар, қатты сымдалған тәсілтің қолданылуы азайды. Бұрын процессорлардың басқару блоктары ad hoc логикасын қолданды, оларды жобалау қиын болды.

Микропрограмманы басқару блогы

Микропрограммалау идеясын Морис Уилкс 1951 жылы компьютерлік бағдарлама нұсқауларын орындау үшін аралық деңгей ретінде ұсынды. Микропрограммалар микронұсқаулар тізбегі ретінде ұйымдастырылып, арнайы басқару жадында сақталады. Микропрограммалық басқару блогының алгоритмі, қатты сымдалған басқару блогынан өзгеше, әдетте блок-схема түрінде сипатталады. Микропрограммаланған басқару блогының негізгі артықшылығы – оның құрылымының қарапайымдылығы. Басқару блогынан шығатын сигналдар микронұсқаулар арқылы жүзеге асырылады. Микропрограмманы бағдарламалық құралдар сияқты жөндеуге және алмастыруға болады.

Құрылыстың біріктірілген әдістері

Микрокодтың кең таралған түрі – микрокодты бағдарламалық қамтамасыз ету симуляторы арқылы түзету. Микрокод – биттерден тұратын кесте. Бұл логикалық шындық кестесі болып табылады, ол микрокод адресін басқару блогының шығыстарына түрлендіреді. Осы шындық кестесін оптимизацияланған электрондық логиканы құратын компьютерлік бағдарламаға беруге болады. Соның нәтижесінде басқару блогын микробағдарламалаудай оңай жобалауға мүмкіндік туады, бірақ ол қатты сымдалған басқару блогының жылдамдығы мен логикалық элементтерінің азайып кету сипаттамаларына ие. Практикалық нәтиже Мейли машинасына немесе Ричардс контроллеріне ұқсас болады.