AIDT 온디바이스 STEM 단일 광자 눈사태 다이오드(SPAD) 능동 켄칭 및 사구 시간 서보 엔진

가이거 모드(Geiger Mode) 애벌랜치 파괴 억제, 능동 켄칭 회로(AQC) 피코초 지터 제어, 사구 시간(Dead Time) 10,000Hz C# 엔진

1. 개요

단일 광자 눈사태 다이오드(SPAD, Single-Photon Avalanche Diode)는 역방향 항복 전압(Breakdown Voltage) 이상의 과잉 바이어스(Excess Bias) 영역인 가이거 모드(Geiger Mode)에서 동작하여 단 한 개의 광자 유입으로도 거대한 전자-정공 눈사태 방전을 유도하는 초고감도 광학 양자 센서입니다. 그러나 자가 유지 방전으로 인한 소자 소손을 막고 후속 펄스 오검출을 유발하는 애프터펄싱(Afterpulsing)을 방지하기 위해서는 서브 나노초 내에 바이어스를 항복 전압 이하로 급격히 떨어뜨리는 능동 켄칭 회로(AQC, Active Quenching Circuit)와 정밀 사구 시간(Dead Time) 서보 제어가 필수적입니다. 본 고에서는 10,000Hz 주기로 SPAD 바이어스와 홀드오프 사구 시간을 적응 제어하는 0-Alloc C# 엔진을 구현합니다.

2. 수학적 모델링 및 지배 방정식

SPAD 광자 검출 확률 및 켄칭 동역학은 다음과 같은 비선형 확률 미분 및 지수적 감쇠 방정식으로 정식화됩니다:

\[ V_{R} = V_{BD} + V_{ex}, \quad P_{det}(V_{ex}) = \eta_{abs} \cdot \left[ 1 - \exp\left(-\frac{V_{ex}}{V_{sat}}\right) \right] \]

여기서 \(V_{BD}\)는 PN 접합의 역방향 항복 전압, \(V_{ex}\)는 과잉 바이어스 전압, \(\eta_{abs}\)는 양자 흡수 효율, \(V_{sat}\)은 전계 충격 이온화 포화 계수입니다. 애벌랜치 켄칭 시 방전 전류 및 방전 시간 상수는 다음과 같습니다:

\[ \tau_{quench} = R_{switch} \cdot C_{junction}, \quad P_{afterpulse}(t) = \sum_{k=1}^M \frac{A_k}{\tau_k} \exp\left(-\frac{t - \tau_d}{\tau_k}\right) \]

사구 시간(\(\tau_d\)) 동안 소자를 항복 전압 이하로 유지함으로써 깊은 준위 트랩(Deep-level Traps)에 포획되었던 캐리어들이 재방출될 때 2차 눈사태를 일으키지 않도록 보호하며, 유효 계수율 한계는 다음과 같이 보정됩니다:

\[ R_{corrected} = \frac{R_{measured}}{1 - R_{measured} \cdot \tau_d} \]

3. 실시간 피드백 제어 아키텍처

graph TD A[단일 광자 입사 hν] --> B[가이거 모드 PN 접합 충격 이온화 전자사태 발생] B --> C[초고속 전압 비교기 애벌랜치 전류 엣지 감지] C --> D[능동 켄칭 스위치 ON 바이어스를 항복 전압 이하로 급락] D --> E[소자 방전 전류 차단 및 과열 소손 억제] E --> F[사구 시간 Dead Time 홀드오프 타이머 작동] F --> G[트랩 캐리어 방출 완료 후 초고속 재충전 바이어스 복귀] G --> H[10,000Hz 0-Alloc C# 암계수율/애프터펄싱 추적 적응형 바이어스 서보] H --> C

4. 고성능 0-Alloc C# 서보 엔진 구현

GC 지연 없이 10,000Hz 하드 실시간 제어 루프를 보장하는 고성능 C# 구조입니다:

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Stem.QuantumOptics
{
    public readonly record struct SpadSensorConfig(
        double BreakdownVoltageV,     // 역방향 항복 전압 (예: 28.5 V)
        double TargetExcessBiasV,     // 목표 과잉 바이어스 (예: 3.5 V)
        double JunctionCapacitanceF,  // 접합 커패시턴스 (예: 1.2e-12 F)
        double MinDeadTimeSec,        // 최소 사구 시간 (예: 20e-9 s)
        double MaxDarkCountRateHz     // 허용 최대 암계수율 (예: 50.0 Hz)
    );

    public ref struct SpadQubitServoState
    {
        public double AppliedReverseBiasV;
        public double EffectiveDeadTimeSec;
        public double EstimatedDetectionProb;
        public double MeasuredCountRateHz;
        public double AfterpulsingRatio;
        public bool IsQuenchedState;
    }

    public static class SpadAvalancheQuenchServo
    {
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static void UpdateSpadServo(
            in SpadSensorConfig cfg,
            double measuredRawCounts,
            double sampleIntervalSec,
            double detectorTempK,
            ref SpadQubitServoState state)
        {
            // 1. 역방향 항복 전압의 온도 보정 (실리콘 PN 계수 약 +0.1 V/K)
            double tempDelta = detectorTempK - 293.15;
            double adjustedVbd = cfg.BreakdownVoltageV + (0.095 * tempDelta);

            // 2. 측정 계수율 및 파울러 사구 시간 역보정
            double measuredRate = measuredRawCounts / sampleIntervalSec;
            state.MeasuredCountRateHz = measuredRate;

            // 3. 애프터펄싱 방지를 위한 동적 Dead Time 튜닝 (계수율 급증 시 안전 확장)
            double countLoadFactor = Math.Clamp(measuredRate / 100000.0, 0.0, 1.0);
            double dynamicDeadTime = cfg.MinDeadTimeSec * (1.0 + 1.5 * countLoadFactor);
            state.EffectiveDeadTimeSec = dynamicDeadTime;

            // 4. 과잉 바이어스 및 검출 효율 추정
            double targetV = adjustedVbd + cfg.TargetExcessBiasV;
            state.AppliedReverseBiasV = targetV;

            double excessBias = Math.Max(0.0, targetV - adjustedVbd);
            state.EstimatedDetectionProb = 0.65 * (1.0 - Math.Exp(-excessBias / 1.8));

            // 5. 애프터펄싱 비율 모델링
            state.AfterpulsingRatio = 0.03 * Math.Exp(-dynamicDeadTime / 30e-9);
            state.IsQuenchedState = false;
        }
    }
}

5. 국방 및 교육 현장 응용

  • 국방 MUM-T 양자 암호통신(QKD) 및 레이저 라이다: 단일 광자 검출 레벨에서 위성-지상 간 무선 양자 키 분배와 스텔스 전투기 비가시 레이저 라이다 거리 측정에 적용.
  • 2022 개정 물리 및 정보 교과 실습: 광자의 입자성, 포아송 광자 통계학, 양자 얽힘 쌍 검출 실험을 고등학교 물리 실험실에서 온디바이스로 시뮬레이션.

6. 결론

본 SPAD 능동 켄칭 및 사구 시간 서보 엔진은 10,000Hz 주기의 0-Alloc C# 최적화를 통해 양자 광학 센서의 지터와 사구 시간을 최소화하고 단일 광자 검출 확률을 극대화합니다.