Files
obsidian/Computer Science/Системная инженерия/Hardware and Software.md
T
roma-dxunvrs fec7f50b3e
deploy / Pull and Restart (push) Successful in 16s
02.10.26
2026-10-02 22:58:53 +03:00

6.6 KiB

  • Hardware производится один раз и дальше не меняется, не корректируется
  • Software адаптируется под задачу, легко изменяется
  • Разделены по времени/специальности: разные дисциплины и разные индустрии

Как разделить HW/SW

  1. Определяем возможности "конфигурирования":
    • Заложенные при проектировании - интерфейс задокументирован и стабилен (ISA, API)
    • Незадокументированные (нецелевое использование, дыра в безопасности) - используется то, что интерфейсом не гарантировано но работает
  2. Фиксируем интерфейс "конфигурирования"
    • Набор механизмов
    • Модель вычислений
    • Интструментальные средства

Конфигурирование РЭА

  1. Макетные платы
  2. Печатные платы: перерезать, навесить дорожку
  3. Джамперы
  4. Платы расширения
    • Вычислительные платы
    • Порты ввода/вывода
    • Dendy (память программ и графическая память)

Реконфигурация. Коммутация

Реконфигурируемые архитектуры

Архитектуры, где задача отображается в структуру вычислителя (пространственно, spatial), а не выполняется потоком инструкций. В отличие от ASIC, это структура может быть перенастроена после изготовления

  1. Программируемые логические интеграционные схемы
  2. Крупногранулярные реконфигурируемые массивы (CGRA)
  3. Выстраивание людей для расчета таблиц

Программное управление

  1. Данные (программы) определяют то, какой прикладной процесс будет разворачиваться
  2. Количество уровней исполнения/интерпретации данных ограничено только целесообразностью Временные вычисления - одна и та же схема последовательно проходит через разные состояния во времени

Аппаратное обеспечение

Электронные и механические части вычислительного устройства, входящие в состав системы. Включает: компьютеры и логические устройства, внешние устройства и диагностическую аппаратуру, энергетическое оборудование

Программное обеспечение (ПО)

Совокупность программ и программных документов необходимых для эксплуатации. Позволяет аппаратному обеспечению выполнять функции

Аппаратура и ПО != Hardware и Software

  1. Программная/аппаратная составляющая слабо связаны с SW/HW:
    • Minix - ОС встроена в Intel ME/CSME
    • Микропрограммное обеспечение
  2. Часто аппаратурой называют то, что работает как аппаратное обеспечение
    • Virutal-Computer, Virtual-Network, Virtual-Volume, etc
    • Реконфигурируемые архитектуры (ПЛИС, CGRA)
  3. Разделение на SW/HW зависит в большей степени от способа использования
    • Hardware - тяжело/долго/дорого поменять
    • Software - легко/быстро/дешево поменять

Плюсы и минусы ПО/SW

Часть плюсов

  1. Быстрый цикл разработки, CI/CD и тд
  2. Меняем у пользователя
  3. Пользователь - Beta-тестер

Часть минусов

  1. Высокая сложность программ
  2. Безопасность
  3. Культура разработки. Верификация

Типовое HW/SW проектирование

Проектируем аппаратуру

  • Система команд и вычислительные механизмы
  • Интерфейсы управления аппаратурой
  • Цифровая схематехника, система команд

Пишем программу

  • Прикладная задача
  • Язык и библиотеки
  • Система команд и вычислительные механизмы (виртуальная память, прерывания)
  • Интерфейсы управления аппаратурой

Проблемы

  1. Излишне шаблонное проектирование
  2. Высокие интеграционные риски
  3. Последовательная разработка (сроки)

Hardware/Software CoDesign

Мы проектируем систему

  1. Разработка интерфейса HW/SW (системы команд)
  2. Разработка моделей HW/SW, для получения обратной связи
  3. Разработка HW/SW, верификация моделей
  4. Заменая моделей на HW/SW

В итоге: сокращение цикла разработки

Как выбирать инструменты для разработки Software

  1. От доступного Hardware и инструментальных средств
  2. От доступной команды разработки
  3. От прикладной задачи
    • От области (библиотеки)
    • От модели вычислений (принципов организации вычислительного процесса: параллелизм, конвейризация, оптимизации и тд)