- •Министерство образования и науки российской федерации
- •1. Цель работы
- •2. Исходные данные к проекту
- •3. Разработка структурной схемы эвм
- •3.1 Центральный процессор
- •3.2 Оперативная память (оп)
- •3.3 Блок синхронизации
- •3.4 Система прерывания программ
- •3.5 Таймер
- •3.6 Система ввода-вывода
- •3.7 Монитор и видеоадаптер
- •3.8 Клавиатура и мышь
- •3.9 Жесткий диск и нгмд
- •4. Разработка принципиальной схемы кэш
- •4.1 Основные характеристики кэш-памяти
- •4.2 Способ отображения оперативной памяти на кэш-память
- •4.3 Алгоритм замещения информации в заполненной кэш-памяти
- •4.4 Алгоритм согласования содержимого кэш-памяти и основной памяти
- •4.5 Смешанная и разделенная кэш-память
- •4.6 Выбор элементной базы для принципиальной схемы кэШа
- •4.7 Принципиальная схема кэш
- •5. Заключение
- •6. Список литературы
4.2 Способ отображения оперативной памяти на кэш-память
Сущность отображения блока основной памяти на кэш-память состоит в копировании этого блока в какую-то строку кэш-памяти, после чего все обращения к блоку в ОП должны переадресовываться на соответствующую строку кэш-памяти.
Как уже было сказано выше, основная память имеет максимальную емкостью 4 Г слов, а кэш-памяти – 128 К слов. Для адресации каждого слова основной памяти используется 32-разрядный адрес (232 = 4Г). ОП разбивается на блоки по 4. При такой организации 32-разрядный адрес можно условно разделить на две части: младшие 2 разряда определяют адрес слова в пределах блока, а старшие 30 номер одного из 10243 блоков. Эти старшие 30 разрядов в дальнейшем будем называть адресом блока основной памяти. В свою очередь, для адресации любого слова в кэш-памяти требуется 17-разрядный адрес (217 = 128К). Кэш-память разбита на строки такого же размера, что и в ОП, то есть содержит 32 = 215 строк. 17-разрядный адрес слова в кэш-памяти также можно представить состоящим из двух частей: адреса слова в строке (2 младших разряда) и адреса строки кэш-памяти (15 старших разрядов).
Поскольку ЦП всегда обращается к ОП (кэш-память для ЦП невидима) и формирует для этого 32-разрядный адрес, необходим механизм преобразования такого адреса в 17-разрядный адрес слова в кэше. Так как расположение слов в блоке ОП и строке кэш-памяти идентично, для доступа к конкретному слову в блоке ОП в строке кэш-памяти можно использовать младшие 2 разряда 32-разрядного адреса. Следовательно, остается лишь задача преобразования 30-разрядного адреса блока основной памяти в 15-разрядный адрес строки кэша.
Известные варианты отображения основной памяти на кэш можно свести к трем видам: прямому, полностью ассоциативному и частично-ассоциативному. В данном случае будет использоваться прямое отображение.
При прямом отображении адрес строки i кэш-памяти, на которую может быть отображен блок j из ОП, однозначно определяется выражением: i=j mod т, где т — общее число строк в кэш-памяти. В нашем примере i =j mod 32768. Иными словами, на строку кэша с номером i отображается каждый 32768-й блок ОП. Это поясняется рис. 8, где основная память условно представлена в виде двухмерного массива блоков, в котором количество рядов равно числу строк в кэш-памяти, а в каждом ряду последовательно перечислены блоки, переадресуемые на одну и ту же строку кэш-памяти.
Рис. 8. Организация кэш-памяти с прямым отображением |
При реализации такого отображения 30-разрядный адрес блока основной памяти условно разбивается на два поля. Логика кэш-памяти интерпретирует эти 30 бит как 15-разрядный тег и 15-разрядное поле строки. Поле строки указывает на одну из 32768 = 215 строк кэш-памяти, а именно на ту, куда может быть отображен блок с заданным адресом. В свою очередь, поле тега определяет, какой именно из списка блоков, закрепленных за данной строкой кэша, будет отображен. Когда блок фактически заносится в память данных кэша, в память тегов кэш-памяти необходимо записать тег этого блока, чтобы отличить его от других блоков, которые могут быть загружены в ту же строку кэша. Тегом служат семь старших разрядов адреса блока.
Прямое отображение — простой и недорогой в реализации способ отображения. Основной его недостаток — жесткое закрепление за определенными блоками ОП одной строки в кэше. Поэтому, если программа поочередно обращается к словам из двух различных блоков, отображаемых на одну и тут же строку кэш-памяти, постоянно станет происходить обновление данной строки и вероятность попадания будет низкой.