6.6 KiB
6.6 KiB
- Hardware производится один раз и дальше не меняется, не корректируется
- Software адаптируется под задачу, легко изменяется
- Разделены по времени/специальности: разные дисциплины и разные индустрии
Как разделить HW/SW
- Определяем возможности "конфигурирования":
- Заложенные при проектировании - интерфейс задокументирован и стабилен (ISA, API)
- Незадокументированные (нецелевое использование, дыра в безопасности) - используется то, что интерфейсом не гарантировано но работает
- Фиксируем интерфейс "конфигурирования"
- Набор механизмов
- Модель вычислений
- Интструментальные средства
Конфигурирование РЭА
- Макетные платы
- Печатные платы: перерезать, навесить дорожку
- Джамперы
- Платы расширения
- Вычислительные платы
- Порты ввода/вывода
- Dendy (память программ и графическая память)
Реконфигурация. Коммутация
Реконфигурируемые архитектуры
Архитектуры, где задача отображается в структуру вычислителя (пространственно, spatial), а не выполняется потоком инструкций. В отличие от ASIC, это структура может быть перенастроена после изготовления
- Программируемые логические интеграционные схемы
- Крупногранулярные реконфигурируемые массивы (CGRA)
- Выстраивание людей для расчета таблиц
Программное управление
- Данные (программы) определяют то, какой прикладной процесс будет разворачиваться
- Количество уровней исполнения/интерпретации данных ограничено только целесообразностью Временные вычисления - одна и та же схема последовательно проходит через разные состояния во времени
Аппаратное обеспечение
Электронные и механические части вычислительного устройства, входящие в состав системы. Включает: компьютеры и логические устройства, внешние устройства и диагностическую аппаратуру, энергетическое оборудование
Программное обеспечение (ПО)
Совокупность программ и программных документов необходимых для эксплуатации. Позволяет аппаратному обеспечению выполнять функции
Аппаратура и ПО != Hardware и Software
- Программная/аппаратная составляющая слабо связаны с SW/HW:
- Minix - ОС встроена в Intel ME/CSME
- Микропрограммное обеспечение
- Часто аппаратурой называют то, что работает как аппаратное обеспечение
- Virutal-Computer, Virtual-Network, Virtual-Volume, etc
- Реконфигурируемые архитектуры (ПЛИС, CGRA)
- Разделение на SW/HW зависит в большей степени от способа использования
- Hardware - тяжело/долго/дорого поменять
- Software - легко/быстро/дешево поменять
Плюсы и минусы ПО/SW
Часть плюсов
- Быстрый цикл разработки, CI/CD и тд
- Меняем у пользователя
- Пользователь - Beta-тестер
Часть минусов
- Высокая сложность программ
- Безопасность
- Культура разработки. Верификация
Типовое HW/SW проектирование
Проектируем аппаратуру
- Система команд и вычислительные механизмы
- Интерфейсы управления аппаратурой
- Цифровая схематехника, система команд
Пишем программу
- Прикладная задача
- Язык и библиотеки
- Система команд и вычислительные механизмы (виртуальная память, прерывания)
- Интерфейсы управления аппаратурой
Проблемы
- Излишне шаблонное проектирование
- Высокие интеграционные риски
- Последовательная разработка (сроки)
Hardware/Software CoDesign
Мы проектируем систему
- Разработка интерфейса HW/SW (системы команд)
- Разработка моделей HW/SW, для получения обратной связи
- Разработка HW/SW, верификация моделей
- Заменая моделей на HW/SW
В итоге: сокращение цикла разработки
Как выбирать инструменты для разработки Software
- От доступного Hardware и инструментальных средств
- От доступной команды разработки
- От прикладной задачи
- От области (библиотеки)
- От модели вычислений (принципов организации вычислительного процесса: параллелизм, конвейризация, оптимизации и тд)
