Какво е микрооперация?

Компютрите се програмират с езици за програмиране. Тези езици обикновено са лесни за четене и позволяват на програмиста да конфигурира какво прави компютърът. След това този код трябва да се компилира в компютърни инструкции. Точните подробности за това варират в зависимост от архитектурата на набора от инструкции или ISA, които компютърът използва. Ето защо има различни връзки за изтегляне за процесори x86 от Intel и AMD и процесори ARM, използвани в съвременните устройства на Apple. ISA на x86 и ARM е различен; софтуерът трябва да се компилира отделно. Както показа Apple, възможно е да се изгради фантастичен слой за превод; просто не е обичайно да се прави така.

Може да си помислите, че процесорът вижда инструкциите, които му се представят, и след това ги изпълнява по ред. Има много трикове, които съвременните процесори правят, включително изпълнение извън реда, което позволява на процесора да пренарежда нещата в движение, за да оптимизира производителността. Въпреки това, една умна част, която е доста добре скрита, са микрооперациите.

Тръбопроводът към микрооперацията

Индивидуалните инструкции в машинния код могат да бъдат наречени инструкции или операции; термините са взаимозаменяеми. Една от трудностите с Complex Instruction Set Computing или CISC архитектурите като x86 е, че инструкциите могат да варират в зависимост от дължината им. Това се отнася по-специално до това колко данни са необходими за представяне. В x86 една инструкция може да бъде кратка от един байт или дълга до 15. Сравнете това със стандартната RISC-V архитектура, използвана от съвременните процесори ARM с 4-байтови инструкции с фиксирана дължина.

Съвет: RISC е съкращение от Reduced Instruction Set Computing.

Едно от последиците от тази разлика в структурата е, че RISC архитектурите обикновено са много по-лесни за ефективно конвейериране. Всяка инструкция има няколко етапа на своята работа, които използват различен хардуер. Конвейерът изпълнява множество инструкции през тези етапи едновременно, с точно една инструкция във всеки етап. Конвейерната обработка предлага значително повишаване на производителността, когато се използва ефективно. Един ключов фактор за ефективното използване на тръбопровод е да се гарантира, че всеки етап се използва едновременно. Това поддържа всичко да върви гладко през тръбопровода.

Тъй като всички инструкции са с еднаква дължина, RISC инструкциите изискват същото време за обработка една на друга. В CISC обаче, подобно на x86, изпълнението на някои инструкции може да отнеме много повече време от други. Това създава голям проблем с ефективността при конвейерна обработка на процесор. Всеки път, когато се появи по-дълга инструкция, тя остава в конвейера за по-дълго. Това причинява балон и задържа всичко зад него. Микрооперациите са решението за това.

Ефективни микрооперации

Вместо да третират всяка инструкция като единственото ниво на операция, която може да бъде изпълнена, микрооперациите въвеждат нов по-нисък слой. Всяка операция може да бъде разделена на много микрооперации. Като проектирате внимателно микрооперациите, можете да оптимизирате тръбопровода.

Интересното е, че това предлага ново предимство. Докато цялостната ISA, да речем x86, остава същата между много различни поколения процесори, микрооперациите могат да бъдат проектирани по поръчка за всяко поколение хардуер. Това може да се направи с дълбоко разбиране на това колко производителност може да се изтръгне от всеки етап на тръбопровода за всяка микрооперация.

В ранните дни на микрооперациите те бяха твърдо свързани връзки, които активираха или деактивираха специфична функционалност в зависимост от микрооперацията. В съвременния дизайн на процесора микрооперация се добавя към буфер за пренареждане. Това е буферът, чрез който процесорът може да извърши своето ориентирано към ефективността пренареждане. Това са микрооперации, а не действителни инструкции, които се пренареждат.

В някои случаи, особено с по-модерни процесори, може да се направи дори повече. Сливането на микрооперации е мястото, където множество микрооперации се комбинират в една. Например, поредица от прости микрооперации може да извърши действие, което може да бъде извършено с една по-сложна инструкция. Чрез намаляване на броя на извършваните микрооперации процесът може да завърши по-бързо. Това също намалява броя на промените в състоянието, намалявайки консумацията на енергия. Пълните инструкции могат дори да бъдат анализирани и комбинирани в по-ефективни микрооперативни структури.

Някои процесори използват кеш за микро операции. Това съхранява напълно декодирани последователности от микрооперации, които могат да бъдат използвани повторно, ако бъдат извикани отново. Обикновено размерът на такъв кеш се определя от броя на микрооперациите, които може да съхранява, а не от капацитета на байтовете.

Заключение

Микрооперацията е специфична за процесора реализация на набор от инструкции. Инструкциите се декодират до поредица от микрооперации. Тези микрооперации са значително по-лесни за по-ефективно тръбопровод и по този начин използват по-добре ресурсите на процесора. Тъй като микрооперациите не са твърдо кодирани в набора от инструкции, те могат да бъдат персонализирани към специфичния хардуер на всяко поколение CPU. Микрооперациите често се съкращават до микрооперации или дори μops. Това използва гръцката буква μ ( произнася се Mu ), символът SI за микропрефикса.


Как да клонирате твърд диск

Как да клонирате твърд диск

В съвременната цифрова ера, където данните са ценен актив, клонирането на твърд диск в Windows може да бъде решаващ процес за мнозина. Това изчерпателно ръководство

Как да коригирам неуспешно зареждане на драйвер WUDFRd на Windows 10?

Как да коригирам неуспешно зареждане на драйвер WUDFRd на Windows 10?

Изправени ли сте пред съобщението за грешка при зареждане на компютъра, което казва, че драйверът WUDFRd не успя да се зареди на вашия компютър?

Как да коригирате код за грешка на NVIDIA GeForce Experience 0x0003

Как да коригирате код за грешка на NVIDIA GeForce Experience 0x0003

Срещате ли NVIDIA GeForce код за грешка 0x0003 на вашия работен плот? Ако да, прочетете блога, за да разберете как да поправите тази грешка бързо и лесно.

Какво е SMPS?

Какво е SMPS?

Научете какво е SMPS и значението на различните рейтинги на ефективност, преди да изберете SMPS за вашия компютър.

Защо моят Chromebook не се включва

Защо моят Chromebook не се включва

Получете отговори на въпроса Защо моят Chromebook не се включва? В това полезно ръководство за потребителите на Chromebook.

Как да докладвате на Google за фишинг измами

Как да докладвате на Google за фишинг измами

Научете как да докладвате измамник на Google, за да му попречите да мами други с това ръководство.

Roomba спира, залепва и се обръща – Коригирайте

Roomba спира, залепва и се обръща – Коригирайте

Коригирайте проблем, при който прахосмукачката робот Roomba спира, залепва и продължава да се върти.

Как да промените графичните настройки на Steam Deck

Как да промените графичните настройки на Steam Deck

Steam Deck предлага стабилно и многостранно игрово изживяване на една ръка разстояние. Въпреки това, за да оптимизирате играта си и да осигурите възможно най-доброто

Какво представлява сигурността, базирана на изолация?

Какво представлява сигурността, базирана на изолация?

Щях да се задълбоча в тема, която става все по-важна в света на киберсигурността: сигурност, базирана на изолация. Този подход към

Как да използвате Auto Clicker за Chromebook

Как да използвате Auto Clicker за Chromebook

Днес щях да разгледам инструмент, който може да автоматизира повтарящи се задачи за щракване на вашия Chromebook: Auto Clicker. Този инструмент може да ви спести време и