Кіріспе
Псевдо LRU немесе PLRU – кэштегі әрбір мәннің нақты жасын сақтаудың орнына, жасқа шамамен баға беру арқылы мәндерді алмастыру арқылы, Ең Соңғы Пайдаланылған (LRU) алгоритмінің өнімділігін жақсартатын кэш алгоритмдерінің тобы. PLRU көбінесе кэшті алмастырудың екі алгоритмін білдіреді: ағаш тәрізді PLRU және биттік PLRU.
Ағаш-PLRU
PLRU ағашы – элементтер жиынтығы мен оларға қолжеткізу оқиғаларының тізбегін ескере отырып, соңғы уақытта қолжеткізілмеген элементті таңдауға арналған тиімді алгоритм. Бұл техника Intel 486 процессорының кэшінде және PowerPC отбасының көптеген процессорларында, мысалы Apple Computer қолданған Freescale-дің PowerPC G4 процессорларында қолданылады. Алгоритм былай жұмыс істейді: сұрақ тудырған элементтер үшін екілік іздеу ағашын қарастырыңыз. Ағаштың әрбір түйінінде "жалған LRU элементін қосу үшін солға" немесе "жалған LRU элементін қосу үшін оңға" дегенді көрсететін бір биттік белгі бар. Жалған LRU элементін табу үшін ағашты белгілердің мәндеріне сәйкес аралап өту қажет. Ағашқа N элементіне қолжеткізу үшін ағаштан N-ді іздеп табу керек, ал іздеу барысында түйін белгілерін алынған бағытқа қарама-қарсы бағытты көрсету үшін орнату керек. Бұл алгоритм толық оңтайлы болмауы мүмкін, себебі ол жуықтау шамасымен жұмыс істейді. Мысалы, жоғарыдағы схемада A, C, B, D кэш жолдары болғанда, егер қолжеткізу үлгісі C, B, D, A болса, шығарып тастау кезінде C орнына B таңдалады. Бұл A және C екеуі де бір жартысында болғандықтан, ал A-ға қолжеткізу алгоритмді C кэш жолы жоқ екінші жартысына бағыттайды.
Bit-PLRU
PLRU биті әрбір кэш жолы үшін бір статус битін сақтайды. Бұл биттер MRU биттері деп аталады. Кез келген жолға қол жеткенде, оның MRU биті 1-ге орнатылады, бұл жол жақында қолданылғанын көрсетеді. Жиынның соңғы 0 биті 1-ге орнатылғанда, қалған барлық биттер 0-ге қайта орнатылады. Кэш сәтсіздігі болғанда, MRU биті 0-ге тең ең сол жақ жол ауыстырылады.
line was recently used. Whenever the last remaining 0 bit of a set's status bits is
set to 1, all other bits are reset to 0. At cache misses, the leftmost line whose MRU bit is 0 is replaced.