KNOW INTUIT, Лекция, Организация на паметта на компютърната система
Кеш паметта е високоскоростна памет, разположена на същия чип с процесора или външна за процесора. Кешът служи като високоскоростен буфер между процесора и относително бавната основна памет. Идеята за кеш се основава на прогнозиране на най-вероятните достъпи на процесора до RAM. Този подход се основава на принципа на времевата и пространствена локалност на програмата.
Ако процесорът е осъществил достъп до който и да е обект от основната памет, с висока степен на вероятност процесорът скоро отново ще има достъп до този обект. Пример за тази ситуация би бил код или данни в цикли. Тази концепция се описва от принципа на времевата локалност, според който често използваните RAM обекти трябва да са "по-близо" до процесора (в кеша).
За координиране на съдържанието на кеш паметта и RAM се използват три метода за запис:
- Записване чрез (записване) - едновременно с кеш паметта се актуализира RAM.
- Буферирано записване - информацията се забавя в буфера на кеша, преди да бъде записана в RAM и пренаписана в RAM в тези цикли, когато процесорът няма достъп до нея.
- Обратно записване (обратно записване) - използва се битът за промяна в полето на етикета и редът се пренаписва в RAM само ако битът за промяна е 1.
По правило всички методи за запис, с изключение на преминаването, позволяват отлагане и групиране на операции за запис в RAM за увеличаване на производителността.
В структурата на кеша има два типа блокове данни:
- памет за показване на данни (самите данни, дублирани от RAM);
- памет за етикети (функции, показващиместоположението на кешираните данни в RAM).
Пространството на паметта за картографиране на данни в кеша е разделено на редове - блокове с фиксирана дължина (например 32, 64 или 128 байта). Всеки кеш ред може да съдържа непрекъснат подреден блок от байтове от основната памет. Кой блок от RAM е картографиран към даден ред на кеша се определя от тага на реда и алгоритъма за картографиране. Според алгоритмите за съпоставяне на RAM към кеша се разграничават три типа кеш памет:
- напълно асоциативен кеш;
- кеш за директно картографиране;
- множествен асоциативен кеш.
Едно от основните предимства на този метод на показване е доброто използване на RAM, т.к. няма ограничения за това кой блок може да бъде съпоставен към кой кеш ред. Недостатъците включват сложното хардуерно изпълнение на този метод, което изисква голямо количество схеми (главно компаратори), което води до увеличаване на времето за достъп до такъв кеш и увеличаване на цената му.
Очевидните предимства на този алгоритъм са простотата и ниската цена на изпълнение. Недостатъците включват ниската ефективност на такъв кеш поради вероятното често презареждане на редове. Например, при достъп до всяка 64-та клетка от паметта в системата на фиг. 9.2, кеш контролерът ще бъде принуден непрекъснато да презарежда един и същ кеш ред, без изобщо да използва останалите.
Този алгоритъм за картографиране съчетава предимствата както на напълно асоциативен кеш (добро използване на паметта, висока скорост), така и на кеш с директен достъп (простота и ниска цена), само малко по-нисък в тези характеристики спрямо оригиналните алгоритми. Ето защо множественият асоциативен кешнай-разпространените (Таблица 9.2).