Что такое размер кэша и размер строки кэша?

Я пытаюсь понять следующее из файла DTS. Я очень плохо знаком с OS/Kernel.

cpus {
    #address-cells = <1>;
    #size-cells = <0>;

    PowerPC,8313@0 {
        device_type = "cpu";
        reg = <0x0>;
        d-cache-line-size = <32>;
        i-cache-line-size = <32>;
        d-cache-size = <16384>;
        i-cache-size = <16384>;
        timebase-frequency = <0>;   
        bus-frequency = <0>;        
        clock-frequency = <0>;      
    };
};

Кто-нибудь может дать краткое объяснение вышесказанного?

Я понимаю следующее. размер блока кеша или размер строки кеша: объем данных, которые передаются при пропадании кеша. кеш инструкций (I-кеш): кеш, который может содержать только инструкции. кеш данных (D-кеш): кеш, который может содержать только данные.

И что означает i-cache-line-size?

d-cache-line-size = <32>;
i-cache-line-size = <32>;
d-cache-size = <16384>;
i-cache-size = <16384>;

В некоторых файлах dts есть комментарии, например, из загрузчика, как показано ниже.

cpus {
#address-cells = <1>;
#size-cells = <0>;

    PowerPC,8313@0 {
        device_type = "cpu";
        reg = <0x0>;
        d-cache-line-size = <32>;
        i-cache-line-size = <32>;
        d-cache-size = <16384>;
        i-cache-size = <16384>;
        timebase-frequency = <0>;   // from bootloader
        bus-frequency = <0>;        // from bootloader
        clock-frequency = <0>;      // from bootloader
    };
};

Как узнать из какого файла в загрузчике? Загрузчик используется U-boot.

Благодарю.

1 ответ

Решение

Фрагмент DTS описывает процессор PowerPC 8313.

Из таблицы данных PowerPC 8313,

7.1.5.2 Единицы кэширования e300c3 обеспечивает 16-килобайтный, четырехсторонний наборно-ассоциативный набор инструкций и кэш данных. Блок кэша имеет длину 32 байта ...

Дальше больше,

7.1.6 Шинный интерфейсный модуль (BIU) Поскольку кэш-память - это встроенные кэш-памяти, кеширования с обратной записью, наиболее распространенными транзакциями являются операции памяти с пакетным чтением, операции памяти с пакетной записью,
... Доступ к памяти может происходить при передаче одного бита (1–8 байт) и пакета с четырьмя битами (32 байта) по 64-битной шине данных.

По сути, фрагмент DTS настраивает:

  • размер кэша (до 16 КБ)
    полностью использовать встроенный кеш

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


Обновление: Относительно вашего запроса о том, с чего начать?...

  1. Лучшая книга для начала - это всегда Техническое справочное руководство по данному процессору. Он будет заполнен большим количеством жаргонизмов, характерных для вашего оборудования, которые вам нужно будет терпеливо пройти и понять.

  2. Параллельно начните знакомить вас с пониманием ядра Linux с такими книгами, как "Драйверы устройств Linux 3e", "Понимание ядра Linux" и "Профессиональная архитектура ядра Linux".

  3. Загрузчики обычно пишутся с учетом аппаратного обеспечения и реализуются с использованием семантики, аналогичной ядру Linux, т. Е. В значительной степени заимствуются из него. Тонны материала доступны в случайных блогах по всему Интернету. Быть активным в Stackru и списках рассылки, таких как http://kernelnewbies.org/, - хороший способ найти их на регулярной основе.

Другие вопросы по тегам