Čo je prepínač kontextu?

V prvých dňoch výpočtovej techniky boli CPU čisto sekvenčné stroje. To pomohlo udržať dizajn jednoduchý. Obmedzil však aj výkon. Mnoho procesov si bude musieť vyžiadať údaje zo systémovej pamäte RAM alebo pevného disku. Aj keď je systémová pamäť RAM rýchla, stále nie je taká rýchla ako CPU, takže je nečinná a čaká na dáta, kým sa nevráti odpoveď z pamäte RAM. Situácia je ešte horšia pre údaje požadované z pevného disku, pamäťového zariadenia oveľa pomalšieho ako RAM. Tu môže byť CPU nečinný počas významných období a čaká na odpoveď. Bohužiaľ, pri sekvenčných procesoroch je tento problém jednoducho nevyhnutný.

Našťastie moderné CPU už nie sú sekvenčné. Ponúkajú mnoho pokročilých funkcií, ako napríklad spustenie mimo poradia a viacero vlákien. Spustenie mimo poradia umožňuje CPU analyzovať nadchádzajúce inštrukcie a zmeniť ich poradie, aby sa maximalizovala efektivita. Multi-threading umožňuje CPU mať spustených množstvo rôznych vlákien alebo procesov.

Okrem viacerých jadier nemôže CPU bežať viac ako jedno súčasne. Môže to však vyzerať tak, že medzi nimi budete pravidelne prepínať, aby sa zabezpečilo, že každý získa značné množstvo konštantného času procesora. Proces prepínania medzi vláknami sa nazýva prepínanie kontextu.

Ako funguje prepínanie kontextu?

Kontextový prepínač pozostáva z dvoch častí, z ktorých sa vypína predchádzajúce vlákno a prepína sa v novom. Ak chcete zmeniť staré vlákno, CPU musí uložiť svoj aktuálny stav do riadiaceho bloku procesov alebo rámca prepínača. To zahŕňa hodnoty všetkých relevantných CPU registrov a vždy pozostáva z hodnoty programového počítadla. Po uložení vlákna možno do pripraveného frontu pridať rukoväť, ktorá umožní jeho obnovenie v prípade potreby.

Prepínanie v nasledujúcom vlákne je rovnaký proces v opačnom poradí. Vlákno sa vyberie buď z pripraveného radu, v závislosti od váženia. Alternatívne ho možno zvoliť prerušením, ktoré indikuje, že udalosť, na ktorú vlákno čakalo, je teraz pripravená alebo dokončená. Údaje pre vlákno sa potom skopírujú do správnych registrov a vlákno sa obnoví. V tomto bode je nové vlákno pripravené pokračovať v prevádzke od miesta, kde sa zastavilo.

Vplyv na výkon

Proces čítania a zápisu údajov pri prepínaní alebo vypínaní vlákna trvá nejaký čas, aj keď nie veľa, pretože používaná pamäť je zvyčajne vysokorýchlostná. Existujú však ďalšie náklady na výkon. Pri prepínaní vlákien nemusia byť údaje vo vyrovnávacej pamäti a vyrovnávacej pamäti CPU z predchádzajúceho vlákna relevantné pre nové vlákno. To môže viesť k výraznému zvýšeniu TLB ( Translation Lookaside Buffer ) a vynechaniu vyrovnávacej pamäte.

Tento efekt nie je významný, ak boli tieto dve vlákna vytvorené rovnakým procesom, pretože pravdepodobne zdieľajú značné pamäťové prvky. Pri prepínaní medzi vláknami z rôznych metód sa musí TLB úplne vyprázdniť. To vedie k 100% chybnej frekvencii TLB, zatiaľ čo miera zásahov do vyrovnávacej pamäte CPU je tiež výrazne znížená.

Zatiaľ čo CPU ponúkajú hardvérovú podporu pre prepínanie kontextu, operačné systémy to zvyčajne nepoužívajú. Hardvérovému prepínaniu kontextu chýba povedomie o relevantnosti údajov. Preto potrebuje uložiť a obnoviť všetky registre, čím sa predĺži čas a potrebný úložný priestor.

Hardvérové ​​prepínanie kontextu navyše neukladá údaje z registrov s pohyblivou rádovou čiarkou, čo môže byť potrebná funkcia. Preto sa vo všeobecnosti používa softvérové ​​prepínanie kontextu. Umožňuje uchovávať údaje zo všetkých registrov, vrátane registrov s pohyblivou rádovou čiarkou. Softvérové ​​prepínače kontextu rozumejú relevantnosti údajov. To znamená, že si môže vybrať, ktoré z nich uloží podľa potreby.

Záver

Kontextové prepínanie je proces, ktorým moderný CPU prepína, ktoré vlákno je spustené. Proces zahŕňa uloženie relevantných údajov aktuálneho vlákna a obnovenie príslušných údajov nového vlákna. Kontextové prepínanie je spojené s nákladmi na výkon súvisiacimi s časom potrebným na vykonanie prepnutia a so zvýšenou mierou zmeškania vyrovnávacej pamäte a TLB, pretože sa neukladajú. K prepínaniu kontextu dochádza buď preto, aby sa zabezpečilo, že všetky vlákna budú mať dostatok času CPU, alebo kvôli prerušeniu, ktoré indikuje, že udalosť, na ktorú linka čakala, je dokončená.


Leave a Comment

Canon Pixma MG5220: Skener bez atramentu

Canon Pixma MG5220: Skener bez atramentu

Ako povoliť skenovanie na Canon Pixma MG5220, keď vám došiel atrament.

Ako opraviť chybu GeForce Now s kódom 0xC272008F

Ako opraviť chybu GeForce Now s kódom 0xC272008F

Chystáte sa na večer hrania hier a bude to veľké – práve ste si zakúpili “Star Wars Outlaws” na streamovacej službe GeForce Now. Objavte jediné známe riešenie, ktoré vám ukáže, ako opraviť chybu GeForce Now s kódom 0xC272008F, aby ste mohli opäť začať hrať hry od Ubisoftu.

Čo robiť, ak sa Powerbeats Pro nenabíjajú v puzdre

Čo robiť, ak sa Powerbeats Pro nenabíjajú v puzdre

Ak sa vaše Powerbeats Pro nenabíjajú, použite iný zdroj energie a vyčistite svoje slúchadlá. Nechajte puzdro otvorené počas nabíjania slúchadiel.

Základy 3D tlače: Nevyhnutný kontrolný zoznam údržby

Základy 3D tlače: Nevyhnutný kontrolný zoznam údržby

Udržiavanie vašich zariadení v dobrom stave je nevyhnutné. Tu sú niektoré užitočné tipy, ako váš 3D tlačiar udržiavať v top stave.

Ako nainštalovať SSD na desktopových a prenosných počítačoch

Ako nainštalovať SSD na desktopových a prenosných počítačoch

Kúpili ste si SSD s nádejou na upgrade interného úložiska vášho počítača, ale neviete, ako nainštalovať SSD? Prečítajte si tento článok teraz!

Ako nájsť IP adresu tlačiarne

Ako nájsť IP adresu tlačiarne

Máte problém nájsť IP adresu, ktorú vaša tlačiareň používa? Ukážeme vám, ako ju nájsť.

Ako pripojiť notebook s Windows 11 k projektoru/TV

Ako pripojiť notebook s Windows 11 k projektoru/TV

Prečítajte si tento článok a dozviete sa jednoduchý, krok za krokom popísaný proces pripojenia notebooku k projektoru alebo TV na operačných systémoch Windows 11 a Windows 10.

5 Dôvodov, Prečo Sa Váš Notebook Prehrieva

5 Dôvodov, Prečo Sa Váš Notebook Prehrieva

Zistite niektoré možné dôvody, prečo sa váš notebook prehrieva, spolu s tipmi a trikmi, ako sa vyhnúť tomuto problému a udržať vaše zariadenie chladné.

Základy 3D tlače: Tipy na údržbu vašej 3D tlačiarne

Základy 3D tlače: Tipy na údržbu vašej 3D tlačiarne

Údržba vašich 3D tlačiarní je veľmi dôležitá na dosiahnutie najlepších výsledkov. Tu sú niektoré dôležité tipy, na ktoré by ste mali myslieť.

10 Najlepších NAS úložných zariadení pre domáce a profesionálne použitie

10 Najlepších NAS úložných zariadení pre domáce a profesionálne použitie

Či už hľadáte NAS pre svoj domov alebo kanceláriu, pozrite si tento zoznam najlepších NAS úložných zariadení.