Горячая замена

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Горячая замена (англ. Hot Swap — горячая замена и англ. HotPlug — горячее подключение) — термины, означающие отключение или подключение электронного оборудования в/к (компьютерной) системе во время её работы без выключения питания и остановки (системы) (HotPlug), а также замену (переподключение) блока в целом (Hot Swap). Также существует термин, обозначающий противоположность горячей замене — Холодная замена, то есть все (пере)подключения производятся после остановки системы и снятия напряжения (остаточного потенциала).

Оборудование делится по этому принципу на допускающее горячую замену и не допускающее.

История[править | править код]

Ранее оборудование, предназначенное для подключения во время работы, связанного с заменой, использовалось только в дорогих системах и считалось сложным в проектировании. В последнее время подобные системы стали распространенными даже на недорогих компьютерах.

  • Предназначены для горячей замены и, следовательно, поддерживают горячую замену стандарты PCMCIA, USB, FireWire, Fibre Channel и eSATA.
    Среди устройств этого типа — флеш-накопители, некоторые жесткие диски, в том числе для массивов в серверах, карты расширения форматов PCI-X, PCI Express[1], ExpressCard (PCMCIA, также ранее называемые PC Cards), находящие применение в ноутбуках, и даже некоторые блоки питания.
  • Не поддерживают полноценную горячую замену дисковые интерфейсы SATA и полностью не поддерживает протокол IDE (SATA поддерживает горячее подключение).

Конструкция системы[править | править код]

Компьютеры, рассчитанные на замену оборудования «на ходу», должны тем или иным способом определять, что устройство отсоединено, а также содержать электрические цепи, нечувствительные к скачкам напряжения при подключении и отключении. Кроме того, программная часть должна быть рассчитана на внезапную потерю связи с устройством.

Некоторые схемы горячей замены требуют предварительно выполнения команды на отсоединение, что упрощает их конструкцию, однако угрожает целостности данных, если устройство не будет отсоединено правильным способом или в нём возникнет ошибка.

Более сложные схемы обладают запасом избыточности и легко восстанавливают данные при внезапном отключении устройства.

Термин «горячая замена» используется в двух значениях. С одной стороны, он обозначает возможность отсоединить или присоединить устройство без отключения питания. С другой стороны, он также может подразумевать еще и автоматическое определение устройства при подсоединении. Первое значение термина распространяется на интерфейсы RS-232, FireWire и простейшие реализации SCSI, второе значение — на USB, FireWire, PCI Express и сложные варианты SCSI.

Конструкция гнезда[править | править код]

Крайние контактные площадки питания сделаны длиннее внутренних сигнальных

В большинстве современных устройств, допускающих горячую замену, используются подвижные контакты. Один из них делается длиннее других, чтобы первым входить в контакт с присоединяемой частью, через него подключается заземляющий провод. Остальные контакты делаются короче, всего может быть до 3 различных длин. Задержка между подключением первого контакта и последующих составляет от 25 до 250 миллисекунд.

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

Вот пример типичной последовательности подключения:

  1. Замыкаются наиболее длинные контакты (заземление). Тем самым достигается электрическая безопасность соединения и защита от статического заряда.
  2. Замыкаются длинные или средние контакты предварительного питания. Заряжаются входные контуры цепей питания.
  3. Задержка в десятки миллисекунд.
  4. Подключаются короткие контакты питания.
  5. Соединение считается установленным. Включается сигнал инициализации питания.
  6. Цепь мягкого включения питания подает напряжение на устройство.
  7. Задержка в десятки миллисекунд.
  8. Цепь питания закончила мягкое подключение. Выключается сигнал инициализации питания.
  9. Устройство начинает полноценную работу.

Особую трудность представляет соединение нескольких устройств, так как подсоединение второго, третьего устройства может нарушать работу уже подключенного. Для борьбы с этим явлением используют фильтры в выходных цепях или временное логическое отключение передачи данных.

Горячее подключение в программном обеспечении[править | править код]

Термин «горячее подключение» также используется применительно к программному обеспечению и означает возможность изменять программу без остановки её выполнения. Такую возможность поддерживают лишь несколько языков программирования, включая Lisp, Erlang и Smalltalk. Язык Java поддерживает эту возможность только в процессе работы отладчика (Java Platform Debugger Architecture, JPDA).

При использовании интерпретируемых языков программирования (с сохранением текстов программ внутри модулей) «горячее подключение» реализуется просто заменой текстов. К примеру, предметно-ориентированный язык программирования 1С v8 предоставляет возможность изменять код при работающей программе (https://web.archive.org/web/20110427193804/http://v8.1c.ru/overview/release_8_1_5/administration.htm раздел «Обновление частей конфигурации»).

Так как компиляция отдельных модулей происходит в момент исполнения программы, и при изменении модуля он компилируется в сеансе заново — это не совсем «горячее подключение». Нужно заново создать сеанс, чтобы изменения вступили в силу, и только для этого пользователя (другим надо перезапустить новый сеанс).

В версии v7 эта возможность также присутствовала при использовании дополнительных программных средств[2] и штатной командой #ЗагрузитьИзФайла….(требуется только заново открыть форму или отчёт).

Примечания[править | править код]

  1. Архивированная копия. Дата обращения: 27 июля 2019. Архивировано 24 октября 2019 года.
  2. Александр Орефков. TurboMD. openconf.1cpp.ru. Дата обращения: 7 октября 2016. Архивировано 31 октября 2016 года.

Ссылки[править | править код]