Архитектура ЭВМ Лекция 9: Иерархия хранения данных.  Организация кэш памяти.

Архитектура ЭВМ Лекция 9: Иерархия хранения данных. Организация кэш памяти.

Содержание

Введение

  • Начало обсуждения высокоуровневых материй и принципов работы компьютера.
  • План изучения, начиная с базовых принципов до более сложных конструкций.

Изучение памяти в компьютере

Роль памяти в компьютере

  • Обсуждение системы команд и примитивной работы.
  • Переход к высокоуровневым конструкциям, начиная с разговора о памяти в компьютере.

Работа с памятью и ее устройство

Организация памяти

  • Размышления о доступе к памяти и ее устройстве.
  • Упоминание ассоциативного кэша и его использования.

Архитектура NUMA

NUMA архитектура

  • Объяснение uniform memory access (UMA) и NUMA архитектур.
  • Различия между ними и влияние на работу процессора с памятью.

Пространственное распределение ядер и памяти

Конфигурация ядер и распределение памяти

  • Иллюстрация пространственной конфигурации ядер и распределения памяти.
  • Необходимость разработки методов для эффективного использования ближней к процессору памяти.

Локальность данных в программировании

Локальность данных

  • Объяснение временной локальности при обращении к объектам в программировании.

Иерархия хранения данных и процессоры

Обзор раздела: В данном разделе рассматривается иерархия хранения данных в компьютерных системах, а также основные типы памяти, включая кэш-память и оперативную память.

Иерархия памяти

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

Жесткие диски и Flash-память

  • Жесткие диски представляют собой вымирающий тип памяти, в отличие от Flash-памяти, которая является persistent storage.

Основные концепции

  • Иерархия хранения данных включает регистры, кэш, оперативную память, жесткие диски и удаленное хранилище.

Оптимизация доступа к данным

Обзор раздела: Здесь обсуждается оптимизация доступа к данным через локальность и уменьшение количества промахов при работе с памятью.

Оптимизация доступа

  • Понятие временной и пространственной локальности для минимизации промахов в кэше.

Пример работы с данными

  • Рассмотрение случая работы с файлами: необходимость загрузки данных в кэш для ускорения доступа.

Факторы оптимизации

Система кэширования и оперативная память

Обзор раздела: В данном разделе обсуждается структура системы кэширования и ее взаимосвязь с оперативной памятью.

Уровни кэш-памяти

  • Существует три уровня кэш-памяти: первого, второго и третьего.
  • Кэш первого уровня имеет большие промахи, второй уровень ходит между ними, а кэш третьего уровня представляет собой numa архитектуру.

Промахи в оперативной памяти

  • Промахи бывают в оперативной памяти, особенно при изменении интерфейсов доступа к данным.
  • Виртуальная память является расширением оперативной памяти через swap раздел.

Организация кэш-памяти процессора

  • Обсуждение организации кэш-памяти процессора и необходимости смежных ячеек для эффективного доступа.

Отображение данных в кэше

  • Рассмотрение типов отображения данных в кэше, таких как прямое отображение и наборное отображение.

Структура адресного пространства и работы с данными

Обзор раздела: Данный раздел посвящен структуре адресного пространства и методике работы с данными.

Адресное пространство

  • Объяснение структуры адресного пространства и его связи с размерностью адресов процессоров.

Организация данных

  • Подходы к организации данных в адресном пространстве для эффективного доступа через определенные поля.

Концепция кэш лайнов

Обсуждение локальности и работы с памятью

Обзор раздела: В этом разделе обсуждается сложность работы с памятью, предлагается идея порезать память на куски для более эффективного доступа.

Понимание сложности работы с памятью

  • Упоминается сложность в работе с адресами и необходимость упрощения процесса.
  • Обсуждается непонятность локальности и возможность моделирования для ясного понимания.
  • Рассматривается концепция разбиения слотов памяти для повышения эффективности доступа.

Интерпретация адресов в кэше

Обзор раздела: Здесь рассматривается интерпретация адресов в кэше, а также принципы работы с данными в кэширующей системе.

Интерпретация адресов

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

Работа со структурами данных

Обзор раздела: В данном разделе обсуждаются особенности работы со структурами данных и компиляторами при использовании кешей.

Работа со структурами данных

  • Уточняется работа с данными по байтам и необходимость компиляторов для корректной обработки структур данных.
  • Обсуждается протокол доступа к данным через границы слов при работе со структурами данных.

Обсуждение оптимизации кэша

Обзор раздела: В этом разделе обсуждается ключевой момент доработки алгоритма для улучшения хитрейта в кэше.

Доработка алгоритма

  • Анализ ключевого момента доработки алгоритма для увеличения хитрейта в кэше.
  • Подход к выбору данных из разных наборов в зависимости от метки make.
  • Размышления о возможности работы с произвольными данными и их разделении.
  • Объяснение того, как данные могут находиться в кэше из одного сета.
  • Характеристики тегов и возможность переиначения данных.

Оптимизация использования памяти

Обзор раздела: Здесь рассматривается эффективное использование памяти при работе с кэшем.

Эффективное использование памяти

  • Использование двух наборов данных для оптимизации работы с памятью.
  • Размышления о возможностях загрузки слов в кэш из одного набора данных.
  • Преимущества создания непрерывной области слов в кэше для оптимальной работы.

Локальность данных и ее значение

Обзор раздела: Обсуждение пространственной и временной локальности данных при работе с памятью.

Локальность данных

  • Понятие пространственной локальности и ее значимость при доступе к данным.
  • Рассмотрение временной локальности при повторном обращении к одним данным.
  • Ограничения при загрузке слов из одного набора данных в кэш.

Максимальное использование памяти

Обзор раздела: Методы оптимального использования доступной памяти для повышения эффективности работы с данными.

Оптимальное использование памяти

  • Идеи по увеличению содержания слов в сети для максимального выигрыша от доступной памяти.
  • Принципы экстраполяции картинки для объединения элементов в группы слов.

Произвольная организация данных

Обзор раздела: Рассмотрение возможностей произвольной организации данных для более эффективного доступа и управления ими.

Организация данных

Обзор темы: Кэширование данных

Возможности улучшения хранения данных

  • Можность заполнить запрос относительно текущего контекста.
  • Пример использования кэширования при хранении книг в библиотеке для оптимизации доступа к данным.
  • Понятие пространственной локальности и ее влияние на эффективность работы с данными.

Принципы работы с кэшем

Оптимизация доступа к данным

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

Оптимальное использование кэша

Эффективное управление данными

  • Разные стратегии кэширования для повышения производительности.
  • Использование частей данных с высокой локальностью для оптимизации работы с интерфейсами.

Оптимизация размеров кеша

Важность размеров блоков данных

Гипотетическая система и стратегии записи данных

Обзор раздела: В данном разделе обсуждается гипотетическая система записи данных и две стратегии, связанные с этим процессом.

Гипотетическая система записи данных

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

Эффективность алгоритмов записи данных

Обзор раздела: Данная часть фокусируется на эффективности алгоритмов записи данных и их скорости выполнения.

Эффективность алгоритмов

  • Рассматривается вопрос о том, какой из двух алгоритмов (напрямую в память или через кэш) эффективнее по скорости выполнения.
  • Упоминается надежность и консистентность при работе с данными, особенно при соединении медленных устройств.

Синхронные и асинхронные вызовы функций

Обзор раздела: Здесь рассматривается разница между синхронными и асинхронными вызовами функций.

Синхронные vs. Асинхронные вызовы

  • Синхронный вызов - отправка запроса и блокирование до получения ответа; асинхронный - продолжение работы без ожидания ответа.
Video description

В лекции рассматривается иерархия хранения данных от регистров процессора до жесткого диска компьютера. Особое внимание уделяется типам кэш-памяти, их устройству и промахам при работе с ними. Особенно детально дается описание кэша прямого отображения, наборно-ассоциативного и полностью ассоциативного кэша. Лектор: Кирилл Кринкин Другие полезные материалы: https://online.osll.ru/useful