Кэширование – способ увеличения быстродействия системы за счет хранения часто используемых данных и кодов в «кэш-памяти 1-го уровня» (быстрой памяти), находящейся внутри микропроцессора.
Кэш-память – очень быстрое запоминающее устройство (время выборки из ОЗУ 60-70 нс, из кэша - 10-20нс, т.е. в 3-4 раза быстрее)
Идея
• Команды из ОП выбираются и пересылаются в процессор, а их копии помещаются в кэш.
• Данные из основной памяти также пересылаются в процессор, а их копии помещаются в кэш.
• Если команда или данные понадобятся еще раз, они будут прочитаны не из памяти, а из кэша (например, циклы).
• Внутренняя скорость выполнения команд, прочитанных из такого кэша (на одном кристалле с процессором) выше, чем скорость выборки команд и данных из ОП.
Обычно в компьютере имеется два уровня кэш-памяти.
• Первичный кэш располагается на микросхеме процесcора, называется кэшем первого уровня (L1)
• Вторичный кэш располагается между первичным кэшем и остальной памятью, имеет больший объем и называется кэшем второго уровня (L2).
|
|
1. Быстрее всего осуществляется доступ к данным, хранящимся в регистрах процессора (самый маленький объем)
2. Кэш процессора (L1) – небольшой объем
3. Вторичный кэш (L2) – объем больше
4. Основная память (ОП) – значительно больше и намного медленнее кэша (в типичном компьютере время доступа к ОП в 10 раз дольше времени доступа к кэшу L1).
5. Дисковая память – огромный объем недорогой памяти. Очень медленные операции.
Управление иерархией памяти:
· «Идея управления иерархической системой памяти состоит в том, чтобы переместить команды и данные, которые будут использоваться в ближайшее время, как можно ближе к процессору.»
· Каждый элемент, к которому обращается процессор помещается в кэш и остается там (локализация по времени).
· Копируется не только сам элемент программы или данных, но несколько близлежащих (локализация в пространстве).
· «Когда кэш полон и обращение происходит к отсутствующему слову памяти, принимается решение какой из блоков удалить из кэша, чтобы добавить новый блок, содержащий требуемое слово.»
3Для 486 процессора используется общая кэш память для данных и программы (неразделенная кэш память). Размер кэш памяти 8 килобайт. Процессор выполняет команды и работает с данными из кэша. Если данное (команда) не находятся в кэш памяти, оно загружается, при этом требуется дополнительное время. Ввиду ограниченного размера кэш памяти, штрафы (промахи кэша), связанные с отсутствием данных (команд), достаточно часто возникают. Для PENTIUM используется разделенная кэш память, т.е. отдельный кэш для команд и данных. Для PENTIUM размер внутреннего кэша 16 килобайт. Для PENTIUM PRO внешний кеш расположен на одной системной плате с процессором. Размер кэша для PENTIUM PRO может достигать 512 килобайт. Для доступа к памяти используется 64 битная шина для PENTIUM и 128 битная для PENTIUM PRO.