Co to jest mikrooperacja?

Komputery są programowane za pomocą języków programowania. Języki te są ogólnie czytelne dla człowieka i pozwalają programiście skonfigurować działanie komputera. Ten kod należy następnie skompilować w instrukcje komputerowe. Dokładne szczegóły tego różnią się w zależności od architektury zestawu instrukcji lub ISA, z której korzysta zamierzony komputer. Dlatego istnieją różne łącza pobierania dla procesorów x86 firm Intel i AMD oraz procesorów ARM używanych w nowoczesnych urządzeniach Apple. ISA x86 i ARM jest inny; oprogramowanie należy skompilować oddzielnie. Jak pokazał Apple, możliwe jest zbudowanie wymyślnej warstwy tłumaczeniowej; po prostu nie jest to powszechne.

Można by pomyśleć, że procesor widzi instrukcje, które są mu prezentowane, a następnie wykonuje je w określonej kolejności. Istnieje wiele sztuczek, które wykonują nowoczesne procesory, w tym wykonywanie poza kolejnością, umożliwiające procesorowi zmianę kolejności rzeczy w locie w celu optymalizacji wydajności. Jednak sprytną częścią, która jest dość dobrze ukryta, są mikrooperacje.

Rurociąg do mikrooperacji

Poszczególne instrukcje w kodzie maszynowym można nazwać instrukcjami lub operacjami; warunki są wymienne. Jedną z trudności związanych z przetwarzaniem złożonego zestawu instrukcji lub architekturami CISC, takimi jak x86, jest to, że instrukcje mogą różnić się długością. Odnosi się to w szczególności do tego, ile danych reprezentują. W x86 instrukcja może być tak krótka, jak jeden bajt lub tak długa, jak 15. Porównaj to ze standardową architekturą RISC-V używaną przez nowoczesne procesory ARM z 4-bajtowymi instrukcjami o stałej długości.

Wskazówka: RISC to skrót od Reduced Instruction Set Computing.

Jedną z implikacji tej różnicy w strukturze jest to, że architektury RISC są znacznie łatwiejsze do wydajniejszego potokowania. Każda instrukcja ma wiele etapów działania, które wykorzystują inny sprzęt. Pipelining uruchamia jednocześnie wiele instrukcji przez te etapy, z dokładnie jedną instrukcją na każdym etapie. Pipelining oferuje znaczny wzrost wydajności, gdy jest używany efektywnie. Jednym z kluczowych czynników efektywnego wykorzystania potoku jest zapewnienie, że każdy etap jest używany jednocześnie. Dzięki temu wszystko przebiega płynnie przez potok.

Ponieważ wszystkie instrukcje mają tę samą długość, instrukcje RISC zwykle wymagają takiego samego czasu przetwarzania jak inne. Jednak w CISC, takim jak x86, wykonanie niektórych instrukcji może zająć znacznie więcej czasu niż innych. Stwarza to duży problem z wydajnością podczas potokowania procesora. Za każdym razem, gdy pojawia się dłuższa instrukcja, zatrzymuje się ona w potoku na dłużej. To powoduje bańkę i zatrzymuje wszystko, co się za nią znajduje. Rozwiązaniem tego problemu są mikrooperacje.

Wydajne mikrooperacje

Zamiast traktować każdą instrukcję jako jedyny możliwy do wykonania poziom operacji, mikrooperacje wprowadzają nową niższą warstwę. Każdą operację można podzielić na wiele mikrooperacji. Starannie projektując mikrooperacje, możesz zoptymalizować potok.

Co ciekawe, daje to nową korzyść. Podczas gdy ogólny ISA, powiedzmy x86, pozostaje taki sam dla wielu różnych generacji procesorów, mikrooperacje można zaprojektować na zamówienie dla każdej generacji sprzętu. Można to zrobić z głębokim zrozumieniem, ile wydajności można wycisnąć z każdego etapu potoku dla każdej mikrooperacji.

Na początku mikrooperacji były to połączenia przewodowe, które aktywowały lub wyłączały określone funkcje w zależności od mikrooperacji. W nowoczesnym projekcie procesora mikrooperacja jest dodawana do bufora zmiany kolejności. To właśnie ten bufor umożliwia procesorowi przeprowadzanie zorientowanej na wydajność zmiany kolejności. Zmienia się kolejność mikrooperacji, a nie rzeczywistych instrukcji.

W niektórych przypadkach, zwłaszcza w przypadku bardziej zaawansowanych procesorów, można zrobić jeszcze więcej. Fuzja mikrooperacji polega na połączeniu wielu mikrooperacji w jedną. Na przykład sekwencja prostych mikrooperacji może wykonać akcję, którą można wykonać za pomocą pojedynczej, bardziej złożonej instrukcji. Zmniejszając liczbę wykonywanych mikrooperacji, proces może zakończyć się szybciej. Zmniejsza to również liczbę zmian stanu, zmniejszając zużycie energii. Pełne instrukcje mogą być nawet analizowane i łączone w bardziej wydajne struktury mikrooperacji.

Niektóre procesory wykorzystują pamięć podręczną mikrooperacji. Przechowuje w pełni zdekodowane sekwencje mikrooperacji, które można ponownie wykorzystać, jeśli zostaną ponownie wywołane. Zazwyczaj rozmiar takiej pamięci podręcznej jest określany przez liczbę mikrooperacji, które może przechowywać, a nie przez pojemność bajtów.

Wniosek

Mikrooperacja to specyficzna dla procesora implementacja zestawu instrukcji. Instrukcje są dekodowane do serii mikrooperacji. Te mikrooperacje są znacznie łatwiejsze do wydajniejszego potokowania, a tym samym lepiej wykorzystują zasoby procesora. Ponieważ mikrooperacje nie są zakodowane na stałe w zestawie instrukcji, można je dostosować do konkretnego sprzętu każdej generacji procesora. Mikrooperacje są często skracane do mikrooperacji lub nawet μoperacji. To używa greckiej litery μ ( wymawiane Mu ), symbol SI dla przedrostka mikro.



Leave a Comment

Jak sklonować dysk twardy

Jak sklonować dysk twardy

We współczesnej epoce cyfrowej, gdzie dane są cennym zasobem, klonowanie dysku twardego w systemie Windows może być dla wielu kluczowych procesów. Ten obszerny przewodnik

Jak naprawić błąd ładowania sterownika WUDFRd w systemie Windows 10?

Jak naprawić błąd ładowania sterownika WUDFRd w systemie Windows 10?

Czy podczas uruchamiania komputera pojawia się komunikat o błędzie informujący, że nie udało się załadować sterownika WUDFRd na Twój komputer?

Jak naprawić błąd NVIDIA GeForce Experience o kodzie 0x0003

Jak naprawić błąd NVIDIA GeForce Experience o kodzie 0x0003

Czy na pulpicie pojawia się błąd NVIDIA GeForce o kodzie 0x0003? Jeśli tak, przeczytaj blog, aby dowiedzieć się, jak szybko i łatwo naprawić ten błąd.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Jak usunąć procesor graficzny z komputera z systemem Windows w 2023 r

Jak usunąć procesor graficzny z komputera z systemem Windows w 2023 r

Czy musisz usunąć GPU z komputera? Dołącz do mnie, gdy wyjaśnię, jak usunąć procesor graficzny z komputera w tym przewodniku krok po kroku.

Jak zainstalować dysk SSD NVMe na komputerze stacjonarnym i laptopie

Jak zainstalować dysk SSD NVMe na komputerze stacjonarnym i laptopie

Kupiłeś nowy dysk SSD NVMe M.2, ale nie wiesz, jak go zainstalować? Czytaj dalej, aby dowiedzieć się, jak zainstalować dysk SSD NVMe na laptopie lub komputerze stacjonarnym.

Co to jest bomba logiczna?

Co to jest bomba logiczna?

Bomba logiczna to incydent związany z bezpieczeństwem, w którym osoba atakująca przeprowadza opóźnioną akcję. Czytaj dalej, aby dowiedzieć się więcej.

Co to jest SoC?

Co to jest SoC?

Jeśli kiedykolwiek zajrzałeś do wnętrza wieży PC, możesz zobaczyć, że jest tam wiele różnych komponentów. Twój przeciętny laptop zawiera większość tych samych komponentów

Co to jest szyfrowanie asymetryczne?

Co to jest szyfrowanie asymetryczne?

Algorytmy szyfrowania asymetrycznego wykorzystują dwa różne klucze. Jeden klucz służy do szyfrowania, a drugi do deszyfrowania.

Steam Deck: Jak sformatować kartę SD

Steam Deck: Jak sformatować kartę SD

Steam Deck jest dostępny w trzech opcjach przechowywania: 64 GB eMMC, 256 GB NVMe SSD i 512 GB NVMe SSD. W zależności od biblioteki gier i rozmiaru gier