Что такое размер кэша и размер строки кэша?
Я пытаюсь понять следующее из файла 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 для максимально быстрой передачи данных между процессором и кэш-памятью на кристалле.
Обновление: Относительно вашего запроса о том, с чего начать?...
Лучшая книга для начала - это всегда Техническое справочное руководство по данному процессору. Он будет заполнен большим количеством жаргонизмов, характерных для вашего оборудования, которые вам нужно будет терпеливо пройти и понять.
Параллельно начните знакомить вас с пониманием ядра Linux с такими книгами, как "Драйверы устройств Linux 3e", "Понимание ядра Linux" и "Профессиональная архитектура ядра Linux".
Загрузчики обычно пишутся с учетом аппаратного обеспечения и реализуются с использованием семантики, аналогичной ядру Linux, т. Е. В значительной степени заимствуются из него. Тонны материала доступны в случайных блогах по всему Интернету. Быть активным в Stackru и списках рассылки, таких как http://kernelnewbies.org/, - хороший способ найти их на регулярной основе.