Тема 13

Кеш памет. Начини за повишаване на производителността.


страницата се нуждае от дописване/преглеждане


Table of Contents
theme13_1.PNG

На входа на кеша има Write Buffer. Записът в кеша е няколко пъти по-бавен от четене. Възможно е, още преди буферът да се изпразни в кеша, процесорът да е готов с нови данни за запис. В този случай ще има изчакване или объркване. За да се избегне това, се работи с повече от 1 буфер, но не повече от 4 буфера. Защо не повече от 4?. Може инструкцията да даде нещо за запис и след малко време да иска този адрес и на него във frame-овете още да не е обновена информацията ( и да трябва да се обхождат и буферите ). Средно е изчислено, че всяка 4-та инструкция увеличава шанса да искаме да четем нещо, което сме записали до 3 инструкции преди това в буфера. При Replacement, когато искаме да махнем блок от frame с dirty = 1 => блокът трябва да бъде записан в паметта. Слага се write-back buffer ( WB-B ): първо блокът се вкарва в WB-B, чете се новият блок и след това старият блок се праща в паметта. Така новият блок ще е готов по-бързо в Cache. Такъв буфер WB-B има не само на L3, а на всяко ниво на кеша. Нужен е само 1 такъв буфер на всяко ниво. Използването на кеш значително увеличава производителността – особено при двуядрените процесори, които постоянно бълват адреси.

theme13_2.PNG

( нужно е още инфо за следното, но съм го писал на лекции

Увеличаване на производителност чрез:
- намаляване на miss ratio
- намаляване на miss penalty
- намаляване на hit time

Това става чрез "методи на предсказване" )

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License