Skip to main content

Co je to koherence paměti?

Koherence paměti je problém, který se vyskytuje v počítači, když se procesor pokouší podívat se na paměťový sektor.K tomuto problému dochází pouze na vícejádrových systémech nebo počítačích, které mají více než jednu centrální zpracovatelskou jednotku (CPU).Když se více procesorů podívá na stejný sektor paměti a jeden aktualizuje tento sektor, druhý může být ponechán se starou verzí paměti počítače.K vyřešení tohoto problému se pravidla konzistence používají k zajištění toho, aby procesory neměly přístup ke stejné paměti nebo že aktualizace jsou mezi nimi konzistentní.Existuje několik různých modelů konzistence, takže programátoři a vývojáři počítačů musí znát přesný model použitý.

Problém s koherencí paměti je problém, který se vyskytuje pouze na počítačích, které používají alespoň dva CPU kvůli tomu, jak mají přístup k paměti.Když jeden CPU přistupuje k paměťovému sektoru, je schopen vzít, používat a měnit paměť bez jakéhokoli konfliktu, protože neexistují žádné další hardwarové kusy, které soutěží o paměť.Pokud jsou použity dva procesory, pak dva CPU mohou chytit stejný sektor paměti.I když neexistují žádné problémy se dvěma procesory sdílením paměti, vyvstane se problém, pokud jeden CPU aktualizuje paměť.To ponechává druhý CPU s zastaralou pamětí, která, pokud zůstane nezpracovaná, může způsobit, že celý počítač bude mít dvě oddělené a konfliktní verze paměti počítače.Jsou známé společně jako pravidla konzistence paměti a existuje mnoho verzí.Celkově každá verze řekne více CPU, jak správně sdílet paměť počítače, aniž by to způsobilo problém s koherencí paměti.Toho lze provést aktualizací obou verzí paměti, když se jedna verze změní, nebo zabráněním přístupu CPU v přístupu ke stejné paměti současně.Každá sada konzistence má různá programování a různá pravidla, takže programátoři, kteří vytvářejí programy nebo psaní kódu, které se zabývají přímo CPU, budou muset přizpůsobit kódování pro přesná pravidla konzistence.Pokud tomu tak není, může to buď potlačit konzistenci nebo způsobit hlavní konflikt mezi kódováním programátora a pravidly konzistence a počítač může přestat fungovat.