|
|
Многоуровневые устройства кэш-памяти08.05.2019Многоуровневые устройства кэш-памяти позволяют легче использовать дополнительную оптимизацию кэш-памяти благодаря двум обстоятельствам. Во-первых, параметры конструирования кэш памяти нижнего уровня отличаются от таковых для кэш-памяти первого уровня. Например, поскольку кэш память нижнего уровня будет иметь значительно больший размер, появляется возможность использования более крупных блоков. Во-вторых, кэш память нижнего уровня не используется процессором на постоянной основе, в отличие от кэш-памяти первого уровня. Это позволяет нам рассмотреть вопрос задействования низкоуровневой кэш-памяти для какой-нибудь другой работы в период невостребованности, что может быть полезным для предупреждения будущих промахов. Другой тенденцией является поиск помощи от программного обеспечения. Эффективное управление иерархией памяти с использованием разнообразного преобразования щюграмм и аппаратных средств является главной целью улучшения компиляторов. Исследуются две разные идеи. Одна из них заключается в реорганизации программы, чтобы увеличить ее пространственную и временную локальность. Этот подход фокусируется на циклично-ориентированных программах, использующих в качестве основной структуры данных большие массивы; в качестве типичного примера можно привести задачи линейной алгебры. Путем реструктуризации циклов, обращающихся к массивам, существенно улучшается локальность, а следовательно, может быть достигнута высокая производительность кэш памяти. Рассмотрение в предыдущем разделе недоразумения, касающегося игнорирования поведения системы памяти при написании программ или при генерации кода в компиляторе, показывает, насколько эффективным может быть даже простое изменение структуры цикла. Окончили медицинский? В таком случае стоит купить сертификат медсестры и сразу же приступить к работе. Еще одним подходом является предварительная выборка (предвыборка), при которой блок данных переносится в кэш-память еще до того, как к нему последует обращение. Многие микропроцессоры используют аппаратную предвыборку, пытаясь предсказать обращения, которые может быть трудно заметить при использовании программных средств. Третий подход заключается в использовании специальных инструкций, связанных с кэш-памятью, которые оптимизируют обмен данными с памятью.
|