- •2. Арифметико-логические устройства. Определение, структура, подход к проектированию, основные уравнения работы алу (пример синтеза выражения). Особенности знаковой и беззнаковой арифметики.
- •4. Особенности представления чисел в форматах с фиксированной и плавающей запятой. Особенности аппаратной реализации арифметических операций над числами в форматах с фиксированной и плавающей запятой.
- •5. Архитектура системы команд. Система команд и способы адресации операндов. Классификация архитектур по сложности кодирования инструкций (risc, cisc). Уровни абстракции представления микропроцессора.
- •7. Процессоры с однотактным, многотактным и конвейеризированным устройствами управления. Особенности построения. Достоинства и недостатки каждой из реализаций.
- •9.Подход к проектированию однотактного процессора на примере архитектуры risc-V. Сравнение с другими подходами к реализации микроархитектуры.
- •10.Подход к проектированию многотактного процессора на примере архитектуры risc-V. Сравнение с другими подходами к реализации микроархитектуры.
- •11. Подход к проектированию конвейерного процессора на примере архитектуры risc-V. Сравнение с другими подходами к реализации микроархитектуры.
- •12. Структурные конфликты и способы их минимизации. Конфликты по данным, их классификация и примеры реализаций механизмов их обходов.
- •13. Сокращение потерь на выполнение команд перехода и методы минимизации конфликтов по управлению.
- •14. Методы повышения производительности процессоров: суперскалярность, суперконвейерность, гипертрейдинг, внеочередное исполнение команд, переименовывание регистров и т.П.
- •Суперскалярность
- •Внеочередное выполнение команд
- •Переименовывание регистров
- •16. Иерархия памяти: причины, зависимости, следствия. Статическое и динамическое озу. Организация систем памяти в микропроцессорных системах.
- •17. Принципы организации кэш-памяти. Способы отображения данных из озу в кэш-память. Варианты построения.
- •18. Виртуальная память. Принципы функционирования и способы организации виртуальной памяти. Tlb.
- •19. Когерентность кэш. Примеры реализации когерентности кэш-памяти: VI, msi, mesi.
- •19.1 Параллелизм уровня потоков
- •19.2 Синхронизация
- •19.3 Потоково-безопасное программирование
- •19.4 Синхронная связь
- •Мультиядерность
- •Когерентность кэш л18 47:24
- •Поддержка когерентности
- •Реализация когерентности
- •Оптимизация msi: e-Состояние (Exclusive)
- •21. Механизм граничного сканирования регистров. Jtag. Области применения.
- •22. Обмен информацией между элементами в микропроцессорных системах. Организация шинного обмена. Виды и иерархии шин.
- •Иерархияшин
- •Вычислительная машина с двумя видами шин
- •Вычислительная машина с тремя видами шин
- •23. Арбитр магистрали. Алгоритмы и схемы арбитража. Методы повышения эффективности шин.
- •Отдельная шина системы ввода-вывода
- •Модули ввода-вывода
- •Конфигурации пдп(dma)
- •27. Микроконтроллеры. Определение, виды, характеристики, особенности построения и применения.
- •29.Классификации архитектур параллельных вычислительных систем: Флинна, по способу организации памяти. Нетрадиционные вычислители.
Поддержка когерентности
В когерентной памяти все загрузки и сохранения размещаются в глобальном порядке
Несколько копий адреса в различных кэшах могут привести к нарушению этого свойства
Это свойство может быть обеспечено, если:
Только один кэш одновременно имеет разрешение на запись
○ Никакой кэш не может иметь устаревшую копию данных после того, как была выполнена запись по адресу
Реализация когерентности
Протоколы когерентности должны обеспечивать соблюдение 2-х правил:
Распространяющаяся запись (Write Propagation): записи в конечном итоге становятся видимыми для всех процессоров.
○ Сериализация записи (Write Serialization): записи в одно и то же место сериализуются (все процессоры видят их в том же порядке) ● Как обеспечить распространение записи (Write propagation)?
○ Write-invalidate protocols: аннулировать все другие кэшированные копии перед выполнением записи.
○ либо
○ Write-update protocols: обновить все другие кэшированные копии после выполнения записи.
Как обеспечить сериализацию записи (Write Serialization)?
Snooping-base protocols: все кэши наблюдают за действиями друг друга через общую шину.
○ либо
○ Directory-based protocols: каталог когерентности отслеживает содержимое частных кэшей и сериализует запросы.
кэш VI: Valid/Invalid
MSI: Modified/Shared/Invalid
Оптимизация msi: e-Состояние (Exclusive)
MESI: https://habr.com/ru/articles/183834/
В данной схеме каждая линия кэша может находиться в одном из четырех состояний:
Модифицированная (M) англ. modified. Таким флагом может быть помечена только линия в одном кэше. Данное состояние означает, что данная линия была изменена, но до памяти эти изменения еще не дошли. Хозяин такой линии может спокойно читать и писать в нее без опроса остальных.
Эксклюзивная (E) англ. exclusive. Обозначенная таким флагом линия, так же, как и M-линия может находиться только в одном кэше. Содержащиеся в ней данные полностью идентичны данным в оперативной памяти. Записывать и читать из нее можно без внешних запросов, так как она хранится только в одном кэше. После записи такая строка должна быть помечена, как модифицированная.
Разделяемая (S) англ. shared. Линия может одновременно содержаться в кэшах нескольких устройств и использоваться совместно. Запросы на запись в такую линию всегда идут на общую шину, что приводит к тому, что все линии с таким адресом в остальных кэшах помечаются как недействительные. При этом содержание основной памяти также обновляется. Чтение же из такой линии, не требует никаких внешних запросов.
Недействительная (I) англ. invalid. Такая линия считается невалидной и попытка прочитать приведет к кэш-промаху. Линия помечается недействительной в случае если она пуста или содержит устаревшую информацию.
●
20. Потоково-безопасное программирование. Семафоры. Примеры распределения и ограничения доступа к ресурсам на основе семафоров.
Потоково-безопасное программирование.
Семафоры - программная конструкция для синхронизации
Примеры семафоров для установки приоритетов.
Изначально семафор равен нулю. Команда wait приостанавливает выполнение инструкций потока B если семафор S = 0. Команда signal(s) наоборот увеличивает семафор на 1, следовательно пока не выполнится операция A2 мы не сможем приступить к выполнению операции B4 т.к. семафор будет равен 0.
Примеры распределения и ограничения доступа к ресурсам на основе семафоров.
Каждый раз когда понадобится ресурс семафор S уменьшится на 1, если ресурсы будут нужны k+1 потоку, то уже после k-ого выделения ресурса значение s будет равно 0 соответственно потоки которым нужны ресурсы будут ждать пока эти ресурсы освободятся и s станет > 0