728x90
  • 한빛미디어의 '나는 리뷰어다 2020' 에 선정되어 도서를 지원받아 작성한 글입니다.

 

  • 이전에 파이썬으로 배우는 딥러닝 교과서라는 책을 리뷰했었다. 이번 '나는 리뷰어다' 활동으로 받은 통계학 교과서는 그 책의 시리즈인데, 아무래도 딥러닝 대비 사용하는 모듈이나 이론의 방대함의 정도에 차이가 있다고 봐도 될 것 같다. 그때 받은 책보다도 두께가 거의 절반 정도밖에 안되는 것으로 보이니 말이다. 파이썬을 응용해보고 싶다면, 그것이 처음 경험하는 일이라면 딥러닝 교과서보다 이 책이 더 접근하기 더 좋을 것이라고 생각된다.

  • 지난 번에 본 시리즈인 '파이썬으로 배우는 딥러닝 교과서'를 읽고, 내용 전개의 친절함이 꽤 마음에 들었었던 기억이 있다. 이번 책 역시 시리즈답게 그 장점을 유지하고 있다. 들어가는 기초 이론 - 환경 구성 - 모듈 채용 - 실제 이론을 적용한 실습으로 이론과 실제 코딩을 적절히 병용하는 구성은 여전히 만족스럽다고 할 수 있다.

  • 주로 Pandas/Matplotlib/Numpy/Scipy로 구성되는 파이썬에서 가장 잘 쓰이는 모듈을 실습하여 통계학 이론을 직접 해볼 수 있으며, 소제목을 짧게 끊어가는 구성 덕분에 학습 중간에 끊어가지 않는 점 역시 장점이라고 할 수 있겠다.

  • 확률 및 랜덤변수에서 배운 확률모델부터 시작하여, 실제 통게 모델에 이어 머신러닝까지 그 이론의 방대함 대비로는 빠르게 익힐 수 있다는 특징이 있다. 이는 읽는 이에 따라 장점일수도, 단점일수도 있을 것 같다.

  • 나같은 경우 이론을 빠르게 훑으며 더 깊게 알아볼 필요가 있을 경우 구글링으로 더 파고들 수 있어 오히려 이런 책이 도움이 될 듯 하다.

aladin.kr/p/HMThV

 

파이썬으로 배우는 통계학 교과서

데이터 분석 관점에서 통계학을 설명한다. 어려운 통계학 개념을 이론, 수식, 파이썬 코드로 세 번 살펴본다. 한 번 보고 완전히 이해하지 못해도 여러 번 반복 설명하므로 읽는 동안 점점 이해��

www.aladin.co.kr

위 링크에서 구매하실 수 있습니다!

728x90
728x90
0. 오리엔테이션

0. 오리엔테이션

  • 머신러닝(기계학습) : 기계를 학습시켜 인간의 판단을 위임하기 위한 기술
    • 전염병의 양성 여부 판정
    • 번역기
    • 자율주행 등
  • 공부와 문제
    • 공부는 문제를 해결하기 위해 하는 것
    • 해결하고자 하는 문제가 큰, 나의 일이라면 공부는 문제로부터 우리를 도우는 존재
    • 하지만 문제가 사소한 일이라면, 공부는 오히려 우리를 억압하는 존재가 되는 것
    • 문제는 클수록, 공부는 작을 수록 좋지만, 현실에서는 흔하지 않은 경험

1. 머신러닝이란?

  • 결정 = 비교 + 선택
    • 더 좋은것 / 나쁜 것을 비교할 수 있다면, 선택은 기계적인 것
    • ex. 물건을 살 때, 동일한 제품이라면 더 저렴한 물건을 선택하는 것이 당연
    • 실제로는 비교하는 것도 쉽지 않은 일 - 대소관계가 명확치 않거나, 반대로 비교할 요소가 너무 많은 경우
  • 중장비가 있다고 손이 필요 없고, 자동차가 있다고 발이 필요 없듯, 머신러닝은 우리의 판단 능력을 확장시켜 결정을 돕는 도구라고 할 수 있다.

2. 꿈

  • 학생이 아닌 엔지니어, 소비자가 아닌 생산자
  • 가장 중요한 것? : 해결하고자 하는 의지 - 이것이 없다면 지식은 목적 없는 수단일 뿐
  • 각자가 중요하게 생각하는 문제는 다를 수밖에 없음 / 혹은 해결하고자 하는 문제가 없을 수 있음
  • 습관을 고치는 데 머신러닝을 이용한다면?
    • 문제 해결의 전략 : 의지 < 환경 < 습관 < 의지 < ...
    • 의지만으로 습관을 바꾸는 것은 힘든 일
    • 의지로 환경을 조성하여, 습관을 고칠 수 있다면?

3. 궁리하는 습관

  • 일 = 꿈 + 능력
    • 엔지니어가 아닌 이상 꿈을 이룰 능력은 없다 해도, 그럴 수록 능력이 있다고 정해 놓고 꿈을 먼저 정하는 것이 중요
  • 원리, 수학, 코딩
    • 머신러닝은 원리를 이용하여, 수학과 코딩으로 이루어지는 것
    • 머신러닝으로 목적을 달성하기 위해서는 수학과 코딩이 필요(언젠가는)
    • 오히려 원리를 파악하기 전, 사용자가 되는 것이 더 좋을 수도 있음 : 다양한 문제를 풀며 한계를 느낄 때, 그 때 원리를 배워도 늦지는 않을 것
  • 기술의 발전으로 인해 꿈을 실현하는 방법은 빠르고, 저렴하고, 간단해지고 있음
  • 습관을 고치는 프로그램?
    • 손톱을 깨무는 프로그램을 만든다면
    • 스마트폰을 이용한다면 더 좋을텐데?
    • 영상으로 손톱을 깨물 때와 아닐 때를 구분할 수 있게, 머신러닝을 이용해서
    • 이 프로그램을 앱으로 만들어 배포
    • 결과적으로 모든 종류의 습관에 대한 머신 러닝까지

4. Teachable Machine

  • 수학/코딩 없이도 머신러닝을 구현 가능한 서비스가 나타나고 있음
  • teachable machine : 머신러닝에 대한 지식 없이 구현이 가능하도록 고안된 도안

    • 클래스 : 컴퓨터가 학습하기 위한 교재 / 일정한 특징을 갖는 데이터의 묶음
    • Training : 데이터 클래스를 기반으로 컴퓨터가 학습
    • Preview : 학습한 결과를 실제로 테스트, 입력되는 데이터에 따라 컴퓨터가 스스로 클래스에 속하는 지 여부를 판단
    • 판단이 애매한 경우 : 학습 데이터가 부족하거나, 부정확한 경우 - 데이터를 더 늘리거나, 부정확한 데이터를 제거
  • 머신러닝(기계학습) : 사람이 공부를 통해 더 정확히 판단하듯, 기계를 학습시켜 정확한 판단력을 형성
    • 머신러닝의 판단력 = 모델

5. 모델

  • 모델 = 머신러닝을 이해하기 위한 핵심
    • 교훈 = 사람이 경험을 통해 갖게 되는 판단, 예측(추측)능력
      • 경험을 통해 가설을 추측하고, 이를 검증하기 위해 실험을 진행하여, 모순이 없다면 이론으로 인정
    • 머신러닝의 판단력 = 모델
      • 모델을 만드는 과정 = 학습
      • 좋은 모델 = 좋은 추측 / 좋은 학습 = 좋은 모델 / 좋은 추측 = 좋은 결정
728x90
728x90
Feedback

Feedback

  • Op-amp 피드백
    • V=RRRR+RFVoutV_-=\frac{R_R}{R_R+R_F}V_{out}
    • Av(VinV)=VoutA_v(V_{in}-V_-)=V_out
    • AvVin=[1+RRRR+RFAv]VoutA_vV_{in}=[1+\frac{R_R}{R_R+R_F}A_v]V_{out}
    • VinVout=Av1+R2Av/(R1+R2)\therefore \frac{V_{in}}{V_{out}}=\frac{A_v}{1+R_2A_v/(R_1+R_2)}
  • Feedback 회로
    • Vs=Vi+kVoV_s=V_i+kV_o
    • Vo=AViVs=Vi(1+kAv)V_o=AV_i\rarr V_s=V_i(1+kA_v)
    • VoVs=Vs(1+kAv)\frac{V_o}{V_s}=\frac{V_s}{(1+kA_v)} : 피드백에 의해 Gain 감소
      • Gain이 무한대 11+K\rarr\frac{1}{1+K}(feedback 영향만 존재)
    • 입력 임피던스
      • Vi=IsRiV_i=I_sR_i
      • Is=ViRi=Vs(1+kAv)RiI_s=\frac{V_i}{R_i}=\frac{V_s}{(1+kA_v)R_i}
      • 입력저항이 (1+kAv)(1+kA_v)만큼 증가한 효과
    • 출력 임피던스 (V_s=0)
      • io=VoAViRo=Vx+kAvVxRo=(1+kAv)VoRoi_o=\frac{V_o-AV_i}{R_o}=\frac{V_x+kA_vV_x}{R_o}=\frac{(1+kA_v)V_o}{R_o}
      • 출력 임피던스가 1/(1+kAv)1/(1+kA_v)로 작아지는 효과

  • 2-port network
  • V1, V2, I1, I2V_1,\ V_2,\ I_1,\ I_2 중 2개의 값을 알면 나머지 값을 판단 가능
  • ex. 위의 1k를 R1R_1, 아래 1k를 R2R_2라고 할 때
    • I1, V2I_1,\ V_2를 알 때

    • [V1I2]\begin{bmatrix} V_1\\ I_2 \end{bmatrix} =[abcd]=\begin{bmatrix} a & b\\ c & d \end{bmatrix} [I1V2]\begin{bmatrix} I_1\\ V_2 \end{bmatrix}

    • a=V1I1V2=0, b=V1V2I1=0, c=I1I2V2=0, a=I2V2I1=0a=\frac{V_1}{I_1}|_{V_2=0},\ b=\frac{V_1}{V_2}|_{I_1=0},\ c=\frac{I_1}{I_2}|_{V_2=0},\ a=\frac{I_2}{V_2}|_{I_1=0}

    • a : V2V_2가 그라운드 a=R1R2\therefore a=R_1||R_2

    • b : I1I_1 영향 x (I1I_1이 들어가는 선과 R1R2R_1-R_2접점이 끊어졌다고 판단)
      b=R2R1+R2b=\frac{R_2}{R_1+R_2}

    • c : I1=V1R1R2, I2=V1R1I_1=\frac{V_1}{R_1||R_2},\ I_2=-\frac{V_1}{R_1}
      I2I1=R1R2R1\rarr\frac{I_2}{I_1}=-\frac{R_1||R_2}{R_1}

    • d : 1R1+R2\frac{1}{R_1+R_2}

  • 피드백회로 변환 (A=10,k=0.5)(A=10, k=0.5)
    • Vi=RiR1R2+RiViV_i'=\frac{R_i}{R_1||R_2+R_i}V_i
      Av=RiR1R2+RiAv\rarr A_v'=\frac{R_i}{R_1||R_2+R_i}A_v
    • R1, R2, Ri=1k, Av=10R_1,\ R_2,\ R_i=1k,\ A_v=10일 때 Av=20/36.67A_v'=20/3\simeq6.67
    • Af=Av1+kAvA_f=\frac{A_v}{1+kA_v}
      =6.671+6.67×0.51.54=\frac{6.67}{1+6.67\times0.5}\simeq1.54
    • Rif=1.5k×(1+kA)6kR_{if}=1.5k\times(1+kA)\simeq6k
728x90
728x90
6. The Frequency Response Design Method

6. The Frequency Response Design Method

1. Frequency Response

  • 주파수 응답 : 선형시스템에 sinusoidal 입력이 들어갔을 때의 응답
    • 입력 u(t)=Asin(w0t)u(t)=Asin(w_0t)
    • 초기값 0일 때 출력 Y(s)=G(s)Aw0s2+w02Y(s)=G(s)\frac{Aw_0}{s^2+w_0^2}
    • G(s)가 n개의 pole을 갖는다고 할 때,
      Y(s)=α1sp1+α2sp2+...+αnspn+α0s+jw0+α0sjw0Y(s)=\frac{\alpha_1}{s-p_1}+\frac{\alpha_2}{s-p_2}+...+\frac{\alpha_n}{s-p_n}+\frac{\alpha_0}{s+jw_0}+\frac{\alpha_0^*}{s-jw_0}
    • α0=limsjw0G(s)Aw0s2+w02=A2jG(jw0)\alpha_0=\lim_{s\rarr -jw_0}G(s)\frac{Aw_0}{s^2+w_0^2}=-\frac{A}{2j}G(-jw_0)
    • α0=A2jG(jw0)\alpha_0^*=\frac{A}{2j}G(jw_0)
  • 주파수 응답 y(t)y(t)
    =α1ep1t+α2ep2t+...+αnepnt+A2j[G(jw)ejw0tG(jw)ejw0t]=\alpha_1e^{-p_1t}+\alpha_2e^{-p_2t}+...+\alpha_ne^{-p_nt}+\frac{A}{2j}[G(jw)e^{jw_0t}-G(-jw)e^{-jw_0t}]
    =α1ep1t+α2ep2t+...+αnepnt+G(jw0)Asin(w0t+ϕ)=\alpha_1e^{-p_1t}+\alpha_2e^{-p_2t}+...+\alpha_ne^{-p_nt}+|G(jw_0)|Asin(w_0t+\phi)
    • ϕ=tan1Im[G(jw0)]Re[G(jw0)]\phi=tan^{-1}\frac{Im[G(jw_0)]}{Re[G(jw_0)]}
    • 안정적인 시스템 응답이 steady state가 되는 경우, pole 항은 모두 소거 :
      y(t)=G(jw0)Asin(w0t+ϕ)=AMsin(w0t+ϕ)y(t)=|G(jw_0)|Asin(w_0t+\phi)=AMsin(w_0t+\phi)
    • 주파수 응답 특성(Frequency Response Characteristics) : 시스템의 sinusoidal 입력에 따른 고유한 Magnitude, Phase의 주파수 응답 특성

  • Bode Plot : 사인파 입력의 주파수가 변화함에 따라 응답의 Magnitude, Phase 변화를 각각 나타내는 그래프

    • x축(주파수) : log scale
    • y축(Magnitude) : log scale
    • y축(phase) : linear scale
    • Compensator 설계에 활용 가능
    • 각 시스템의 bode plot은 더해질 수 있다.
    • log scale이므로 광범위한 응답특성 표현 가능
  • System G(jw)=s1s2s3s4s5G(jw)=\frac{\vec{s_1}\vec{s_2}}{\vec{s_3}\vec{s_4}\vec{s_5}}일 때

    • s=rejθ\vec{s}=re^{j\theta}
    • M=G(jw), ϕ=G(jw)M=|G(jw)|,\ \phi=\angle G(jw)
    • logM=logr,logG(jw)=j(ϕ)logelogM=log\sum r,log\angle G(jw)=j(\sum\phi)loge
    • Gdb=10logP2P1=20logV2V1|G|_{db}=10log\frac{P_2}{P_1}=20log\frac{V_2}{V_1}
  • Bode Form : 시스템 인수의 상수값이 1

    • KG(s)=K(sz1)(sz2)...(sp1)(sp2)..KG(s)=K\frac{(s-z_1)(s-z_2)...}{(s-p_1)(s-p_2)..}
      KG(jw)=Ko(jwτ1+1)(jwτ2)...(jwτa+1)(jwτb+1)...\rarr KG(jw)=K_o\frac{(jw\tau_1+1)(jw\tau-2)...}{(jw\tau_a+1)(jw\tau_b+1)...}

  • 전달함수 형태
    • K0(jw)nK_0(jw)^n
    • (jwτ+1)±1(jw\tau+1)^{\pm1}
    • [(jwwn)2+2ζ(jwwn)+1]±1[(\frac{jw}{w_n})^2+2\zeta(\frac{jw}{w_n})+1]^{\pm1}

  • ex. Class-1 : K0(jw)nK_0(jw)^n

    • (dB) M=20logK0(jw)n=20logK0+20nlogwM=20log|K_0(jw)^n|=20log|K_0|+20nlogw
    • (jw)n=n×90°\angle(jw)^n=n\times90\degree
    • Magnitude : K0=1, n=1K_0=1,\ n=1이라고 하면, 20dB/decade의 기울기를 갖는 직선 그래프 생성
    • Phase : n×90°n\times90\degree의 x축과 평행한 직선 그래프
  • ex. Class-2, 1st-order : jwτ+1jw\tau+1

    • Magnitude
      • wτ<<1logjwτ+10w\tau<<1\rarr log|jw\tau+1|\simeq0
      • wτ+1>>1logjwτ+1logτ+logjww\tau+1>>1\rarr log|jw\tau+1|\simeq log|\tau|+log|jw|
      • wτ=1w\tau=1 : Break Point
        • M=20logj+1=20log23dBM=20log|j+1|=20log\sqrt{2}\simeq3dB
      • ((w=1/τ),0dB)((w=1/\tau),0dB) 좌표를 기준으로 0dB/dec, 20dB/dec 기울기의 점근선 형성
      • (jwτ+1)1(jw\tau+1)^{-1} 의 경우 -3dB 점을 기준으로 -20dB/dec 기울기로 감소하는 그래프 형성
    • Phase
      • wτ<<10°w\tau<<1\rarr 0\degree
      • wτ+1>>190°w\tau+1>>1\rarr 90\degree
      • Break Point : wτ=145°w\tau=1\rarr 45\degree
      • 점근선의 기울기, 90°, 0°90\degree,\ 0\degree의 점근선을 기준으로 하는 곡선 그래프 형성
  • ex. Class-3, 2nd-order term : [(jwwn)2+2ζ(jwwn)+1]±1[(\frac{jw}{w_n})^2+2\zeta(\frac{jw}{w_n})+1]^{\pm1}

    • Magnitude
      • w<<wnlogG(jw)0w<<w_n\rarr log|G(jw)|\simeq0
      • w>>wnG(jw)(jw/wn)±2w>>w_n\rarr G(jw)\simeq(jw/w_n)^{\pm2}
        logG(jw)±2log1/wn±2logjwlog|G(jw)|\simeq\pm2log|1/w_n|\pm2log|jw|
      • w=wnlogG(jw)log((2ζ)±1)w=w_n\rarr log|G(jw)|\simeq log((2\zeta)^{\pm1})
      • breakpoint에서 20log(2ζ)±120log(2\zeta)^{\pm1} 지점을 통과
    • Phase
      • 차단주파수 전후로 0, 180도의 위상, breakpoint에서 G(jw)=j2ζ\angle G(jw)=-\angle j2\zeta
      • zetazeta가 1에 가까울 수록 완만하게, 0에 가까울수록 급격하게 그래프 변화

  • Bandwidth : Closed-Loop Transfer function
    • Amplitude가 1 > 0.707로 감소할 때의 주파수
    • 이 때 Magnitude는 약 -3dB
    • 전력이 50% 이하로 감소

  • Bode Plot 작성
    1. Magnitude : 전달함수를 Bode Form으로 조절 : KG(jw)=Ko(jwτ1+1)(jwτ2)...(jwτa+1)(jwτb+1)...KG(jw)=K_o\frac{(jw\tau_1+1)(jw\tau-2)...}{(jw\tau_a+1)(jw\tau_b+1)...}
    2. 주파수를 0으로 근사시켜 기울기 확인 후, 주파수 w=1일 때 점근선 작성
    3. 각 breakpoint에서의 점근선 작성 : 먼저 작성한 점근선 그래프에 breakpoint 주파수를 대입하여 그 지점을 지나는 점근선으로 작성
    4. 기울기가 감소, 혹은 증가할 때 Bode Plot 곡선은 교차점에서 ±3dB\pm3dB 차이나는 지점을 지나게 된다.
    5. Phase : 주파수를 0으로 근사시켜 출발점 위상 확인
    6. zero를 지나면 +90, pole을 지나면 -90도씩 변화하는 점근선 작성
    7. Phase Bode Plot 작성 : 곡선은 변화하는 점근선의 중간점을 지남

2. Neutral Stability

  • KG(s)KG(s)의 전달함수에서 얻은 Bode Plot으로 Closed-Loop system의 안정도 판별
    • Closed-Loop system의 root locus 작성시
      모든 점에서 1+KG(s)=0KG(s)=11+KG(s)=0\rarr |KG(s)|=1, G(s)=180°\angle G(s)=180\degree
    • 허수축 위를 지날 때 (neutral stability) : KG(jw)=1|KG(jw)|=1, G(jw)=180°\angle G(jw)=180\degree

  • G(s)=1s(s+1)2G(s)=\frac{1}{s(s+1)^2}에서 G(jw)=180°\angle G(jw)=-180\degree일 때,
    • K=2이면 KG(jw)=1|KG(jw)|=1
    • K<2이면 KG(jw)<1|KG(jw)|<1 : Stable
    • K>2이면 KG(jw)>1|KG(jw)|>1 : Unstable
    • G(jw)=180°\angle G(jw)=-180\degree일 때 KG(jw)<1|KG(jw)|<1 이면 Stable
  • 만약 G(s)=s(s+1)2G(s)=s(s+1)^2이면 G(jw)=180°\angle G(jw)=-180\degree일 때 KG(jw)>1|KG(jw)|>1 이면 Stable

  • Bode Plot의 경우 Gain이 1 (위상이 180도)인 지점을 여러번 지날 수 있어 안정도 판별에 어려움 존재
  • Nyquist 안정도 판별법을 대신 사용

3. Nyquist Stability

  • 편각의 원리
    • 전달함수 H(s)에서 s가 임의의 궤적 C1을 따를 때,
    • H(s)의 궤적은 s의 궤적 C1 안에 속하는 Zero - Pole 개수 차이만큼 원점을 포함하여 회전하는 궤적이 된다.
    • zero가 더 많으면 시계방향, pole이 더 많으면 반시계방향
  • C1C_1궤적을 RHP 모두를 포함하는 궤적으로 가정
    • RHP에 zero 존재 : 시계방향 궤적
    • RHP에 pole 존재 : 반시계방향 궤적
  • 전달함수 T(s)=1+KG(s)=1+Kb(s)a(s)=a(s)+Kb(s)a(s)T(s)=1+KG(s)=1+K\frac{b(s)}{a(s)}=\frac{a(s)+Kb(s)}{a(s)}일 때
    • G(s)의 RHP Pole = 1+KG(s)의 RHP pole
    • closed-loop의 RHP Pole = 1+KG(s)의 RHP zero
    • N = Z-P
      • N : 원점을 포함하며 시계방향으로 회전하는 궤적 수
      • Z, P : T(s)의 RHP zero, pole 개수
      • Z = N+P이므로, T(s)의 RHP zero가 없다면 G(s)의 RHP pole이 없으므로 안정된 시스템이다.

  • Nyquist Plot의 작성법
    1. RHP 궤적 C1C_1을 3개 영역에 나누어 KG(s)분석
      • 0j0\rarr j\infty
      • j0-j\infty\rarr0
      • RHP를 따라 이동하는 Big Arc
        • 무한의 반지름을 따라 이동하므로 KG(j)KG(j\infty)계산
        • KG(j)KG(j\infty) 는 pole 차수가 더 클때 0, pole, zero 차수가 동일하면 상수
    2. KG(s)의 Bode Plot 작성
      • breakout point의 좌표 확인
    3. Bode Plot을 기반으로 Nyquist Plot 작성
      • Bode Plot에서 위상 0도일 때의 Gain = + 방향 X축에서의 시작 좌표
      • 위상 변화에 따라 Gain 크기가 궤적의 반지름
    4. 궤적의 Loop 내에 포함되는 원점의 개수 확인

  • ex. G(s)=1s(s+1)2G(s)=\frac{1}{s(s+1)^2}
  • s가 매우 작은 값이 될 때, G(s)1sG(s)\simeq \frac{1}{s}로 근사
    • r이 0으로 근사 시 매우 큰 값이 된다
    • r이 무한으로 증가하면 궤적은 원점 근처를 지난다
    • 위상 ϕ\phi는 -90~ 90도로 이동하는 궤적이므로 G는 반시계방향 (90 ~ -90도)으로 이동하는 궤적이 된다.
    • Bode plot 작성 시 w값이 -90에 가까울 수록 Gain이 커지고, -180도에서 0, 이후로 급격히 작아지므로 3사분면에서 시작하여 w=1 지점을 끼고 원점으로 수렴하는 궤적이 나타난다.
728x90
728x90
Metal-Semiconductor Junctions

Metal-Semiconductor Junctions

Metal-Semiconductor Junction

  • Anderson Model
    • 반도체의 Conduction Band와, 금속의 페르미 준위 EFME_{FM} 사이의 차이는 접합 이후에도 일정하게 유지
    • 금속-반도체 접합 시, 금속의 페르미 준위가 반도체보다 낮으므로 반도체 측 전자는 금속 쪽으로 이동
    • 접합 근처의 Donor가 이온화되면서 Depletion Region 형성
      • 금속 쪽의 Depletion Region은 매우 얇아서 δ(x)\delta(x)함수의 형태로 형성

  • 금속과 반도체의 Work function ΨM, ΨS\Psi_M,\ \Psi_S의 차이가 접합 이후의 Band Diagram 결정
    • ΨM=ΨS\Psi_M=\Psi_S : Step 형태로 Band 형성
    • ΨM>ΨS\Psi_M>\Psi_S : 반도체 측 전자 이동으로 인해 반도체 Conduction Bands가 감소하는 형태로 Band Bending
      • 금속 측에 +, 반도체 측에 -를 걸어주면 potential barrier가 낮아지면서 전류가 잘 통하는 상태가 되어, Rectifier Junction 상태가 됨
    • ΨM>ΨS\Psi_M>\Psi_S : 금속의 전자가 반도체 측으로 이동하면서 Conduction Band가 증가하는 형태로 Band Bending
      • Band Bending에 의해 전자가 이동하기 쉬운 형태가 되었으므로, 이 상태를 Ohmic Contact라고 함

  • Work Function qΨq\Psi = 진공 준위 - 금속(반도체)의 페르미 준위
  • Electron Affinity qχq\chi = 진공 준위 - 반도체 전도대 준위
  • Anderson Model (electron affinity model) : 전자 친화도 차이 - qΨMqχq\Psi_M-q\chi는 일정
  • 전자는 페르미 준위가 높은 쪽 > 낮은 쪽으로 이동
    • 금속 측의 페르미 준위가 낮은 경우 : Schottky Contact - 정방향 전압일 때만 전류가 흐름
    • 반도체 측의 페르미 준위가 낮은 경우 : Ohmic Contact - 전류가 전압 방향과 무관하게 흐름
  • p-type 반도체에서는 반대로 형성
    • ΨM>ΨS\Psi_M>\Psi_S일 때 가전대 Hole이 이동하여 Rectifier Junction 형성
    • ΨM<ΨS\Psi_M<\Psi_S일 때 금속 hole이 가전대로 이동하여 Ohmic Contact 형성

  • Interface Charge model
    • 실제로 Anderson Model에 기반하여 접합 설계 시 오차 존재
    • 반도체-금속 접점에서 델타함수 형태로 전하량의 차이가 존재한다고 가정 : Interface Dipole Charge
    • n-type 기준 금속 측에 +, 반도체 측에 - charge 존재
    • dipole charge - impulse field - step potential
    • 물질마다 오차가 각각 달라 실제 설계 적용에 문제 존재

  • Silicide
    • 실리콘에 몰리브덴을 열처리하여 생성한 물질
    • 물리/화학적 특성은 실리콘, 전기적 특성은 몰리브덴과 유사하게 반응
    • Anderson Model의 문제점인 표면에서의 오차 문제를 어느 정도 완화되었으나, 오차는 여전히 존재

  • Schottky Contact의 Barrier 높이 측정
    • C-V Measure Technique 사용
    • Wdep=2ϵ(ϕBIVA)qNDW_{dep}=\sqrt{\frac{2\epsilon(\phi_{BI}-V_A)}{qN_D}}
    • Cdep=ϵAWdepC_{dep}=\frac{\epsilon A}{W_{dep}}이므로
      [ACdep]2=2ϵqND(ϕBIVA)[\frac{A}{C_{dep}}]^2=\frac{2}{\epsilon qN_D}(\phi_{BI}-V_A)
    • ϕbn=ϕbiECEFq=ϕbi+VTln(NCND)\phi_{bn}=\phi_{bi}-\frac{E_C-E_F}{q}=\phi_{bi}+V_Tln(\frac{N_C}{N_D})

  • Anderson Model의 문제 해결을 위한 최근 근황

    • Band 차이에 접합하는 두 물질 간의 평균 Potential 차이 역시 반영

Schottky Diode I-V Characteristics

  • Schottky Contact에서 캐리어가 이동하는 방식

    • Field Emission : 터널링 효과에 의한 이동
    • Thermonic Field Emission : 열에너지로 인해 Potential 상승 후 터널링
    • Thermonic Emission : Potential Barrier 이상의 열에너지를 받아 이동
    • Diffusion-Drift
      • Majority Carrier : Potential Barrier를 넘어간 캐리어의 전류 형성
      • Minority Carrier : injection에 의한 전류 형성
  • Majority Carrier Movement

    • Zero Bias
      • Metal과 Semiconductor 사이를 흐르는 전류가 동일
    • Reverse Bias
      • qVAqV_A만큼의 Potential Barrier 형성
      • Semiconductor > Metal로 흐르는 전류가 감소, 제한된 작은 전류만 흐름
    • Forward Bias : Potential Barrier가 낮아져 Semiconductor > Metal 방향으로 전류가 크게 흐름
  • Minority Carrier Movement

    • Reverse Bias : Semiconductor > Metal 방향으로의 Diffusion-Drift 증가
    • Forward Bias : Metal > Semiconductor 방향으로 캐리어 이동이 증가하나, 전류 영향은 거의 없음

Ohmic Contact

  • Ideal Ohmic Contact I-V : RC=dV/dI(Ωcm2)R_C=dV/dI(\Omega\cdot cm^2)
  • 실제 Ohmic Contact : 전류가 많이 흐르면 저항값이 감소, 적게 흐를수록 증가
  • Ohmic Contact의 형성
    • Tunneling Ohmic Contact : Metal 준위를 높게 설정, Rectifying Contact에서 도핑 농도를 증가시켜 터널링 유도
    • Ohmic Contact : Metal보다 Semiconductor 준위를 낮게 설정

  • Tunneling Ohmic Contact
    • RC[dJdV]1=kCqATexp[qϕbE0]R_C\equiv[\frac{dJ}{dV}]^{-1}=\frac{kC}{qAT}exp[\frac{q\phi_b}{E_0}]
    • E0N, 1mt, RCqϕbE_0\propto\sqrt{N},\ \frac{1}{\sqrt{m_t^*}},\ R_C\propto q\phi_b : Barrier, 도핑 농도, 유효질량에 의해 저항 결정
728x90
728x90
Switching of pn Diodes

Switching of pn Diodes

  • Swiching : 다이오드에 인가되는 전압이 정/역방향으로 바뀔 때 전류가 통하거나, 그렇지 않은 상태가 되어 스위치처럼 동작
    • Depletion width, minority carrier 농도 변화
    • turn-off transient
      • forward > reverse 상태로 변화하는 과정
      • switching speed의 결정 요인
    • turn-on transient
      • zero(reverse) > forward 상태로 변화하는 과정
      • turn-off transient보다 빠르게 동작

Turn-off Transient

  • turn on : Forward Voltage 인가, I=IF=VFVD,onRI=I_F=\frac{V_F-V_{D, on}}{R}
  • turn off
    • Reverse Voltage 인가 : IF=IR=VD,onVRR (0<t<ts)I_F=-I_R=\frac{V_{D, on}-V_R}{R}\ (0<t<t_s)
      • Storage Delay time tst_s : 다이오드에 인가되었던 VD,onV_{D, on}전압이 감소하여 ( - )가 될때까지의 시간, 역방향 전류가 일정한 값을 유지하는 시간
    • turn off transient : 역방향 전류 크기가 감소
      • Reverse Recovery Time trrt_{rr} : 역방향 전류 IR-I_R의 10%까지 감소하는데 걸리는 시간
      • Recovery time tr=trrtst_r=t_{rr}-t_s

  • switching delay의 원인 : minority carrier 농도가 turn on 상태에서 turn off상태로 변화하기까지의 시간 지연
  • Storage Delay time : turn-off 상태로 변화하면, minority carrier인 p-type 내 전자, n-type 내 정공이 빠져나가는 데 걸리는 시간
  • minority carrier의 감소 원리 : reverse, recombination
    • reverse current : 매우 빠르게 동작하지만, VR/RRV_R/R_R로 전류가 제한
    • recombination current : 완료되는데 lifetime τ\tau만큼의 시간 소모

  • x=0x=0부터 변곡점까지의 기울기 = IR-I_R
    • Storage Delay time 동안에는 Forward Bias와 같이 일정한 전류를 유지하면서 동작
    • minority carrier 농도는 계속해서 감소
  • Storage Delay time은 Forward Bias, Reverse Bias 전류의 크기가 클수록 짧아지며, carrier lifetime이 짧을수록 짧아진다.

  • Storage Delay Time tst_s
    • dQpdt=iQpτp\frac{dQ_p}{dt}=i-\frac{Q_p}{\tau_p}
    • Storage Delay Time 동안, dQpdt=IRQpτp\frac{dQ_p}{dt}=-I_R-\frac{Q_p}{\tau_p}
      dQpIRτp+Qp=dtτp\rarr\frac{dQ_p}{I_R\tau_p+Q_p}=-\frac{dt}{\tau_p}
    • (양변 적분) ln[Qp+IRτp]0ts=tsτpln[Q_p+I_R\tau_p]|^{t_s}_{0}=-\frac{t_s}{\tau_p}
      ts=τpln[QP(0)+IRτpQp(ts)+IRτp]\rarr t_s=\tau_p ln[\frac{Q_P(0)+I_R\tau_p}{Q_p(t_s)+I_R\tau_p}]
    • Qp(0)=IFτQ_p(0)=I_F\tau
    • Qp(ts)=0Q_p(t_s)=0으로 가정 시, ts=τpln[1+IFIR]t_s=\tau_p ln[1+\frac{I_F}{I_R}]
      • tsτp, IF, 1ISt_s\propto \tau_p,\ I_F,\ \frac{1}{I_S}
      • exact equation : ts=τp[erf1[11+IF/IR]2]t_s=\tau_p [erf^{-1}[\frac{1}{1+I_F/I_R}]^2]

  • 이상적인 다이오드 : Reverse Bias 즉시 전류 차단
  • 우수한 다이오드 : step recovery (tst_s 이후 즉시 차단)
  • Fast Recovery Diode
    • Au 도핑 : 에너지 밴드에 Trap 준위 추가 - 캐리어 recombination 증가, lifetime 감소
      • 단점 : reverse current 감소
    • short-base diode : Base가 짧아 p-n간 캐리어 이동이 매우 빠름
    • schottky diode : minority carrier effect가 없음 (tst_s가 거의 없음)

Turn-on Transient

  • reverse > forward bias
  • 다이오드 양단 전압 : Voff0VonV_{off}\rarr0\rarr V_{on}
    • off에서 0으로는 거의 즉시 상승
    • on으로 상승하는데 지연 존재
  • Qp(t=0)=0Q_p(t=0)=0, Va(t=0)=0V_a(t=0)=0
    • dQpdt=IFQpτp\frac{dQ_p}{dt}=I_F-\frac{Q_p}{\tau_p}
      dQpIFτpQp=dtτp\rarr\frac{dQ_p}{I_F\tau_p-Q_p}=\frac{dt}{\tau_p}
    • (양변 적분) ln[IFτpQp]0t=tτp-ln[I_F\tau_p-Q_p]|^{t}_{0}=\frac{t}{\tau_p}
      Qp(t)=IFτp[1et/τp]\therefore Q_p(t)=I_F\tau_p[1-e^{-t/\tau_p}]
  • Qp(t)=I0τp[eVa(t)/VT1]Q_p(t)=I_0\tau_p[e^{V_a(t)/V_T}-1]에서
    • Va(t)=VTln[1+Qp(t)I0τp]=VTln[1+IF(1et/τp)I0]V_a(t)=V_Tln[1+\frac{Q_p(t)}{I_0\tau_p}]=V_Tln[1+\frac{I_F(1-e^{-t/\tau_p})}{I_0}]
    • I0I_0 : 다이오드 reverse saturation current

  • IF, τpI_F,\ \tau_p가 증가하면 transient 시간 증가
  • 초반에 전압 대부분이 증가하고, 나머지 시간동안 전압이 느리게 증가
728x90
728x90
2. pn Admittance - Forward Bias

2. pn Admittance - Forward Bias

1. Forward-Bias Admittance

  • C=CJ+CDC=C_J+C_D : Depletion Capacitance + Diffusion Capacitance
    • CJC_J : Depletion Width가 감소하면 CJC_J는 증가

  • Forward Bias
    • Forward Bias가 인가되면 Minority Carrier 증가 : Minority Carrier의 응답은 Majority만큼 빠르지 않기 때문에, 전압 인가에 따른 위상차 존재
    • Forward Bias 인가 시 Minority Carrier에 의한 커패시턴스 성분 생성 (Diffusion Capacitance)
    • 위상차 성분 일부는 Conductance에 영향
    • i(t)=(G+wCout)v0coswtwCinv0sinwti(t)=(G+wC^{out})v_0coswt-wC^{in}v_0sinwt

  • p+np^+n (p농도 > n농도) 접합의 경우
    • 고주파 Bias 인가 시 도핑 농도가 Bias를 중심으로 진동하는(위상차가 나타나는) 형태로 나타나게 됨

2. Admittance Relationships

  • small signal에 의한 Diffusion Equation
    • Δpn(x,t)t=DP2Δpn(x,t)x2Δpn(x,t)τp\frac{\partial\Delta p_n(x,t)}{\partial t}=D_P\frac{\partial^2\Delta p_n(x,t)}{\partial x^2}-\frac{\Delta p_n(x,t)}{\tau_p}
  • Δpn(x,t)=Δpn(x)+pn~(x,w)ejwt\Delta p_n(x,t)=\overline{\Delta p_n(x)}+\tilde{p_n}(x,w)e^{jwt} 가정
    • Δpn(x)\overline{\Delta p_n(x)} : 도핑 농도 Bias
    • pn~(x,w)ejwt\tilde{p_n}(x,w)e^{jwt} : AC 전압에 의한 진폭

  • 가정한 해를 대입
    • Δpn(x,t)t=jwpn~(x,w)ejwt\frac{\partial\Delta p_n(x,t)}{\partial t}=jw\tilde{p_n}(x,w)e^{jwt}
      =DPd2Δpn(x)dx2+DPd2pn~(x,w)ejwtdx2Δpn(x)τppn~(x,w)ejwtτp=D_P\frac{d^2\overline{\Delta p_n(x)}}{d x^2}+D_P\frac{d^2 \tilde{p_n}(x,w)e^{jwt}}{d x^2}-\frac{\overline{\Delta p_n(x)}}{\tau_p}-\frac{\tilde{p_n}(x,w)e^{jwt}}{\tau_p}

    • DC : DPd2Δpn(x)dx2Δpn(x)τp=0D_P\frac{d^2\overline{\Delta p_n(x)}}{d x^2}-\frac{\overline{\Delta p_n(x)}}{\tau_p}=0

    • AC : jwpn~(x,w)=DPd2pn~(x,w)dx2pn~(x,w)τpjw\tilde{p_n}(x,w) = D_P\frac{d^2 \tilde{p_n}(x,w)}{d x^2}-\frac{\tilde{p_n}(x,w)}{\tau_p}
      DPd2pn~(x,w)dx2(jw+1τp)pn~(x,w)=0\rarr D_P\frac{d^2 \tilde{p_n}(x,w)}{d x^2}-(jw+\frac{1}{\tau_p})\tilde{p_n}(x,w)=0

      • DPd2pn~(x,w)dx2pn~(x,w)τp/(1+jwτp)D_P\frac{d^2 \tilde{p_n}(x,w)}{d x^2}-\frac{\tilde{p_n}(x,w)}{\tau_p/(1+jw\tau_p)}

  • Boundary Condition
    • Δpn(x=)=0\Delta p_n(x=\infty)=0
    • Δpn(x=xn)\Delta p_n(x=x_n) : Depletion Edge
      =pn0[e(VA+va)/VT1]pn0[eVA/VT(1+vaVT)1]=p_{n0}[e^{(V_A+v_a)/V_T}-1]\simeq p_{n0}[e^{V_A/V_T}(1+\frac{v_a}{V_T})-1]
      =Δpn(x=xn)+pn~(x=xn,w)=\overline{\Delta p_n}(x=x_n)+\tilde{p_n}(x=x_n,w)
    • Δpn(x=xn)=pn0[eVA/VT1]ni2ND[eVA/VT1]\overline{\Delta p_n}(x=x_n)=p_{n0}[e^{V_A/V_T}-1]\simeq\frac{n_i^2}{N_D}[e^{V_A/V_T}-1]
    • pn~(x=xn,w)ni2NDeVA/VTva(w)VT\tilde{p_n}(x=x_n,w)\simeq\frac{n_i^2}{N_D}e^{V_A/V_T}\frac{v_a(w)}{V_T}

  • Solution : Diffusion Current
    • DC : Δpn(x)=pn0[eVA/VT1]ex/(DPτP)\overline{\Delta p_n}(x)=p_{n0}[e^{V_A/V_T}-1]e^{-x/\sqrt{(D_P\tau_P)}}
      • Idiff=qADPLPpn0[eVA/VT1]I_{diff}=\frac{qAD_P}{L_P}p_{n0}[e^{V_A/V_T}-1]
        =qADPτPpn0[eVA/VT1]=I0[eVA/VT1]=qA\sqrt{\frac{D_P}{\tau_P}}p_{n0}[e^{V_A/V_T}-1]=I_0[e^{V_A/V_T}-1]
    • AC : pn~(x=xn,w)=pn0eVA/VTva(w)VTex/DPτP/(1+jwτp)\tilde{p_n}(x=x_n,w)=p_{n0}e^{V_A/V_T}\frac{v_a(w)}{V_T}e^{-x/\sqrt{D_P\tau_P/(1+jw\tau_p)}}
      • Idiff(w)=qADP(1+jwτP)τPpn0eVA/VT[Va(w)/VT]I_{diff}(w)=qA\sqrt{\frac{D_P(1+jw\tau_P)}{\tau_P}}p_{n0}e^{V_A/V_T}[V_a(w)/V_T]
        =I01+jwτpeVA/VTVA(w)VT=I_0\sqrt{1+jw\tau_p}e^{V_A/V_T}\frac{V_A(w)}{V_T}
        =G01+jwτpVA(w)=G_0\sqrt{1+jw\tau_p}V_A(w)
      • G0=I0VTeVA/VTG_0=\frac{I_0}{V_T}e^{V_A/V_T}

3. Forward-Bias Diffusion Admittance

  • Small-signal Conducance : YD=G01+jwτpY_D=G_0\sqrt{1+jw\tau_p}
    • 1+jwτp=x+jy\sqrt{1+jw\tau_p}=x+jy일 때,
      x2y2=1, 2xy=wτpx^2-y^2=1,\ 2xy=w\tau_p
    • x=[1+1+w2τp22]1/2, y=[1+w2τp212]1/2x=[\frac{1+\sqrt{1+w^2\tau_p^2}}{2}]^{1/2},\ y=[\frac{\sqrt{1+w^2\tau_p^2}-1}{2}]^{1/2}
  • Diffusion Admittance : YD=GD+jwCDY_D=G_D+jwC_D
    • GD=G0[1+1+w2τp22]1/2=G02[1+1+w2τp2]1/2G_D=G_0[\frac{1+\sqrt{1+w^2\tau_p^2}}{2}]^{1/2}=\frac{G_0}{\sqrt{2}}[1+\sqrt{1+w^2\tau_p^2}]^{1/2}
    • CD=C0w[w2τp212]1/2=G02w[1+w2τp21]1/2C_D=\frac{C_0}{w}[\frac{\sqrt{w^2\tau_p^2-1}}{2}]^{1/2}=\frac{G_0}{\sqrt{2}w}[\sqrt{1+w^2\tau_p^2}-1]^{1/2}

  • 주파수가 일정 이하 (wτp<1w\tau_p<1)일 때는 G, C가 일정하지만, 증가함에 따라 Diffusion에 의한 G는 증가, C는 감소
728x90
728x90
1. pn Admittance - Reverse Bias

1. pn Admittance - Reverse Bias

1. Small-Signal

  • p-n I-V 특성 : small-signal 분석 시 곡선 형태의 I-V특성은 거의 선형으로(= 저항처럼) 해석 가능
  • 컨덕턴스 g=id/vdg=i_d/v_d

  • p-n 다이오드의 내부 어드미턴스 : Y=G+jwCY=G+jwC, C=CD+CJC=C_D+C_J
  • 컨덕턴스 G=dI/dV=I0exp[V/nVT]/nVTG=dI/dV=I_0exp[V/nV_T]/nV_T
    • 역전압 인가 시 G는 0에 가깝게 감소
  • 커패시턴스 C=dQ/dV=CJ+CDC=dQ/dV=C_J+C_D
    • CDC_D : Diffusion Capacitance
    • CJC_J : Depletion Capacitance
  • small signal va(t)=v0coswtv_a(t)=v_0coswt에 의한 다이오드 전류
    • i(t)=Re[(G+jwC)v0ejwt]i(t)=Re[(G+jwC)v_0e^{jwt}]
      =Gv0coswtwCv0sinwt=Gv_0coswt-wCv_0sinwt

2. Reverse-Bias Junction Capacitance

  • Reverse Bias : Depletion Layer의 폭이 증가
    • 전압에 따라 변화하므로 dQ/dVdQ/dV 변화 : 커패시턴스 형성
    • Quasi-Static approximation : 고주파 신호 인가 시 DC 신호를 가했을 때와 거의 유사한 Depletion Layer 형성
  • Depletion-layer capacitance
    • Depletion Layer의 폭 변화를 전하량 변화로 고려
    • CJ=dQ/dV=ϵ0ϵrAWC_J=dQ/dV=\frac{\epsilon_0\epsilon_rA}{W}

3. C−V Relationships

  • one-sided junction : p-n 비대칭 접합의 경우
    • 농도가 낮은 쪽 도핑은 NB=axmN_B=ax^m 그래프로 표현
    • 비대칭 step junction(m=0) : W=[2ϵqNB(VBIVA)]1/2W=[\frac{2\epsilon}{qN_B}(V_{BI}-V_A)]^{1/2}
    • Linearly Graded junction(m=1) : W=[12ϵqa(VBIVA)]1/3W=[\frac{12\epsilon}{qa}(V_{BI}-V_A)]^{1/3}
    • NB=axm(m>2)N_B=ax^m(m>-2) : W=[(m+2))ϵqa(VBIVA)]1/(m+2)W=[\frac{(m+2))\epsilon}{qa}(V_{BI}-V_A)]^{1/(m+2)}
  • Depletion Capacitance : CJ=ϵAW=ϵA[(m+2))ϵqa(VBIVA)]1/(m+2)C_J=\frac{\epsilon A}{W}=\frac{\epsilon A}{[\frac{(m+2))\epsilon}{qa}(V_{BI}-V_A)]^{1/(m+2)}}
    • CJ=CJ0[1VA/VBI]1/(m+2)C_J=\frac{C_{J0}}{[1-V_A/V_{BI}]^{1/(m+2)}}
    • CJ0C_{J0} : Bias (VAV_A)가 없을 때의 Depletion Capacitance
  • Hyper abrupt junction (m<0m<0)을 생성하는 이유
    • 커패시턴스 형성을 위해서는 Depletion Width 변화가 전압에 민감하게 변화해야 함
    • 도핑이 낮을수록 Depletion이 더 잘 형성
    • 접합에서 멀어질 수록 Depletion이 형성되기 어려움
    • 접합 근처에서는 도핑 농도가 높고, 멀어질수록 낮은 도핑 농도를 형성하기 위해 Hyper abrupt junction 형성, 더 정밀한 Capacitance 조절 가능

  • Varator : 변화 가능한 리액터 혹은 커패시터
  • CJ=CJ0[1VA/VBI]1/(m+2)C_J=\frac{C_{J0}}{[1-V_A/V_{BI}]^{1/(m+2)}}
  • Tuning Range : 가해주는 전압에 따른 커패시터의 변화율
    • VA1VA2V_{A1}\sim V_{A2} 범위로 변화 가능할 때
    • TR=CJVA1CJVA2=[VA1VA2]1/(m+2)TR=\frac{C_JV_{A1}}{C_JV_{A2}}=[\frac{V_{A1}}{V_{A2}}]^{1/(m+2)}
    • TR값을 키우려면 m값이 감소하여야 함

4. C−V Characterization

  • Doping Profile, Built-in Potential 측정
    • CJ=A[2qϵNB(VBIVA)]1/2C_J=\frac{A}{[\frac{2}{q\epsilon N_B}(V_{BI}-V_A)]^{1/2}}에서
    • 1CJ2=2qA2ϵNB(VBIVA)\frac{1}{C_J^2}=\frac{2}{qA^2\epsilon N_B}(V_{BI}-V_A)
    • C-V 기울기 : 도핑 농도 NBN_B, V축 교차점 : Built-in Potential
  • 실제 다이오드에서 C=CJ+CPC=C_J+C_P이므로, (CCP)2VA(C-C_P)^{-2}-V_A그래프를 작성
    • 그래프가 선형으로 나타나는 CPC_P값을 찾아내어 그래프 작성
  • Doping Profile : NB(x)=2qϵA2[ddVA1CJ2]1N_B(x)=\frac{2}{q\epsilon A^2}[\frac{d}{dV_A}\frac{1}{C_J^2}]^{-1}
    • Depletion Region의 형성이 제한되므로, 실제 C-V 측정 시에는 도핑된 소자를 etching하면서 C-V특성 측정
    • 농도가 급격하게 변화하는 경우 측정이 부정확할 수 있음
    • 미분연산으로 도핑을 계산하므로 노이즈에 민감

5. Reverse-Bias Conductance

  • 이상적인 다이오드의 경우 (diffusion)
    • G0=dIdVA=ddVA[I0(eVA/VT1)]=1VTI0eVA/VTG_0 = \frac{dI}{dV_A}=\frac{d}{dV_A}[I_0(e^{V_A/V_T}-1)]=\frac{1}{V_T}I_0e^{V_A/V_T}
    • VAV_A가 Reverse Bias인 경우 exponential항에 의해 G는 0으로 수렴
  • 실제 다이오드의 경우 (generation current)
    • G0=ddVA[qAni2τ0W]=qAni/2τ0(m+2)(VBIVA)G_0 = \frac{d}{dV_A}[-\frac{qAn_i}{2\tau_0}W]=\frac{qAn_i/2\tau_0}{(m+2)(V_{BI}-V_A)}
  • Reverse-Bias Admittance
    • Y=G0+jwCJY=G_0+jwC_J
      =G0(diff)+G0(generation)+jwCJ=G_0(diff)+G_0(generation)+jwC_J
      jwCJ\simeq jwC_J
    • conductance보다 capacitance 영향이 주도적
  • Forward Bias가 가해지면 Depletion capacitance 대비 Diffusion Capacitance 영향이 커지면서 계산값과 오차 발생
728x90
728x90
  • 한빛미디어의 나는 리뷰어다 2020에 선정되어 도서를 지원받아 작성한 글입니다.

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=238212504

 

BPF로 리눅스 관측 가능성 향상하기

시스템 엔지니어를 위한 리눅스 커널의 BPF VM에 관한 전문 지식을 제공하는 책이다. BPF 프로그램의 수명 주기를 자세히 설명할 뿐만 아니라, 커널에서 벌어지는 사건들을 감시, 추적, 관찰하는 ��

www.aladin.co.kr

  • 프로그램 개발에서 가장 중요한 요인은 프로그램의 성능 그 자체일 것이다. 대개는 로그 기능을 이용하여 프로그램의 정상 동작 여부 및 성능을 평가하는 방식을 사용한다. 이 방식 대비 상대적으로 최근 관측 가능성이라는 개념이 제시되었는데, 이는 응용 프로그램을 실행시켜 임의의 입력을 제시할 때의 응답 특성을 확인한다.

  • 단순한 시스템이라면 이러한 방식이 유용하게 쓰일 수 있지만, 최근의 리눅스 시스템은 도커 등 컨테이너 기능을 활발하게 쓰면서 기존보다 훨씬 복잡한 구조를 갖게 되었고, 이로 인해 관측 가능성 방식에는 한계가 존재하게 된다. 이러한 문제를 해결하기 위해 BPF라는 도구가 제시된다. 이는 커널의 subsystem의 일종이며, 시스템의 오작동을 방지하여 안전하게 성능 측정을 가능하게 한다. 커널부에 문제가 일어날 소지가 없는 코드를 커널에 로드 후, 프로그램의 시작 지점을 기준으로 응답 특성을 제시한다.

  • 리눅스 컴파일러단에서 지원하는 Virtual Machine 기능이므로, BPF는 C언어를 통해 작성하게 된다( <#include linux/bpf.h> 헤더를 사용한다고 한다 ). 작성한 코드에 bpf 헤더에 존재하는 명령어를 이용하여 시스템 동작 특성을 추적하거나, 네트워크 트래픽을 조사하는 등의 검사를 진행할 수 있다.

  • BPF 라이브러리의 최대 강점은 네트워크, 추적 면에서 매우 다양한 기능을 제공한다는 점이다. 현재 한국어로 번역된 BPF 관련 도서는 해당 도서가 유일한데, 읽어 본 결과 다양한 예제 코드를 기반으로 한 BPF 라이브러리 사용 가이드의 기능을 다소 충실히 구현하고 있었다.

728x90
728x90
Computer Architecture

Computer Architecture

  • CPU : 중앙 연산 장치, 마이크로프로세서의 일종
    • 마이크로프로세서 : 메모리에서 데이터를 읽어들여 명령어를 처리하는 IC
    • 명령어 자체는 외부(메모리)에 저장
  • 메모리 : 명령어, 데이터가 저장됨
    • CPU와 메모리는 address, data, control의 3가지 bus로 통신한다.
    • address : 데이터가 저장된 주소
    • data : 해당 주소에 저장된 데이터
    • control : read / write 지정
    • 메모리의 크기는 address와 data의 곱
    • 한 주소에 접근하게 되면, 그 주소의 모든 데이터를 동시에 읽거나, 써야 한다.
  • 이때 버스와 소자는 Tri-state buffer로 연결한다.
    • CPU-메모리 소자는 1:n으로 연결되는데, 만약 Tri-state가 아닌 경우 통신하는 임의 메모리가 아닌 다른 소자는 Ground되어, 통신 신호가 그쪽으로 빠져나갈 수 있다.
    • Tri-state off의 경우 Hi-Z상태로 되어 회로가 마치 분리된 듯한 상태가 되어, 통신하는 신호가 온전히 CPU로 전달될 수 있다.

  • ROM
    • Read-Only Memory
    • CPU와의 연결 시 address bus, 단방향 data bus(ROM > CPU), read signal만 전송 가능한 control bus로 연결
    • ROM 제조시에 정보가 미리 저장됨
    • 비휘발성 : 전원을 꺼도 데이터가 보존됨
    • 2n×b2^n\times b ROM의 경우 n개의 address bus 입력을 받으면, b개의 data가 출력
    • ROM 내에는 디코더가 존재
      • n-bit address 신호를 받았을 때, ROM 내 주소에 저장되어있는 b개의 데이터 중 하나를 선택하여 bus로 출력
      • Combinational logic으로도 구현 가능하지만, 데이터가 많으면 과하게 회로가 복잡해지고, 사용해야 하는 트랜지스터 수도 비정상적으로 많아져 잘 쓰이지 않는다.
      • 실제로는 1bit당 트랜지스터 하나에 0/1을 인가하여 데이터 저장
      • 만약 위 8×4 ROM의 경우, 만약 000 주소신호를 주면 Y0 : 0100의 신호를 D3-D0 버스로 출력하게 된다.

ROM Application

  • Multiplier
    • 주소 Bus의 입력은 a개의 multiplicand와 b개의 multiplier로 구성
    • ROM 내부에 (a+b) bit의 곱셈 테이블이 2a+b2^{a+b} 크기만큼 저장
    • 테이블에는 a x b의 값이 각 주소에 맞게 저장
    • 만약 multiplicand에 1, multiplier에 2를 입력한다면, 테이블에서 출력되는 값은 2가 된다
    • 실제 회로에서, 곱셈기는 CPU와 연결된 다수 소자 중 하나일 것
      • address bus를 통해 지정된 주소값이 전달되면 곱셈기가 on이 된다.
      • data bus를 통해 곱셈기 입력을 넣어준다
      • 출력되는 곱셈값은 다시 data bus를 통해 CPU로 입력된다.
  • Adder
    • multiplier와 같은 원리로 구성
    • ROM 내부에는 2개 addend의 합으로 구성되는 테이블이 존재

  • 내부 ROM 구조
    • ROM의 구현 방식은 매우 다양하게 존재
    • 예시 : 다이오드를 이용한 ROM 회로
      • 디코더 출력이 Low로 나타나므로, 다이오드가 연결된 회선은 Low가 될 때 +5V 신호가 디코더쪽으로 빠져나간다.
      • 그 외에는 모두 High가 출력
      • 출력단 D쪽에 인버터가 연결되어 있으므로, 디코더가 low가 되는 Y5라인은 원래는 1101에서 0100으로 신호가 반전 출력된다.
      • 예시 : Transistor ROM 회로
        • 디코더에 high출력이 될 경우 트랜지스터가 on 상태로 변한다.
        • MOS에 의해 VDD신호는 그라운드로 들어가게 된다.
        • 즉 맨 윗줄의 경우 왼쪽부터 0010 신호가 된다.

  • 2-Dimensional Decoder
    • ROM 내부의 디코더를 설계 시, 입력 크기가 커지면 그에 따라 디코더 출력이 지수적으로 증가
    • 만약 입력이 32개만 돼도, 출력은 약 4억개, 사실상 설계가 불가능한 회로이다.
    • 복잡한 디코더 설계를 위해, Address bus를 나누도록 설계
    • A0 ~ A6의 신호를 각 3, 4bit로 나누어 디코더와 MUX로 연결
    • A가 0010111이면, A6, 5, 4는 001신호가 연결, 디코더 1번출력만 유효
    • MUX로 1111 1110 1110 1000 신호 인가, inverting input이므로 0000 0001 0001 0111 이 들어옴
    • MUX에는 0111 신호가 입력되었으므로 7번째 입력이 출력
    • 그러므로 해당 2D decoder는 1을 출력한다.

  • 상업용 롬 종류
    • Mask ROM
      • 반도체 설계 과정에서 NMOS/CMOS (or BJT) 설계 시 마스크를 이용하여 데이터 기록
      • 재기록 불가
      • 데이터 기록 시간 ( = 마스크 공정 시간 )이 오래 걸림
      • BJT ROM은 MOS 대비 밀도가 낮음
    • PROM (Programmable ROM)
      • BJT소자로 제작
      • 쓰는데 약 10~50us : 공정 생산 후 writer를 통해 강한 전류를 가해 데이터 저장
      • 재기록 불가
    • EPROM (Erasable PROM)
      • NMOS, CMOS로 제작
      • 자외선에 노출하여 정보를 지운 후 재기록 가능
    • EEPROM (Electrical EPROM)
      • NMOS로 제작
      • 역방향 전압을 가해 데이터 소거
      • 10,000 ~ 100,000회 재기록 가능
      • EPROM 대비 읽는 시간이 조금 더 김
      • 기록 : WE on, OE off + A(주소)
      • 출력 : WE off, OE on
    • Flash EPROM(플래시메모리)
      • EEPROM, 데이터를 특정 구획(블록) 단위로 소거

  • ROM 내부 구조
    • ROW decoder / Colmun decoder : array에 저장된 주소 선택
    • CS : 칩 선택, 동작할 필요가 없을 때 off시켜 전력소모 경감 (Active 대비 1/10)
    • OE : 출력 enable

Static RAM (SRAM)

  • RAM(Random Access Memory)
    • 읽기/쓰기 가능
    • 위치에 무관하게 읽고 쓰는 시간이 동일
    • ROM 역시 RAM의 일종이지만, 주 기능이 읽기이므로 RAM과는 구분
  • SRAM(Static RAM)
    • 전력이 공급되는 동안만 정보가 저장
    • 1개 cell은 AND(컨트롤 신호에 따라 동작), D-Latch(정보 저장), 3-state buffet(컨트롤 신호에 따라 동작)으로 구성
  • DRAM(Dynamic RAM)
    • 트랜지스터 + 커패시터 1개씩으로 구성되어 SRAM 대비 크기가 작음
    • word line : 주소 지정
    • bit line : 정보 지정
    • precharge : 0 상태에서 1 상태로 충전하기까지 걸리는 시간이 있으므로, 빠른 동작을 위해 중간 전압으로 bit line을 설정한다. 증폭기를 이용하여 전압이 약간만 상승해도 1 상태가 된 것으로 인식하여 빠르게 신호를 전환한다.
    • 커패시터 소자 주변에는 기생 저항/커패시터가 존재하기 때문에 동작에 따라 저장시켜둔 신호값이 휘발 > 주기적으로 refresh해주어야 함

SDRAM(Synchronous DRAM)

  • decoder and latch : latch는 주소를 저장하여 처음 12bit를 저장 후, 나머지 10bit를 받아들여 12bit 주소 bus(A[11:0])을 통해서 총 22bit(4096 array) 주소에 접근 가능하도록 한다.
  • mux and demux : 데이터를 출력할 때는 mux, 입력할때는 demux를 이용하여 데이터 column을 선택한다.
  • 입력, 출력 refresh 등의 명령은 CMD 버스를 통해 명령어를 전달하여 동작을 지시하며, 같은 address를 row/column으로 나누어 지정 가능하기 때문에 일반 ROM/RAM 대비 같은 address line으로 더 큰 데이터 접근 가능
  • 장점 : 주소 pin의 개수 감소, 클락에 맞추어 메모리에 2-step으로 간단히 접근(주소 입력 - 데이터 접근)

  • Read Cycle
    • PRE : bit line을 precharge
    • ACTV : address bus의 row address 신호를 latch에 저장
      • PRE-to-ACTV delay : precharge가 완료되기까지 걸리는 시간
    • READ : coloumn address 신호를 이용하여 지정한 주소의 신호를 출력
      • RAS(Row Address Stroke)-to-CAS(Column Address Stroke) delay : 읽어들인 row address가 row latch에 모두 저장되기까지의 시간
      • CAS Latency : 데이터가 출력되기까지 걸리는 시간 (refresh과정 포함)
  • Write Cycle : Read 대신 Write 신호를 입력
    • 입력 시 원하는 주소에만 부분적으로 쓸 때, 먼저 저장되어있던 데이터를 Column latch에 저장 후, 원하는 주소만 갱신한 뒤 해당 row에 덮어쓰는 방식으로 데이터 저장

  • Burst Read/Write
    • 같은 Row에 대해 연속된 column은 RAM 내부에서 주소를 증가시키면서 한번에 읽기/쓰기 동작
    • single read/write 대비 clock 수 감소, 주소 계산 경감
  • DDR(Double Data Rate) SDRAM
    • 신호를 더 빠르게 처리하기 위해 통상 rising edge때 동작하는 신호를, rising/falling 모두를 클록 기준으로 설정
    • burst mode에서 데이터가 이동하는 속도가 2배(명령 시간은 동일)

Example

  • 키패드
    • CPU에서 디코더로 주소 신호를 주면 버튼을 인식할 row 선택
    • high가 된 row에서 버튼이 눌리게 되면 신호가 Data bus로 전달
      • low인 row는 버튼을 눌러도 인가 전압이 0V쪽으로 흘러 신호가 전달되지 않음
    • CPU는 처음 지정한 address와 나중에 들어온 data를 조합하여 좌표 확인
    • row의 전환 주기가 매우 짧아 키패드 전체를 확인 가능
728x90

+ Recent posts