Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / doc92 / Кузовлев.doc
Скачиваний:
24
Добавлен:
03.08.2013
Размер:
278.53 Кб
Скачать
  1. Кэш команд и данных

Кэш – это внутренняя память процессора, которая имеет значительно большее быстродействие, чем ОП. Кэш память не увеличивает емкость памяти ЦП и она не доступна пользователю для адресации. Она содержит данные из ОП, к которым уже было обращение или может произойти, т.е. из ОП помещаются нужные в текущий момент ЦП данные и еще некоторое количество последующих слов. Таким образом, увеличение производительности достигается за счет того, что на линейном или циклическом участке программы велика вероятность обращения к данным, уже находящимся в кэш, в этом случае обращения (кроме первого раза) происходят к быстродействующей внутренней памяти. Разрабатываемая кэш хранит как команды, так и данные, поэтому ЦП всегда обращается сначала к кэш.

Кэш-память реализуется как ассоциативная память, в которой для каждой единицы памяти хранятся дополнительные сведения, называемые тэгом или признаком. Для однозначного определения единицы памяти тэгом должен быть физический адрес данных в ОП. Когда в ассоциативную память подается адрес, с ним одновременно сравниваются все тэги. Если один из тегов равен поданному адресу (кэш попадание, cachehit), производится обращение к этой единице памяти. Если равенства не обнаруживается (кэш промах,cachemiss), требуется обратиться к ОП.

Разрабатываемая кэш будет четырех направленной ассоциативной по множеству. Ассоциация по четырем направлениям является компромиссом между скоростью кэш памяти с прямым отображением при попаданиях и высоким коэффициентом попаданий полностью ассоциативной кэш. Строки кэш памяти отображены на выравненные 16-байтные блоки ОП, т.е. строка содержит четыре 32-разрядных слова.

Алгоритм свопинга – сквозная запись, т.е. при записи данных из ЦП производится запись и в кэш, и в ОП. Этот алгоритм не уменьшает количество обращений к ОП по записи, но упрощает аппаратную реализацию кэш и поддерживает в ОП всегда достоверную информацию.

Алгоритм замещения – псевдо-LRU(НДИ –наиболее давно используемый)

Если при обращении к кэш по чтению, ЦП не находит там нужных данных, то он выполняет загрузку строки кэш быстрым пакетным циклом шины (BurstMode). Алгоритм замещения определяет, в какую строку будут записаны новые данные. Запись возможна в четыре строки множества определяемого 7-ю битами адреса. В разрабатываемой кэш реализуется алгоритм замещения – псевдо-LRU.

При наличии недействительных строк в множестве (биты достоверности нулевые) запись производится в первую недействительную строку (по порядку расположения битов). Если все строки действительны, необходимо выбрать строку с исходя из значений битов LRU. Запись действительной строки в ОП не требуется, т.к. используется алгоритм сквозной записи.

Обозначим строки в множестве через L0,L1,L2,L3. Каждому множеству соответствует три битаb0,b1 иb2, которые модифицируются при каждом попадании и заполнении следующим образом:

Кэш состоит из трех блоков (блок тэгов, блок данных, блок достоверности) и схем поддержки функционирования (выбор направления, обновление битов достоверности и LRU, буфер).

Блок данныхсодержит до 8 Кбайт данных и команд. Он разделен на четыре массива (направления), каждый из которых состоит из 128 строк. Строка содержит данные из 16 последовательных адресов памяти, начиная с адреса кратного 16. Индекс в массиве, состоящий из 7 бит, соответствует четырем строкам кэш памяти, по одной из каждого класса. Четыре строки с одним индексом – множество.

В блоке тегов содержится один тэг длиной 21 бит для каждой строки. Блок тэгов также разделен на четыре направления. Тэг содержит старшие 21 бит физического адреса данных, находящихся в строке.

В блоке достоверности и LRU по одному 7-битному значению для каждого из 128 множеств строк. четыре бита отмечают строки в множестве как достоверные (1) и недостоверные (0). Еще 3 бита – это битаLRU, которые используются при замещении строки.

Адресация кэш осуществляется путем разделения 32 бит физического адреса на три части: старшие 21 – поле тэга, применяется для различения данных в кэш от любой другой строки данных в множестве; следующие 7 – определяют множество; оставшиеся 4 – определяют слово и байт, используются два старших из них, т.к. обмен с кэш производится словами.

Схема выбора строкигенерирует сигнал, разрешающий считывание или запись для конкретной строки. При записи и считывании данных сигнал генерируется на основе сравнения тэгов из множества с тэгом из адреса. При замещении строки сигнал генерируется на основе битов достоверности иLRUдля множества.

Схема обновление битов достоверности и LRU для выбранного множества предоставляет возможность установления новых значений битов достоверности, а также автоматическое обновлении битовLRU.

Буферданных является интерфейсным элементом для взаимодействия с локальной шиной процессора: задает направление передачи данных, осуществляет отключение от шины.

Для блоков обновления битов достоверности, LRUи выбора замещаемой строки были разработаны комбинационные схемы по известной логике. Работа блока замещения и обновления описана в п. 3.2. Логика работы обновления битов достоверности заключается в записи нового значения бита достоверности (внешний сигнал) выбранной строки при записи или обнуление всех битов достоверности для очищения множества.

Все блоки хранения построены на асинхронной статической памяти. Схема дешифрации адреса такова, что в любой момент активным на внутреннюю 32-разрядную шину данных кэш может быть только один модуль, хранящий слово. Многозначный ответ при корректном управлении кэш памятью недопустим. Регистр адреса необходим для фиксирования физического адреса, по которому обращается ЦП. Он должен иметь вход разрешения тактирования, для устранения безусловной загрузки регистра (отключение кэширования). Выходной трансивер обеспечивает корректный ввод-вывод данных на локальную шину процессора. Также регистр адреса и выходной трансивер обеспечивают необходимые емкостные нагрузки. Регистр после блока хранения битов LRUи достоверности фиксирует их текущие значения по смене сигналаCR/W#.

Отмена содержимого кэш (очистка кэш) осуществляется в режиме отмены содержимого множества, при чем ЦП должен сгенерировать 128 адресов таких, чтобы биты достоверности были сброшены для всех множеств.

Соседние файлы в папке doc92