Внутреннее кэширование обращения к памяти применяются начиная с 486-го микропроцессора. В 486-ых и Pentium-ах есть внутреннее кэширование первого уровня, а Pentium PRO и II есть и вторичное кэширование. Микропроцессорный КЭШ могут иметь, как раздельный тип данных так и общий ..... Для внутреннего КЭШа используется наборно-ассоциативная архитектура. Строки в КЭШ памяти выделяются только при чтении, метод записи в ранних 486 - сквозная запись, в поздних моделях возможно переключение на обратную запись. Работу внутренней КЭШ памяти характеризуют следующие процессы: обслуживание работ микропроцессора на обращение к памяти, выделение и замещение строк для кэширования физической памяти, обеспечение согласованности данных внутреннего КЭШа и оперативной памяти, управление кэшированием. Любой внутренний запрос микропроцессора на обращение к памяти направляется во внутренний КЭШ. Теги четырех строк набора, который обслуживает данный адрес, сравниваются со старшими битами запрошенного физического адреса. Если адресуемая область есть в строке КЭШ памяти (КЭШ попадание) запрос на чтение обслуживается КЭШем, запрос на запись модифицирует данную строку и в зависимости от метода записи либо сразу выводит на внешнюю шину, либо позже при обратной. При КЭШ промахе запрос на запись направляется только на внешнюю шину. Запрос на чтение при КЭШ промахе обслуживает следующим образом, если он относится к кэшируемой области памяти выполняется цикл заполнения целой строки КЭШа, то есть все байты читаются из оперативной памяти и помещаются в одну из строк набора КЭШа обслуживающего данный адрес. Если затребованные данные не укладываются в данной строке заполняется и соседняя. Внутренний запрос микропроцессора на данные удовлетворяется сразу, как только затребованные данные считываются из ОЗУ, то есть заполнение строки до конца может параллелиться с обработкой полученных данных. Если в наборе есть свободная строка то заполняется именно она, при отсутствии свободных строк в наборе замещается строка, к которой дольше всех не было обращений (алгоритм псевдо LRU). Таким образом выделение и замещение строк выполняется только для КЭШ промахов чтения, при промахах записи заполнение строк не производится. Управлять кэшированием можно только на этапе заполнения строк. Кроме того существует возможность их аннулирования, то есть объявление их недостоверными и очистка всей КЭШ памяти. Очистка внутренней КЭШ памяти при сквозной записи осуществляется внешним сигналом и инструкциями аннулирования. Аннулирование строк выполняется внешними схемами, оно необходимо в системах у которых в оперативную память запись может производить не только микропроцессор, но и другие контроллеры шины. В этом случае требуются специальные средства для поддержания согласованности данных во всех степенях памяти: в первичном и вторичном КЭШе и динамическом ОЗУ. Аннулирование строки микропроцессор выполняет в любом состоянии. Управление заполнением КЭШа возможно и на аппаратном, и на программном уровнях. Микропроцессор позволяет кэшировать любую область физической памяти. Программно можно управлять кэшируемостью каждой страницы памяти, так как в адресном пространстве есть области, для которых кэширование специально недоступно или метод программной записи непригоден. Кэширование принято запускать, например для выполнения однократно выполняемого участка программы с тем, чтобы из КЭШа не вытеснялись более часто используемые фрагменты.