Co je to paměťová bariéra?

Historicky byly CPU dokonale sekvenční stroje. To je velmi logické a snadno pochopitelné, ale může to být problém s výkonem. V průběhu let došlo k mnoha důmyslným úpravám návrhů CPU, aby se z křemíkových waferů vytěžilo co nejvíce výkonu. Jedním z těch zajímavějších je však provedení mimo provoz. V CPU provádějících mimo pořadí instrukce nemusí být nutně prováděny v pořadí, ve kterém byly vydány.

Zastavení v pořádku

Hlavní problém s výkonem, na který CPU v pořadí narazí, se nazývá zablokování potrubí. K tomu dochází, když je instrukce závislá na nějaké paměti, ale tato paměť není přímo dostupná v registru. V tomto případě musí CPU najít tuto hodnotu v paměti. Mezipaměť CPU se kontroluje jako první, protože se jedná o nejrychlejší paměťovou vrstvu. Pokud tam hodnota není, zkontroluje se systémová RAM. Během této doby musí CPU zůstat nečinný, protože instrukce závislá na paměti musí být dokončena v pořadí před následujícími instrukcemi.

Dopad na výkon při zastavení potrubí nemusí být tak špatný, ale může být také poměrně závažný. Například mezipaměť L1 může obvykle vrátit výsledek v řádu 5 cyklů CPU. Mezipaměť L2 může trvat 20 cyklů, L3 přibližně 200 cyklů a systémová RAM přibližně 400 cyklů. Vzhledem k tomu, že CPU může pracovat na frekvenci kolem 5 GHz, což je 5 miliard hodinových cyklů za sekundu, ani 400 cyklů není tak špatných (0,000008 %). Ale pokud máte mnoho instrukcí, které potřebují odkazovat na data dále v úrovních mezipaměti, může kumulativní efekt způsobit znatelné zpomalení.

Exekuce mimo provoz a přejmenování registru

Provádění mimo pořadí je technika, která umožňuje plánovači změnit pořadí instrukcí ve své frontě. Prostřednictvím tohoto přeuspořádání se může rozhodnout upřednostnit konkrétní vlákna před ostatními. Může také posouvat instrukce zpět do fronty, pokud mají závislost na datech, která ještě nebyla splněna. Tím se maximálně zabrání zablokování potrubí a minimalizují se cykly nečinnosti.

Spuštění mimo pořadí vyžaduje funkci zvanou přejmenování registrů. CPU může přistupovat k datům uloženým v registrech během jediného cyklu. Registry slouží k ukládání čtených a zapisovaných dat. Je však nezbytné zajistit, aby počítač jako celek viděl vše, co se děje v logickém pořadí, nikoli v pořadí mimo pořadí, v pořadí optimalizovaném pro cyklus CPU. Aby to bylo možné, CPU mají mnohem více logických registrů, než vyžaduje architektura CPU.

Data, která je třeba zapsat, ale mají „dřívější“ instrukci, která ještě nebyla dokončena, se umístí do uchovávacího registru. Tato data se po vyřízení objednávky nepřenesou do jiné evidence. Místo toho se název rejstříku změní na název rejstříku, ve kterém by měl být. Je to trochu podobné, jako když si připravíte dezert před hlavním chodem, ale poté jej ponecháte v lednici, dokud nenastane čas podávat.

Tyto logické registry jsou zcela neadresné. CPU může skutečně adresovat pouze logické registry, které aktuálně sdílejí název architektonických registrů. To znamená, že CPU si je také dostatečně uvědomuje, že pokud jiné přeuspořádané instrukce spoléhají na data v logickém holdingovém registru, mohou je použít spíše než „zastaralá“ data v architektonickém registru v tom konkrétním empirickém čase.

Paměťové bariéry

Paměťová bariéra – také označovaná jako membar, paměťový plot nebo instrukce plotu – je instrukce v počítačovém kódu. Umožňuje programátorovi vynutit objednávkové omezení na paměťové operace vydané před a za paměťovou bariérou. Paměťová bariéra dává pokyn plánovači CPU, aby zajistil, že všechny instrukce budou zpracovány před jakoukoli instrukcí po zábraně. To se provádí, aby bylo zajištěno, že důležité operace jsou dokončeny ve správném pořadí.

Na moderních počítačích by to obecně nemělo být nutné. Spouštění mimo pořadí a přejmenování registru jsou dobře zavedená a vyzrálá pole. Paměťová bariéra však může být užitečná pro starší, méně sofistikované, nefunkční procesory nebo používané v kritických operacích s pamětí.

Paměťové bariéry mohou přinášet určité snížení výkonu. Je to proto, že aktivně brání plánovači CPU v optimalizaci konkrétních částí toku instrukcí. Zvyšuje se tak možnost zablokování potrubí.

Závěr

Paměťová bariéra je instrukce, která zajišťuje omezení řazení paměťových operací. To je důležité, protože procesory pro provádění mimo pořadí mohou změnit pořadí konkrétních instrukcí. I když je přejmenování registru dobře zavedené jako metoda k zajištění integrity paměti v tomto prostředí, může být užitečné zajistit jej ručně.

Paměťová bariéra nutí plánovač CPU zajistit, aby byly instrukce dokončeny před jakoukoli instrukcí po zábraně. Tím se zabrání změně pořadí operací s pamětí. Také to brání CPU v optimalizaci toku instrukcí, což může ovlivnit výkon.


Jak klonovat pevný disk

Jak klonovat pevný disk

V moderním digitálním věku, kde jsou data cenným aktivem, může být klonování pevného disku v systému Windows pro mnohé zásadním procesem. Tento komplexní průvodce

Jak opravit selhání načtení ovladače WUDFRd v systému Windows 10?

Jak opravit selhání načtení ovladače WUDFRd v systému Windows 10?

Setkáváte se při spouštění počítače s chybovou zprávou, která říká, že se nepodařilo načíst ovladač WUDFRd do vašeho počítače?

Jak opravit kód chyby NVIDIA GeForce Experience 0x0003

Jak opravit kód chyby NVIDIA GeForce Experience 0x0003

Máte na ploše zkušenosti s chybovým kódem 0x0003 NVIDIA GeForce? Pokud ano, přečtěte si blog a zjistěte, jak tuto chybu rychle a snadno opravit.

Co je SMPS?

Co je SMPS?

Než si vyberete SMPS pro svůj počítač, zjistěte si, co je SMPS, a význam různých hodnocení účinnosti.

Proč se můj Chromebook nezapne

Proč se můj Chromebook nezapne

Získejte odpovědi na otázku Proč se můj Chromebook nezapíná? V této užitečné příručce pro uživatele Chromebooků.

Jak nahlásit phishingové podvody společnosti Google

Jak nahlásit phishingové podvody společnosti Google

V této příručce se dozvíte, jak nahlásit podvodníka společnosti Google a zabránit mu v podvádění ostatních.

Roomba se zastaví, přilepí a otočí – oprava

Roomba se zastaví, přilepí a otočí – oprava

Vyřešte problém, kdy se váš robotický vysavač Roomba zastaví, zasekne a stále se otáčí.

Jak změnit nastavení grafiky na Steam Deck

Jak změnit nastavení grafiky na Steam Deck

Steam Deck nabízí robustní a všestranný herní zážitek přímo na dosah ruky. Chcete-li však optimalizovat své hraní a zajistit to nejlepší možné

Co je zabezpečení založené na izolaci?

Co je zabezpečení založené na izolaci?

Chtěli jsme se ponořit do tématu, které je ve světě kybernetické bezpečnosti stále důležitější: zabezpečení založené na izolaci. Tento přístup k

Jak používat Auto Clicker pro Chromebook

Jak používat Auto Clicker pro Chromebook

Dnes jsme se chtěli ponořit do nástroje, který dokáže automatizovat opakované klikání na vašem Chromebooku: Auto Clicker. Tento nástroj vám může ušetřit čas a