Встроенные Системы Часть 4. Шины, память, кэш, DMA Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
Шина Шина – группа проводников (сигналов), соединяющих различные устройства. Шина позволяет осуществлять обмен данными между устройствами. Обычно, шина содержит сигналы адреса, данных и управляющие сигналы.
Протокол Шины Соглашения о порядке обмена данными и правилах использования сигналов называются протоколом шины. По шине передаются дискретные сигналы. Состояние шины меняется дискретно во времени.
Разновидности Сигналов Устройства, подключенные к шине наблюдают за состоянием сигналов. В соответствии с протоколом, устройство управляет сигналами: Активно Только одно устройство может управлять данным сигналом Через выход с тремя состояниями В каждый момент времени сигналом управляет одно из устройств Через выход с открытым коллектором Несколько устройств управляют сигналом («монтажное ИЛИ»)
Мультиплексирование Адреса и Данных Адрес и данные могут передаваться по одним линиям. Состояние шины определяет, что передают эти линии в данный момент.
Разрядность Разрядность определяет количество бит адреса и данных, передаваемых по шине. Разрядность адреса и данных может различаться. Бывают 1-разрядные (последовательные) шины.
Синхронные Шины Изменения состояния синхронной шины привязаны к периодам тактового сигнала. Большинство шин – синхронные.
Временная Диаграмма Временная диаграмма специфицирует и иллюстрирует протокол шины. Временная диаграмма показывает последовательность изменений состояний во времени.
Master/Slave Master (инициатор) – устройство, инициирующее транзакцию на шине. Slave – устройство, отвечающее на транзакцию. Архитектура шины может допускать наличие одного или нескольких инициаторов.
Арбитр Нескольким инициаторам может потребоваться начать обмен одновременно. Протокол шины должен позволить принять решение: какому мастеру отдать приоритет. Арбитр – специальное устройство, принимающее это решение.
Примеры Шинных Архитектур - PCI PCI – Peripheral Component Interconnect шина используется для подключения периферийных устройств синхронная (33/66MHz) с мультиплексированием адреса и данных Разрядность – 32/64 бита Внешний арбитр 3 адресных пространства: Конфигурационное Ввода/вывода Памяти
Примеры Шинных Архитектур – I 2 C I 2 C – Inter-Integrated Circuit Последовательная шина, 2 линии: SCL – синхронизация SDA – данные
Примеры Шинных Архитектур VME bus Multibus, Multibus II ISA AMBA Wishbone Other… 1-Wire SCSI IDE/ATA USB AC97 UTOPIA MII
Мост (bridge) Мост – устройство, которое транслирует транзакции между шинами (имеющими одинаковую, родственные или различные архитектуры). Мосты позволяют иерархически организовывать шины.
Пример иерархии шин
Зачем Нужны Мосты Интеграция разнородных шин Масштабирование Преодоление физических ограничений Оптимизация потоков данных Замечание: периферийное устройство может быть встроенной системой и являться предметом нашего рассмотрения!
DMA – прямой доступ к памяти Устройство, осуществляющее DMA, способно производить пересылки данных между устройством и памятью без вмешательства процессора.
Чтение и Запись Концептуальное различие между операциями чтения и записи в память: Операция чтения – блокирующая. Выполняя операцию чтения, необходимо дождаться результата. При записи в память, ожидание окончания записи не является обязательным (при условии сохранения последовательности операций). Операции записи можно откладывать. Местонахождение буферов влияет на производительность!
Кэш-память Быстродействующая память, находящаяся между процессором и основной памятью. В кэш-памяти хранятся часто используемые данные (принцип локальности). Позволяет существенно улучшить производительность системы. Время работы программного кода становится фактически непредсказуемым.
Кэш – пример реализации
Рассогласование При осуществлении DMA доступа, содержимое кэш-памяти и основной памяти может стать рассогласованным: Процессор работает с данными Устройство пишет в память по тому же адресу. За этим надо строго следить!
Рассогласование - решения Каждый участок памяти управляется либо процессором, либо устройством: Когда данные передаются устройству, диапазон адресов в кэш-памяти «сбрасывается» в память (flush). Когда данные принимаются от устройства, диапазон адресов в кэш-памяти делается недействительным (invalidate). Snooping. Внешние обращения к памяти отслеживаются «аппаратно», и выравнивание кэш с основной памятью происходит автоматически.