핫 스와핑

[섬네일|오른쪽|250px|스토리지 서버에서 [하드 디스크 드라이브|하드 드라이브를 핫 스와핑하는 모습]]
**핫 스와핑**(hot swapping) 또는 **핫 플러깅**(hot plugging)은 시스템을 멈추거나, 셧다운하거나, 재기동하지 않고도 컴퓨터 시스템의 구성 요소를 교체하거나 추가하는 것을 말한다. **핫 플러깅**은 작동 중인 컴퓨터 시스템에 구성 요소를 추가하는 것만을 의미한다. 이러한 기능을 가진 구성 요소는 핫 스와퍼블 또는 핫 플러거블이라고 하며, 그렇지 않은 구성 요소는 콜드 스와퍼블 또는 콜드 플러거블이라고 한다. 핫 스와핑의 더 넓은 개념은 전기 또는 기계 시스템에 적용될 수 있지만, 일반적으로 컴퓨터 시스템의 맥락에서 언급된다.

핫 스와핑의 예시로는 USB 드라이브, 마우스, 컴퓨터 자판, 또는 프린터와 같은 USB 주변기기를 컴퓨터를 먼저 끄지 않고도 컴퓨터의 USB 슬롯에서 바로 뽑아낼 수 있는 기능이 있다.

대부분의 데스크톱 컴퓨터 하드웨어 (예: CPU 및 메모리)는 콜드 플러그만 가능하다. 그러나 미드레인지에서 하이엔드 서버 및 메인프레임에서는 CPU, 메모리, PCI 익스프레스, SATA 및 SAS 드라이브와 같은 하드웨어 구성 요소에 대한 핫 스와퍼블 기능을 갖추는 것이 일반적이다.

쟁반형 홀더를 가진 대부분의 스마트폰과 태블릿은 시스템 전원을 끄지 않고도 SIM 카드를 교체할 수 있다.

전용 디지털 카메라 및 캠코더는 일반적으로 작동 중단 시간을 최소화하면서 신속한 교체를 위해 쉽게 접근 가능한 메모리 카드 및 전지 칸을 가지고 있다. 배터리는 예비 배터리를 외부에서 충전하는 동안 사용하지 않는 동안 교체할 수 있다. 많은 카메라와 캠코더는 메모리 카드가 삽입되지 않았을 때도 촬영할 수 있도록 내부 메모리 기능을 제공한다.

## 근거
핫 스와핑은 주로 작동을 중단하지 않고 작업 시스템의 구성을 변경하거나 수리해야 할 때 사용된다. 시스템을 항상 작동 상태로 유지해야 하는 일반적인 예는 서버의 경우인데, 이는 다른 컴퓨터(이른바 클라이언트)에 필요한 필수 데이터와 애플리케이션에 접근을 제공하는 컴퓨터이다. 다른 경우에는 핫 스와핑이 단순히 스마트폰 충전과 같이 장치를 끄고 다시 시작하는 지연과 불편함을 피하기 위해 구현된다.

핫 스와핑은 주변기기나 구성 요소를 추가하거나 제거하고, 장비 작동을 중단하지 않고 결함 있는 모듈을 교체하는 데 사용된다. 예를 들어, 어떤 기계는 각각 자체적으로 기계를 구동하기에 충분한 이중 핫 스와퍼블 전원 공급 장치를 가질 수 있다. 만약 이 전원 공급 장치 중 하나가 고장나서 작동을 멈추더라도, 기계는 다른 작동하는 전원 공급 장치로부터 전력을 공급받으므로 셧다운되지 않는다. 고장 난 전원 공급 장치는 기계 작동 중에 교체될 수 있으며, 결국 기계를 다중화 상태로 되돌릴 수 있다. 서버의 맥락에서, 확장 카드 (예: 디스크 컨트롤러 또는 호스트 어댑터)와 같은 중요한 구성 요소는 서버 작동 중단을 필요로 하지 않고 교체할 수 있도록 특수 다중화 기능을 갖도록 설계될 수 있다.

핫 스와핑의 또 다른 사용 사례는 두 장치 간의 데이터 동기화를 더 빠르게 하는 것이다. 이는 장치를 연결하기 전에 전원을 끌 필요가 없기 때문이다. 예를 들어, 아이폰을 USB 케이블을 통해 Mac 컴퓨터에 연결하여 데이터를 동기화하는 데 아이폰이나 Mac의 전원을 끄고 다시 시작할 필요가 없다. 더 편리하게는 사용자 입력 없이도 데이터 동기화가 자동으로 시작되도록 구성할 수 있다. 또한, 데이터 손상을 피하기 위해 지시받기 전까지는 장치를 분리하여 언제든지 데이터 동기화를 중단할 수 있다.

## 기계 및 전기 설계 고려 사항
핫 스와핑을 지원하는 기계는 변경 사항을 감지하면 자동으로 또는 사용자 개입을 통해 변경된 컴퓨터 구성에 맞게 작동을 수정할 수 있어야 한다. 핫 스와핑과 관련된 모든 전기 및 기계적 연결은 핫 스와핑 중 장비나 사용자에게 해가 가지 않도록 설계되어야 한다. 시스템의 다른 구성 요소는 핫 스와퍼블 구성 요소의 제거가 작동을 방해하지 않도록 설계되어야 한다.

### 정전기 손상으로부터의 보호
보호용 덮개 플레이트, 실드 또는 베젤은 탈착식 구성 요소나 주 장치 자체에 사용될 수 있으며, 이는 작업자가 활선 회로에 접촉하는 것을 방지하고, 추가되거나 제거되는 구성 요소에 대한 정전기 방지 기능을 제공하거나, 탈착식 구성 요소가 작동 중인 장치의 활선 구성 요소에 우발적으로 접촉하여 단락시키는 것을 방지하기 위함이다.

추가적인 가이드 슬롯, 핀, 노치 또는 구멍은 다른 활선 구성 요소 사이에 구성 요소를 적절하게 삽입하는 데 도움이 될 수 있으며, 기계적 맞물림 래치, 핸들 또는 레버는 연결 또는 분리에 많은 힘이 필요하거나 전원 및 통신 커넥터의 적절한 결합 및 고정을 돕는 장치 삽입 및 제거를 돕는 데 사용될 수 있다.

### 플러그 뽑기 전 구성 요소 종료 절차
일부 구현에서는 제거하기 전에 구성 요소 종료 절차를 요구한다. 이는 일반적으로 더 간단한 설계를 가능하게 하지만, 이러한 장치는 구성 요소 고장의 경우에 견고하지 않다. 이러한 경우, 구성 요소가 사용 중일 때 제거되면 해당 장치에 대한 작업이 실패하고 사용자는 필요한 경우 재시도를 책임져야 한다. 실제로는, 비용이 신뢰성보다 더 중요한 특정 설계에서는 이러한 절충이 유리할 수 있다.

더 복잡한 구현에서는 구성 요소를 종료하도록 권장하지만 요구하지는 않는다. 최적이 아닌 경우 구성 요소가 종료되지 않고 제거되면, 이러한 구현은 일반적으로 필수 작동을 계속할 수 있는 충분한 다중화 기능을 갖는다. 이러한 시스템에서 핫 스와핑은 일반적으로 컴퓨터의 정기 유지 보수 또는 고장 난 구성 요소를 교체하는 데 사용된다.

### 커넥터
[섬네일|선 SPARCstation 핫 스와퍼블 [Single Connector Attachment|SCA 드라이브 크래들]]
대부분의 현대 핫 스왑 방식은 특정 핀이 다른 핀보다 먼저 연결되도록 엇갈린 핀이 있는 특수 커넥터를 사용한다. 대부분의 엇갈린 핀 디자인은 접지 핀이 다른 핀보다 길어서 안정적인 시스템 접지가 되기 전에 민감한 회로가 연결되지 않도록 한다. 다른 핀은 모두 같은 길이일 수 있지만, 어떤 경우에는 세 가지 핀 길이를 사용하여 들어오는 장치가 먼저 접지되고, 데이터 라인이 두 번째로 연결되며, 전원이 세 번째로 인가되도록 한다. 이는 장치가 삽입될 때 빠르게 연속적으로 이루어진다. 명목상 같은 길이의 핀이라도 기계적 공차와 삽입 시 커넥터의 각도 때문에 정확히 동시에 접촉하지 않을 수 있다.

한때 엇갈린 핀은 비싼 솔루션으로 여겨졌지만, 많은 현대 커넥터 제품군은 이제 엇갈린 핀을 표준으로 제공한다. 예를 들어, 모든 현대 시리얼 SCSI 디스크 드라이브에 사용된다. 특수 핫 플러그 전원 커넥터 핀은 이제 최대 16A의 반복 가능한 DC 전류 차단 등급으로 상업적으로 이용 가능하다. 인쇄 회로 기판은 백플레인 커넥터에 직접 핫 플러그할 수 있도록 엇갈린 에지-핑거로 만들어진다.

플러그 속도를 정확하게 제어할 수는 없지만, 실제적인 고려 사항은 최악의 조건을 결정하는 데 사용될 수 있는 한계를 제공할 것이다. 일반적인 엇갈린 핀 설계에서 길이 차이가 0.5mm일 때, 길고 짧은 핀 접촉 사이의 경과 시간은 25ms에서 250ms 사이이다. 이 속도로 작동할 수 있는 핫 스왑 회로를 설계하는 것은 매우 실용적이다.

섬네일|오른쪽|350px|핫 스왑 커넥터 코너 핀
핫 스왑 커넥터가 충분히 견고하다면, 네 모서리 핀 중 하나는 항상 가장 먼저 맞물릴 것이다. 일반적인 2열 커넥터 배열의 경우, 접지용으로 사용되는 4개의 첫 번째 접촉 코너 핀이 제공된다. 모서리 근처의 다른 핀은 이 효과로 이점을 얻을 수 있는 기능(예: 커넥터가 완전히 장착되었는지 감지하는 기능)에 사용될 수 있다. 이 다이어그램은 접지 핀이 모서리에 있고 전원 핀이 중앙 근처에 있는 좋은 사례를 보여준다. 두 개의 감지 핀은 반대쪽 모서리에 위치하여 두 핀이 모두 슬롯과 접촉할 때만 완전 장착 감지가 확인된다. 나머지 핀은 다른 모든 데이터 신호에 사용된다.

### 전력 전자 장치
핫 스왑 구성 요소에 대한 DC 전원 공급 장치는 일반적으로 주 전원 핀보다 먼저 접촉하는 전용 긴 핀에 의해 예비 충전된다. 이 예비 충전 핀은 돌입 전류를 핀을 손상시키거나 인접 슬롯에 대한 공급 전압을 방해하지 않는 허용 가능한 값으로 제한하는 회로에 의해 보호된다. 예비 충전 회로는 간단한 직렬 저항기, 음의 온도 계수(NTC) 저항기 또는 전류 제한기 회로일 수 있다. 추가적인 보호는 구성 요소 내부 DC 공급 전압의 관리된 상승을 제공하는 "소프트 스타트" 회로에 의해 제공될 수 있다.

슬롯에 핫 스왑 구성 요소를 연결하는 일반적인 순서는 다음과 같다:
#긴 접지 핀이 접촉; 기본적인 전기 안전 및 ESD 보호가 제공됨.
#긴 (또는 중간) 사전 충전 핀이 접촉; 디커플링 커패시터가 충전되기 시작함.
#수십 밀리초의 실제 시간 지연.
#짧은 전원/신호 핀이 접촉.
#커넥터가 완전히 장착됨; 구성 요소 내부에서 전원 켜짐 리셋 신호가 활성화됨.
#소프트 스타트 회로가 구성 요소에 전원을 인가하기 시작함.
#수십 밀리초의 실제 시간 지연.
#소프트 스타트 회로 시퀀스가 완료됨; 전원 켜짐 리셋 회로가 비활성화됨.
#구성 요소가 정상 작동을 시작함.

핫 스왑 전원 회로는 현재 핫 스왑 전원 관리자(HSPM)라고 불리는 특별히 설계된 ASIC 형태로 상업적으로 구매할 수 있다.

### 신호 전자 장치
핫 스왑 구성 요소의 신호 핀에 연결된 회로는 정전기 방전(ESD)에 대한 보호 기능을 포함해야 한다. 이는 일반적으로 접지 및 DC 전원 공급 전압에 대한 클램프 다이오드 형태로 이루어진다. ESD 효과는 핫 스왑 구성 요소 주변의 기계적 패키지를 신중하게 설계하여, 아마도 전도성 물질의 얇은 필름으로 코팅하여 줄일 수 있다.

하나 이상의 핫 스왑 구성 요소에 연결된 버스 신호를 가진 시스템을 설계할 때 특별한 주의를 기울여야 한다. 핫 스왑 구성 요소가 삽입될 때, 그 입력 및 출력 신호 핀은 일시적인 접지 단락을 나타낼 것이다. 이는 시스템 내의 다른 핫 스왑 구성 요소의 작동을 방해할 수 있는 신호에 원치 않는 접지 수준 펄스를 유발할 수 있다. 이는 초기 병렬 SCSI 디스크 드라이브에서 문제였다. 일반적인 설계 해결책은 버스 신호 핀을 직렬 다이오드나 저항기로 보호하는 것이다. CMOS 버퍼 장치는 이제 핫 스왑 작업 중에 버스 신호의 교란을 최소화하는 특수 입력 및 출력을 제공한다. 다른 모든 방법이 실패하면, 또 다른 해결책은 핫 스왑 작업 중에 모든 구성 요소의 작동을 정지시키는 것이다.

## 응용 분야

### 무선 송신기
현대의 무선 송신기 (및 일부 TV 송신기도 마찬가지)는 진공관 대신 고출력 RF 트랜지스터 전력 모듈을 사용한다. 전력 모듈의 핫 스와핑은 새로운 기술이 아니다. 1930년대에 제조된 많은 무선 송신기는 송신기가 작동 중일 때도 전력관을 교체할 수 있었지만, 이 기능은 더 신뢰할 수 있는 고출력관의 도입으로 보편적으로 채택되지 않았다.

1990년대 중반, 미국 내 여러 무선 송신기 제조업체는 교체 가능한 고출력 RF 트랜지스터 모듈을 제공하기 시작했다.
* 당시 교체 가능한 전력 모듈 설계에 대한 산업 표준은 없었다.
* 초기 모듈 설계는 특허 제한이 제한적이었다.
* 2000년대 초반까지 많은 송신기 모델이 다양한 종류의 전력 모듈을 사용하여 출시되었다.

전력 모듈의 재도입은 무선 송신기 산업에 혁신을 가져왔다. 모듈형 송신기는 송신기가 전송 현장의 조건에 맞게 올바르게 선택되었을 때 튜브 송신기보다 더 신뢰할 수 있음이 입증되었다.

전력 제한:
* 최저 전력 모듈형 송신기: 일반적으로 1.0 kW, 600 W 모듈 사용.
* 최고 전력 모듈형 송신기: 1.0 MW (장파, 중파).
* 최고 전력 모듈형 송신기: 45 kW (FM, TV).

### 게임
대부분의 현대 비디오 게임 시스템은 시스템 전원을 끄지 않고도 게임과 멀티미디어(예: 블루레이)를 교체할 수 있지만, 구형 시스템은 핫 스와핑 기능 지원 여부가 다양했다. 예를 들어, 소니 플레이스테이션과 플레이스테이션 2는 시스템 전원이 켜진 상태에서 게임 디스크를 꺼낼 수 있었지만, 닌텐도 게임보이 어드밴스와 닌텐도 64는 전원이 켜진 상태에서 게임 카트리지를 제거하면 시스템이 멈추거나 손상될 수 있었다. 제조업체는 소유자 매뉴얼이나 게임 카트리지에 그러한 행위를 하지 말라고 명시적으로 경고했다. 반조 카주이 시리즈와 동키콩 64에서 Stop 'N' Swop 기능이 제거된 것도 이 때문이었다고 한다. 메가 드라이브 시스템에서는 카트리지가 핫 스와퍼블로 설계되지 않았음에도 불구하고, 카트리지를 핫 스와핑하여 치트 (예: 플레이어가 무한 생명력을 갖는 것) 및 기타 임시 소프트웨어 변경을 게임에 적용할 수 있는 경우가 있었다.

### 키보드

핫 스와퍼블 키보드는 키보드를 분해하지 않고도 스위치를 변경할 수 있도록 해준다. 표준 기계식 스위치 키보드에서는 스위치가 납땜으로 PCB에 직접 연결되어 있다. 핫 스와퍼블 키보드는 그 자리에 스위치를 다시 납땜할 필요 없이 자유롭게 교체할 수 있는 소켓이 있다.

핫 스와퍼블 키보드는 점점 더 보편화되고 있으며, 대부분의 열광적인 키보드와 키보드 부품에서 핫 스와핑을 지원하는 것이 일종의 표준이 되었다. 다양한 크기와 자판 배열을 포함하여 보다 전문화된 인체공학 키보드 배열에서도 찾아볼 수 있다.

### 소프트웨어 개발

핫 스와핑은 프로그램 실행을 중단할 필요 없이 프로그램의 실행 중인 코드를 변경할 수 있는 능력도 의미한다. 대화형 프로그래밍은 핫 스와핑을 광범위하게 사용하는 프로그래밍 패러다임으로, 프로그래밍 활동 자체가 프로그램 흐름의 일부가 된다.

파이크, 리스프, 얼랭, 스몰토크, Visual Basic 6 (VB.NET 아님), 자바, 그리고 최근에는 Elm 및 Elixir를 포함한 몇몇 프로그래밍 언어만이 핫 스와핑을 기본적으로 지원한다. 마이크로소프트 비주얼 스튜디오는 디버거 아래에서 실행될 때 C 샤프, VB.NET 및 C/C++에 의해 지원되는 Edit and Continue라는 종류의 핫 스와핑을 지원한다.

핫 스와핑은 프로그래밍이 런타임 프로세스의 필수적인 부분인 라이브 코딩의 핵심 방법이다. 일반적으로 Supercollider, TidalCycles, 또는 Extempore와 같이 라이브 코딩에 사용되는 모든 프로그래밍 언어는 핫 스와핑을 지원한다.

장고와 같은 일부 웹 기반 프레임워크는 모듈 변경을 감지하고 즉시 다시 로드하는 것을 지원한다. 그러나 대부분의 의도와 목적을 위해 핫 스와핑과 동일하지만, 이것은 기술적으로는 새 파일에 의해 트리거되는 캐시 제거에 불과하다. 이는 일반적으로 HTML 및 PHP와 같은 마크업 및 프로그래밍 언어에는 적용되지 않는다. 이러한 파일은 기본적으로 사용될 때마다 다시 해석되기 때문이다. 그러나 캐싱을 사용하는 몇몇 CMS와 다른 PHP 기반 프레임워크(예: 드루팔)가 있다. 이 경우, 유사한 기능 및 예외가 적용된다.

핫 스와핑은 또한 생물정보학 알고리즘에서 전체 게놈과 같이 대량의 데이터가 처리되는 시스템을 개발하는 데에도 도움이 된다.

## 상표
"HOT PLUG"라는 용어는 1992년 11월 코어 인터내셔널(Core International, Inc.)에 미국 상표로 등록되었으며, 1999년 5월에 취소되었다.

## 같이 보기
* 플러그 앤 플레이

## 각주

## 외부 링크
* 리눅스에서 핫플러그 지원

분류:컴퓨터 주변기기
분류:장애 허용 컴퓨터 시스템
분류:장애 허용