연구를 거듭 할 수록 오히려 모든 것들을 수식 하나로 완벽히 매칭 시킬 수 없고,
이론 -> 실험 -> 분석 -> 교정 -> 이론 -> 실험 -> 분석… 이런 과정을 반복하게 되고,
결국 통계적으로 결론을 만들게 됩니다.
반도체와 인공지능에서 많이 쓰는 방식이기도 합니다.
몬테카를로 방법의 유래
몬테카를로 기법은 그 이름에서 알 수 있듯이 유명한 도박의 도시 몬테카를로에서 유래했습니다.
제2차 세계대전 당시 미국의 맨해튼 프로젝트에 참여했던 폰 노이만(John von Neumann)과 수학자 스타니스와프 울람(Stanislaw Ulam)이 핵물리학의 복잡한 문제를 풀기 위해 무작위 샘플링과 확률론적 접근 방식을 도입하면서 시작되었습니다. 이 기법에 몬테카를로라는 이름을 붙였는데, 이는 도박에서의 우연성과 무작위성이 이 기법의 핵심이기 때문입니다. 이후 몬테카를로 방법은 물리학뿐만 아니라 다양한 분야에서 널리 사용되는 문제 해결 도구가 되었습니다.
https://aws.amazon.com/ko/what-is/monte-carlo-simulation/
몬테카를로 시뮬레이션이란 무엇인가요? - 몬테카를로 시뮬레이션 설명 - AWS : 몬테카를로 시뮬레이션이란 무엇인지 알아보고 비즈니스가 이를 사용하는 방식과 이유 및 AWS에서 몬테카를로 시뮬레이션을 사용하는 방법을 설명합니다.
몬테카를로 시뮬레이션이란?
몬테카를로 시뮬레이션은 확률론적 문제를 해결하기 위한 계산 알고리즘입니다.
이 기법은 반복적인 랜덤 샘플링을 통해 수치적 결과를 도출하는 것이 특징입니다.
입력 변수의 불확실성이 크고 해석적 해법이 존재하지 않는 문제에 대해 통계적인 접근 방식으로 사용됩니다.
예를들어, 반도체 소자 및 회로 설계에서는 제조 공정의 변동성, 노이즈 등 다양한 요인에 의해 성능이 영향을 받습니다.
이러한 성능 변동성을 정확히 예측하고 분석하는 것은 설계 단계에서 매우 어렵습니다.
수식적으로는 코너 시뮬레이션 방식으로 소자 파라미터의 최악의 조합을 고려하여 회로의 동작을 검증하는 방법이 있습니다. 이게 과거부터 현재까지 많이 쓰인 방식입니다.
-> 그러나, 이런 방식은 너무 비관적입니다. 그러면 결국 칩 성능을 낮춰서 설계 할 수 밖에 없습니다.
그러므로,
(1) Worst Corner 방식이 아닌, 통계적 방식으로 회로의 정상 동작 신뢰 구간을 정하고,
(2) Chip 제조공정에서 테스팅을 했을 때, 실패 칩을 거르는 방식으로 진행
-> 이런 방식으로 해도 칩 수율에 크게 나쁜 영향은 끼치지 않으면서, 높은 Performance의 회로를 만들어 낼 수 있는 것이죠.
몬테카를로 시뮬레이션을 요약하면, 파라미터를 확률 분포로 모델링하고, 랜덤 샘플링을 통해 다양한 조건에서의 회로 성능을 분석하고자 사용한다고 보면 됩니다.
반도체 제조 공정에서의 불확실성과 변동성
반도체 제조 공정은 수십 단계의 복잡한 과정을 거쳐 이루어집니다. 각 공정 단계에는 장비, 재료, 환경 조건 등 다양한 변수가 존재하며, 이러한 변수들은 불가피하게 변동성을 유발합니다.
lithography 공정에서의 노광 조건 변화는 gate length, width 등 소자의 치수 변화를 야기할 수 있습니다.
ion implantation이나 diffusion 공정에서의 변동성은 도핑 농도의 변화를 초래하여 threshold voltage나 carrier mobility, IDSAT 등 소자 파라미터에 영향을 줄 수 있습니다.
결국 IV Curve에 영향을 주고, 디지털 회로의 Setup/hold, Clock skew, path delay에 변화를 주고 Chip 동작 자체에 영향을 주게 됩니다.
몬테카를로 시뮬레이션 방법
사실 반도체로 바로 들어오면 재미 없고, 아래 유튜브랑 블로그로 내용 참고하시면 좋을 것 같습니다.
이거 어떤식으로 하면 도박에 써먹을 수 있을지?? 게임에 써먹을 수 있을지?? 생각해보다가,
오 이거 반도체에서 이런것 때문에 썼구나! 이렇게 알면 신기하더라구요.
https://www.youtube.com/watch?v=7ESK5SaP-bc&ab_channel=MarbleScience
설명 : A Monte Carlo simulation is a randomly evolving simulation. In this video, I explain how this can be useful, with two fun examples of Monte Carlo simulations…
https://studyingrabbit.tistory.com/33
몬테 카를로 시뮬레이션(Monte Carlo Simulation) 의 이해 : 원주율값 구하기 (+파이썬 시뮬레이션 코드) : 몬테카를로 시뮬레이션(혹은 알고리듬)이란 무엇인지를 정의하기란 매우 어려운데, 그 이유는 이 방법론을 수학과 응용수학 분야에서 매우 광범위하게 사용하기 때문입니다. (1 )이 시뮬레이션을 이용하여 계산 하려는 대상(값) (2) 이 시뮬레이션을 이용해야 하는 이유 (2) 이 시뮬레이션의 전체 혹은 일부를 이용하는 방법 등에 따라서, 몬테 카를로 시뮬레이션에 대한 정의는 조금씩 다를 텐데요, 그러나 이 방법론을 사용하는 모든 경우를 아우를 수 있는 핵심점인 키워드는 “반복적인 무작위적 샘플링” 입니다. 위키피디아의 몬테 카를로 시뮬레이…
(1) 확률 분포를 이용한 랜덤 샘플링
(2) 확률 분포 모델링
(3) Histogram, Plot 그래프 분석
(4) 다수의 랜덤 샘플을 이용한 통계적 분석
-> 평균값, 표준편차, 신뢰구간, 6-sigma 이런거 구하는겁니다.
해시태그 :