Direct Cache

Начнем с простого: представим, что у нас есть микропроцессор, и адрес памяти кодируется \bf{d} битами. Это означает, что в нашей оперативной памяти адресация происходит от \bf{0} до \bf{2^d-1} . Основная идея заключается в делении оперативной памяти на ячейки (\bf{Blocks}) одинакового размера (\bf{BlockSize}). То есть количество таких ячеек равно \bf{\frac{2^d}{BlockSize}} . Будем их нумеровать от \bf{0} до \bf{\frac{2^d}{BlockSize}-1}. Таким образом, зная количество битов адреса \bf{d} и размер блока \bf{BlockSize}, мы можем пронумеровать блоки оперативной памяти. Заметим, что оптимальным размером \bf{BlockSize} была бы степень двойки (по очевидным причинам). Так в современных процессорах и происходит, поэтому далее считаем \bf{BlockSize = 2^b.}

Зачем же нужен кэш?

Читать далее