다음의 기술은 임의의 당업자로 하여금 본 발명을 제조 및 이용하는 것을 가능하게 하기 위해 제시되고, 특정한 애플리케이션 및 그의 요건들의 맥락에서 제공된다. 개시된 실시형태들에 대한 다양한 수정들은 당업자들에게 용이하게 명백할 것이고, 본 명세서에서 정의된 일반적인 원리들은 본 발명의 사상 및 범위로부터 벗어남 없이 다른 실시형태들 및 애플리케이션들에 적용될 수도 있다. 따라서, 본 발명은 나타낸 실시형태들에 제한되도록 의도되지 않고, 본 명세서에서 개시된 원리들 및 특징들에 부합하는 최광의 범위를 부여받아야 한다.
집적 회로 제조 플로우
도 11 은 본 기술의 특징들을 통합하는 예시적인 집적 회로 설계 플로우의 단순화된 표현을 도시한다. 하이 레벨에서, 프로세스는 제품 아이디어 (단계 1100) 로 시작하고 EDA (Electronic Design Automation) 소프트웨어 설계 프로세스 (단계 1110) 에서 실현된다. 그 설계가 완료되면, 그것은 테이프 아웃 (단계 1140) 될 수 있다. 테이프 아웃 후, 제작 프로세스 (단계 1150) 및 패키징 및 어셈블리 프로세스들 (단계 1160) 이 발생하여, 결국 집적 회로 칩들 (결과 1170) 이 완성된다.
EDA 소프트웨어 설계 프로세스 (단계 1110) 는 실제로는, 단순화를 위해 선형적으로 도시된 다수의 단계들 (1112 내지 1130) 로 구성된다. 실제 집적 회로 설계 프로세스에서, 특정한 설계는 소정의 테스트들이 통과될 때까지 단계들을 다시 거쳐야 할 수도 있다. 유사하게, 임의의 실제 설계 프로세스에서, 이들 단계들은 상이한 순서들 및 조합들로 발생할 수도 있다. 따라서 특정한 집적 회로에 대한 특정, 또는 추천된, 설계 플로우라기 보다는 맥락 및 일반적인 설명에 의해 이것을 기술한다.
이제, EDA 소프트웨어 설계 프로세스 (단계 1110) 의 컴포넌트들 단계들을 간략히 기술한다.
시스템 설계 (단계 1112): 설계자들은 그들이 구현하기를 원하는 기능을 기술하고, 그들은 what-if 플래닝 (planning) 을 수행하여 기능, 검사 비용들 등을 개선 (refine) 할 수 있다. 하드웨어-소프트웨어 아키텍처 파티셔닝이 이 스테이지에서 발생할 수 있다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 Model Architect, Saber, System Studio, 및 DesignWare? 제품들을 포함한다.
로직 설계 및 기능 검증 (단계 1114): 이 스테이지에서, 시스템에서의 모듈들에 대한 VHDL 또는 Verilog 코드가 기록되고 설계는 기능적 정확성을 위해 검사된다. 보다 구체적으로, 그 설계는 특정한 입력 자극들에 응답하여 정확한 출력들을 산출하는 것을 보장하기 위해 검사된다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 VCS, VERA, DesignWare?, Magellan, Formality, ESP 및 LEDA 제품들을 포함한다.
테스트를 위한 합성 및 설계 (단계 1116): 여기서, VHDL/Verilog 는 넷리스트 (netlist) 로 트랜슬레이트 (translate) 된다. 넷리스트는 타겟 기술에 대해 최적화될 수 있다. 추가적으로, 완성된 칩의 검사를 허용하기 위한 테스트들의 설계 및 구현이 발생한다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 Design Compiler?, Physical Compiler, Test Compiler, Power Compiler, FPGA Compiler, Tetramax, 및 DesignWare? 제품들을 포함한다.
넷리스트 검증 (단계 1118): 이 단계에서, 넷리스트는 타이밍 제약들의 준수에 대해, 그리고 VHDL/Verilog 소스 코드와의 부합 (correspondence) 에 대해 검사된다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 Formality, PrimeTime, 및 VCS 제품들을 포함한다.
설계 플래닝 (단계 1120): 여기서, 칩에 대한 전체 플로어 플랜이 구성되고 타이밍 및 최상위-레벨 라우팅에 대해 분석된다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 Astro 및 IC Compiler 제품들을 포함한다.
물리적 구현 (단계 1122): 배치 (회로 엘리먼트들의 포지셔닝) 및 라우팅 (동일한 것의 연결) 이 이 단계에서 발생한다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 Astro 및 IC Compiler 제품들을 포함한다.
분석 및 추출 (단계 1124): 이 단계에서, 회로 기능은 트랜지스터 레벨에서 검증되고, 이는 결국 what-if 개선 (refinement) 을 허용한다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 AstroRail, PrimeRail, Primetime, 및 Star RC/XT 제품들을 포함한다.
물리적 검증 (단계 1126): 이 단계에서는, 제조, 전기적 이슈들, 리소그래피 이슈들, 및 회로에 대한 정확도를 보장하기 위해 다양한 검사 기능들이 수행된다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 Hercules 제품을 포함한다.
테이프 아웃 (단계 1127): 이 단계는 완성된 칩들을 생성하도록 리소그래피 사용을 위한 마스크들의 생성을 위해 "테이프 아웃" 데이터를 제공한다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 제품들의 CATS(R) 패밀리를 포함한다.
분해능 향상 (단계 1128): 이 단계는 설계의 제조가능성을 개선시키기 위해 레이아웃의 기하학적 조작들을 수반한다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 Proteus, ProteusAF, 및 PSMGen 제품들을 포함한다.
마스크 데이터 준비 (단계 1130): 이 단계는 완성된 칩들을 생성하도록 리소그래피 사용을 위한 마스크들의 생성을 위해 "테이프 아웃" 데이터를 제공한다. 이 단계에서 이용될 수 있는 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은 제품들의 CATS(R) 패밀리를 포함한다.
통상의 집적 회로 제조 플로우는 또한 다음과 같은 관련 플로우를 포함한다:
(1) 집적 회로를 제조하기 위한 개개의 프로세스 단계들을 개발한다. 이것은 본 명세서에서 기술한 바와 같은 본 발명의 양태들을 모두 이용하는 Synopsys 툴들 "Sentaurus Process", "Sentaurus Topography", 및 "Sentaurus Lithography" 로 모델링될 수 있다. 입력 정보는 여기서 온도, 리액터 환경 (reactor ambient), 임플란트 에너지 등과 같은 프로세스 조건들을 포함한다. 출력 정보는 기하학적 구조 또는 도핑 프로파일들 또는 응력 분포의 변화들이다. 본 발명의 양태들은 제조 플로우의 이 단계에서 이용될 수 있다.
(2) 개개의 프로세스 단계들을 완전한 프로세스 플로우로 통합한다. 이것은 Synopsys 툴 "Sentaurus Process" 로 모델링될 수 있다. 입력 정보는 여기서 적절한 시퀀스에서의 프로세스 단계들의 컬렉션을 포함한다. 출력은 트랜지스터들에 대한 기하학적 구조, 도핑 프로파일들, 및 응력 분포 및 트랜지스터들 간의 공간을 포함한다. 본 발명의 양태들은 제조 플로우의 이 단계에서 또한 이용될 수 있다.
(3) 이 프로세스 플로우로 제조된 트랜지스터의 성능을 분석한다. 이것은 Synopsys 툴 "Sentaurus Device" 로 행해질 수 있다. 입력 정보는 여기서 단계 (2) 의 출력 및 트랜지스터 단자들에 인가된 바이어스들을 포함한다. 출력 정보는 각각의 바이어스 조합을 위한 트랜지스터들의 커패시턴스들 및 전류들을 포함한다. 본 발명의 양태들은 제조 플로우의 이 단계에서 또한 이용될 수 있다.
단계 (3) 에서 개발된 출력 정보는 프로세스를 이용하여 만들어진 트랜지스터들을 특성화하고, 그 특성들은 그 후 트랜지스터 레벨에서 회로 설계들을 설계자가 분석할 수 있게 하기 위해 HSPICE 와 같은 회로 시뮬레이터들에 제공된다. 트랜지스터 레벨에서 회로를 분석하는 것에 의해, 설계자는 더 나은 설계들을 개발하는 것이 가능하다.
(4) 필요한 경우, 원하는 트랜지스터 성능을 달성하기 위해 프로세스 단계들 및 프로세스 플로우를 수정한다. 이것은 상기 언급한 Synopsys 툴들을 이용하는 것에 의해 반복적으로 행해질 수 있다.
일단 프로세스 플로우가 준비되면, 다양한 회사들내 다양한 설계자들에서 비롯되는 다수의 회로 설계들을 제조하기 위해 이용될 수 있다. EDA 플로우 (1112 내지 1130) 는 이러한 설계자들에 의해 이용될 것이다. 여기에 기술된 병렬 플로우는 예를 들어, 설계자들에서 비롯된 설계들을 제조하는데 이용될 수 있는 프로세스 플로우를 개발하기 위한 파운드리 (foundry) 에서 이용될 수 있다. 단계 1130 에서 만들어진 마스크들과 프로세스 플로우의 조합은 임의의 특정한 회로를 제조하는데 이용된다. 설계자들이 상이한 회사, 예를 들어, 팹리스 회사에 있다면, 보통은 바로 파운드리가 이 병렬 프로세스 플로우를 수행하는 반면, 도 11 의 프로세스 단계들은 팹리스 회사에 의해 통상 수행된다. 집적 회로가 팹리스 회사 및 파운드리의 조합 대신에 IDM (integrated device manufacture) 회사에서 제조되면, 상기 기술된 병렬 플로우들 양쪽 모두는 동일한 IDM 회사에서 행해진다.
이들 툴들과 1112 내지 1130 EDA 툴들 사이에는 브릿지 (bridge) 가 또한 존재한다. 그 브릿지는 Synopsys 툴 "Seismos" 이고 이것은 특정한 회로 설계 및 레이아웃에 대한 콤팩트한 근접 모델들을 적용하여, 재료 변환 응력을 포함한, 그의 이웃 및 응력의 함수로서 회로에서의 각 개개의 트랜지스터에 대한 인스턴스 파라미터들을 가진 넷리스트를 획득한다. 이 넷리스트는 분석 단계 1124 에서 이용된다.
도 12 는 관련 플로우에서 본 발명의 양태들을 구현하는 시스템의 사용을 예시한다. 그것은 관련 플로우의 여러 단계들에서 이용될 수 있다. 시스템은 모델링될 바디, 및 그 바디 상에 메시를 부과하는데 있어서 이용될 파라미터들의 기술을 사용자로부터 수신하는 메싱 모듈 (1210) 을 포함한다. 바디가 전체 구조 (이를 테면 전체 트랜지스터) 일 필요는 없다. 실제로 그것은 전체 구조의 단지 하나의 사분 또는 하나의 8분을 이용하고, 사분 면들에서 반사 경계 조건들을 확립하는 것이 종종 동일하게 정확하고 훨씬 더 효율적이다.
메싱 파라미터들은 3 개의 차원들의 각각에서 원하는 그리드의 좌표 범위, 및 모든 3 개의 차원들에서의 노드들 사이에 확립될 균일한 간격을 표시하는 단일 값을 포함한다. 바람직하게는, 본 명세서에서 기술한 바와 같이, 균일한 간격은 실리콘에서 양자 분리 거리 이하이고, 훨씬 더 바람직하게는 실리콘 원자의 원자 사이즈의 10% 이내이다. 훨씬 더 바람직하게는 그것은 실리콘 원자의 원자 사이즈와 동일하다. 또한, 바람직하게는, 그리드 차원들은 상호 직교한다. 모듈 (1210) 은 본 명세서에서 "메싱" 모듈로 때때로 지칭되지만, 보통은 그리드 노드들에 의해 단지 암시되는 것처럼 메시를 생각하는 것이 가장 좋다.
모듈 (1210) 은 각각의 노드에 바디 내 또는 주위에 위치가 할당된다는 의미에서 모델링될 바디에 노드들의 그리드를 부과한다. 노드 데이터 구조는 각각의 노드에 대해 팝퓰레이팅되는데, 이는 (3 개의 차원들에서) 바디에서의 그리드 노드의 위치의 표시, 및 그 위치에서의 바디의 다양한 속성들에 대한 값들을 포함한다. 하나의 실시형태에서, 노드의 위치는 그 노드의 데이터 구조 내에서 명시적으로 식별되지만, 다른 실시형태에서, 노드 데이터 구조들은 그들 자체로 3 차원 어레이로 조직화되고, 여기서 각각의 노드의 위치는 균일한 노드 간격 및 노드에 대한 3 개의 어레이 인덱스들의 세트에 의해 암시된다. (본 명세서의 다른 곳에 기술된) 일부 목적들을 위해, 예를 들어, 바디 재료가 그리드 노드들의 정확한 위치들에 매칭하지 않는 격자 노드들을 갖는 결정 격자 구조이면, 노드 데이터 구조는 또한 대응하는 격자 노드의 위치의 표시를 포함할 수도 있다.
"속성" 은 본 명세서에서 사용한 바와 같이, 각각의 노드에 적용가능한 양이다. 속성들은 노드 방정식들에서 참조되는 모든 속성들을 포함한다. 예들은 (소정의 유형들의 디바이스 모델링에 대한) 유전율 및 저항률, (소정의 유형들의 프로세스 모델링에 대한) 확산도, 및 (소정의 유형들의 기계적 모델링에 대한) 기계적 강도를 포함한다. 속성들은 보통 시뮬레이션된 프로세스 동안에 고정되지만, 때때로 그들은 이웃하는 노드들에서 일어나는 변화들로 인해 변화할 수 있다. 예를 들어, 특정한 노드의 영역에서의 산소 농도가 증가하여, 실리콘 영역이 SiO2 처럼 더 거동하기 시작하면, 특정한 노드의 속성들을 순수 Si 보다는 오히려 SiO2 의 속성들로 변화시키는 것이 적절할 수도 있다. 이 상황은 예를 들어, SiO2 성장 프로세스, 또는 경계 이동을 수반하는 다른 프로세스를 모델링할 때, 생길 수 있다. 속성들은 보통 재료의 양들이지만, 소정의 유형들의 노드 방정식들에 대해, 그들은 또한 노드 부근의 필드들의 양들과 같은 비-재료 양들을 포함할 수도 있다. 후자의 일 예는 전계 강도이다. 속성들은 또한, 외부적으로 인가된 양들, 이를 테면 특정한 노드 위치에서, 모델링되는 바디에 외부적으로 인가된 전계로부터 발생하는 양들을 포함할 수 있다.
메싱 모듈 (1210) 은 노드들의 그리드가 부과된 바디의 기술을 출력한다. 출력은 미리정의된 포맷으로 존재한다. 하나의 실시형태에서, 출력은 디스크 드라이브 또는 컴퓨터 메모리와 같은 비일시적 컴퓨터 판독가능 매체에 기록된다.
메싱 모듈 (1210) 의 출력은 모두 캘리포니아, 마운티 뷰 소재의 Synopsys, Inc. 로부터 입수가능한, Sentaurus Process, Sentaurus Topography, Sentaurus Lithography, 또는 Sentaurus Device 와 같은 TCAD (Technology Computer Aided Design) 모듈을 포함할 수도 있는 반복 모듈 (1212) 에 제공된다. 이들 툴들의 상이한 툴들이, 모델링될 특정한 유형의 시간적 프로세스에 의존하여, 반복 모듈 (1212) 로서 이용될 것이다. 반복 모듈 (1212) 은 컴퓨터 시스템 상에서 거동을 시뮬레이션하는 것에 의해, 시변 프로세스 동안에 재료 구조의 거동을 모델링한다. 사용자는 또한, 반복 모듈 (1212) 에 대한 노드 방정식들, 노드 방정식들에서 참조되는 다양한 양들에 대한 시작 값들 뿐만 아니라 (계산하기 위한 최대 수의 시간 단계들 및 각각의 시간 단계의 지속기간과 같은) 시간 단계 파라미터들을 제공한다.
반복 모듈 (1212) 은, 그들이 시뮬레이션 기간의 종료시 그리드의 각각의 노드에 있는 것으로 예측될 때, 관심있는 양 또는 양들에 대한, 시뮬레이션에 의해 계산된 값들의 표시를 출력으로서 제공한다. 메싱 모듈 (1210) 의 출력처럼, 반복 모듈 (1212) 의 출력은 미리정의된 포맷으로 제공된다. 출력은 보고 모듈 (1214) 에 의해 사용자에게 보고된다. 하나의 실시형태에서, 출력은 디스크 드라이브 또는 컴퓨터 메모리와 같은 비일시적 컴퓨터 판독가능 매체에 기록되고, 추가의 실시형태에서, 출력은 결과들의 사용자 해석을 단순화하는 시각적 형태로 바디에 걸친 양들의 분포를 제시하는 가시화 모듈에 제공될 수 있다.
그 결과들은 그 후 다양한 실시형태들에서, 집적 회로 디바이스들을 구축 또는 향상시키는 다양한 현실 세계 양태들을 위해 이용될 수 있다. 하나의 실시형태에서, 예를 들어, 그 결과들은 설계들을 제조하는데 이용될 수 있는 제작 프로세스 플로우를 개발 또는 향상시키는데 이용된다. 단계 1130 에서 만들어진 마스크들과 프로세스 플로우의 조합은 임의의 특정한 회로를 제조하는데 이용된다. 다른 실시형태에서, 그 결과들은 트랜지스터들 및 다른 디바이스들을 특성화 또는 향상시키는데 이용된다. 다른 실시형태들에서 그 결과들은 설계자들이 더 나은 회로 설계들 및 레이아웃들을 개발하는 것을 가능하게 하기 위하여, 집적 회로 디바이스들의 HSPICE 모델들을 개발하는데 이용된다. 또 다른 실시형태들에서, 그 결과들은 원하는 트랜지스터 성능을 달성하기 위해 프로세스 플로우를 개선시키는데 이용된다. 따라서, 본 명세서에서 기술된 방법들 및 시스템들에 의해 획득된 수치 값들은 반도체 제조 프로세스들 또는 회로 설계들의 현실 세계의 기술적 개발 또는 구현을 위해 이용된다.
도 1 은 CAD 시스템에서 반도체 구조들 및 제작 프로세스 단계들을 모델링하는데 있어서 도 12 의 시스템에 의해 이용되는 방법의 플로우 차트이다. 도 1 의 방법은 하나 이상의 컴퓨터 시스템들 상에서 실행되는 하나 이상의 컴퓨팅 프로세스들에 의해 구현될 수 있다. 단계 110 에서, 방법은 모델링될 바디 상에 노드들의 균일한 그리드를 부과한다. 그리드는 3 개의 독립적 차원들을 가지며 실리콘에서 양자 분리 거리보다 작은 균일한 노드 간격을 갖는다. 단계 110 은 메싱 모듈 (1210) (도 12) 에 의해 수행될 수 있다.
단계 112 에서, 시뮬레이션될 프로세스의 시간 단계 동안에 적어도 하나의 물리량의 거동을 기술하는, 노드 방정식들의 시스템이 제공된다. 이들 노드 방정식들은 반복 모듈 (1212) (도 12) 에 제공된다. 노드 방정식들의 시스템에서의 노드 방정식들은 이산 시간 단계를 통하여 로컬 레벨에서의 (즉, 각각의 노드에서의) 거동을 기술한다. 노드 방정식들의 시스템은 단지 단일 유형일 필요는 없다. 하나의 특히 유용한 예에서, 그것은 편미분 방정식들의 서브-시스템 그리고 또한 확률 방정식들의 서브-시스템 양쪽 모두를 포함할 수도 있다. 따라서, 용어 "시스템" 은 본 명세서에서 사용한 바와 같이, (1) 각각의 노드가 적어도 하나의 방정식, 및 통상적으로는 (각각의 축에 대해 하나씩) 3 개를 갖는 것; 그리고 또한 (2) 각각의 노드에서 하나보다 더 많은 현상에 대한 방정식들 (예를 들어, PDE (편미분 방정식) 및 확률 방정식) 이 존재할 수도 있는 것 양쪽 모두 때문에 모두 다양한 방정식들을 포괄한다. 이들 상이한 현상에 대한 방정식들은, 하나의 현상에 대한 방정식들을 푸는 것에 의해 결정된 양들이 다른 현상에 대한 방정식들을 푸는데 있어서 이용되고 그 역도 또한 마찬가지라는 의미에서, 상관될 수도 있지만, 일부 실시형태들에서, 계산의 단순화를 위해, 그들은 연립 방정식들의 단일 시스템으로서 모두 풀어지지는 않는다. 용어 "서브-시스템" 은, 방정식들의 "시스템" 을 함께 구성하지만, 연립 방정식들의 단일 시스템으로서 다른 서브-시스템들과 함께 모두 풀어지지는 않는 방정식들의 세트를 지칭하기 위해 본 명세서에서 때때로 사용된다. 방정식들의 "서브-시스템" 은 그 자체가 본 명세서에서 방정식들의 "시스템" 을 구성하는 것으로 간주된다. 일부 실시형태들에서는 방정식들의 2 개보다 더 많은 서브-시스템들이 포함된다.
노드 방정식들의 시스템은 그리드의 각각의 노드에 대해 적어도 하나의 노드 방정식을 포함한다. 노드 방정식들은, (1) 시간 단계의 시작시 특정한 노드 및 인접한 노드들에서의 양들의 값들, (2) 특정한 노드에서의 그리고 가능하게는 인근 노드들에서의 재료의 하나 이상의 속성들의 값들, 및 (3) 시뮬레이션의 목적을 위해 확립된 제로 이상의 추가적인 파라미터들의 값들의 함수로서, 시간 단계의 종료시 노드에 존재할 관심있는 하나 이상의 양들의 값들을 기술한다. 노드 방정식들에서 기술된 양들은 시뮬레이션이 결정하도록 의도되는 구조의 임의의 시변 양태일 수 있다. 예를 들어, 어닐링 단계 후 도펀트 농도의 분포를 발견하도록 의도된 시뮬레이션에서, 관심있는 양은 시뮬레이션의 종료시 각각의 노드에서의 도펀트의 농도일 수도 있다. 다양한 실시형태들에서 관심있는 다른 양들은 결함 로케이션들, 재료 구조들, 전자 밀도, 전류, 커패시턴스, 및 기계적 응력을 포함한다. 양들은 물리량들이며, 이는 그들이 특정한 시간에 재료의 바디의 일부 물리적 양태에 대한 값을 식별한다는 것을 의미한다. 적절한 계측 (instrumentation) 을 가정하면, 이들 양들이 측정될 수 있다. 또한, "양" 은, 또한 물리적인 중간의 양들을 포함한다. 예를 들어, 노드 방정식들의 2 개의 서브시스템들을 포함하는 일 실시형태에서, 하나의 서브-시스템에 의해 특정한 시간 단계에서 결정된 양들은 다른 서브-시스템의 목적들을 위해 중간의 양들로 간주될 수도 있다.
단계 1114 에서, 반복 모듈 (1212) 은 제 1 복수의 시간 단계들의 종료시 바디의 물리량들의 적어도 한 서브세트에 대한 값들을 결정하기 위해 제 1 복수의 시간 단계들을 반복한다.
도 2 는 도 1 의 방법에 대해 이용될 수 있는 노드들의 3 차원 그리드의 투시도이다. 이 예에서, 노드들 (201) 은 데카르트 좌표계의 선형 및 독립적인 x, y 및 z 방향을 따라 배치된다. x, y, 또는 z 방향들에서의 인접한 노드들의 각각의 쌍은 동일한 거리 d 만큼 이격된다. 본 명세서에서 사용한 바와 같이, 도 1 에서의 그리드는 Voronoi 볼륨들 모두가 동일한 사이즈를 가진 동일한 형상의 다면체들 (예를 들어, 각각의 큐브의 중간에 그리드 노드들을 가진 큐브들) 을 갖기 때문에 균일한 그리드로 지칭된다. 도 2 에 예시된 그리드는 3 차원 바디를 모델링하는데 이용된다. 바디 자체의 경계들 및 영역들은 데카르트 좌표계와 정렬할 수도 있거나 또는 정렬하지 않을 수도 있다.
도 3 은 예시적인 3 차원 구조의 투시도이며, 이 구조는 도 2 의 그것과 같은 그리드를 이용하여 모델링될 수 있다. 도 3 에서, 구조는 나노 와이어이다. 나노 와이어는 도체 (도선) 일 수 있지만, 도 3 에서, 나노 와이어는 나노 와이어의 부분이 게이트 스택 구조 (예를 들어, 게이트 유전체 및 금속 게이트) 에 둘러싸이기 때문에 트랜지스터이다. 특히, 나노 와이어는 층 (302) 으로 지정된, 유전체 시스 (sheath) 에 둘러싸인 내부 실리콘 원통형 영역 (301) 을 포함한다. 실리콘 원통형 영역 (301) 의 직경은 약 3 나노미터이다. 유전체 층 (302) 의 두께는 약 2 나노미터이다. 나노 와이어는 금속 게이트 (303) 에 둘러싸인다. 도 3 의 파선들 (310 및 311) 사이의 나노 와이어의 부분은 도 2 에 예시된 것과 같은 동일한 간격의 노드들의 균일한 그리드에 의해 모델링될 수 있다.
도 4 는 도 3 의 파선들 (310 및 311) 사이의 나노 와이어의 사분을 모델링하기 위한 동일한 간격의 노드들의 그리드의 단면도이다. 도 4 의 예에 도시한 바와 같이, 그리드는 x 및 y 방향들에서 동일한 거리 d 간격을 두고 동일하게 이격되는 노드들을 포함한다. 그리드에서 각각의 노드는 도 4 의 상이한 음영들의 원들로 표시한 바와 같이, 실리콘 원통형 영역 (301), 유전체 층 (302), 또는 금속 게이트 영역 (303) 중 특정한 하나에 속한다. 노드들은 데카르트 좌표들에서 동일하게 이격되기 때문에, 2 개의 상이한 영역들에 속하는 노드들 간의 경계는 도 3 의 나노 와이어 구조의 곡면 경계들 (예를 들어, 도 4 에 도시된 곡면 파선들) 을 반드시 따르지 않을 수도 있다.
도 5 는 상기 기술된 x, y, 및 z 방향들에서 동일한 간격의 노드들의 균일한 그리드를 부과받은 도 3 의 나노 와이어의 투시도이다. 도 5 에 도시한 바와 같이, 실리콘 원통형 영역 (301) 및 유전체 층 (302) 에 속하는 노드들 사이에 형성된 경계, 및 유전체 층 (302) 및 금속 게이트 영역 (303) 에 속하는 노드들 사이에 형성된 경계는 도 3 의 나노 와이어의 원통형 경계들을 따르지 않는다.
도 4 에 예시된 그리드에서, 각각의 노드에는 그 노드가 속하는 영역의 하나 이상의 속성들 (예를 들어, 비유전율, 저항률, 밴드 구조, 및 기계적 속성들) 에 대한 값들이 할당된다. 예를 들어, 유전체 층 (302) 에 속하는 노드에는 비유전율에 대해 하나의 값이 할당되는 반면, 원통형 실리콘 영역 (301) 에 속하는 노드에는 비율전율에 대해 상이한 값이 할당된다. 다른 예로서, 예시적인 목적들을 위해, 실리콘 원통형 영역 (301) 이 특정한 농도의 인 (phosphorus) 으로 도핑된다는 것을 가정하면, 원통형 실리콘 영역 (301) 에 속하는 노드에는 특정한 대응하는 이동도 값 및 특정한 대응하는 시트 저항률 값이 할당될 수도 있다.
개개의 노드들에 할당된 속성 값들은 노드가 속하는 영역의 재료에 의존한다. 그러나, 여러 상이한 접근법들이 할당할 특정한 값들을 결정하기 위해, 단일의 실시형태에서 또는 상이한 실시형태들에서 중 어느 하나에서 취해질 수 있다. 하나의 접근법에서, 할당된 속성 값들은 벌크의 영역의 재료에 대한 것들이다. 재료는 단지 단일 원자 원소 (예를 들어, 실리콘) 만을 포함하는 구조일 수도 있거나, 또는 단지 단일 화합물, 또는 입자 유형들의 혼합물을 포함하는 구조일 수도 있다. 이 접근법에서, 재료는 벌크로 간주된다. 예를 들어, 특정한 노드가 속하는 영역의 재료는 실리콘, 옥사이드, 나이트라이드, 실리사이드 등일 수도 있다. 이 제 1 접근법에서, 할당될 속성 값들의 일부 또는 모두는 벌크 실리콘, 옥사이드, 나이트라이드 실리사이드 등에 대한 알려진 값들로부터 취해질 수 있다. 이 접근법은 매우 작은 볼륨을 갖는 영역들에 대해 소정의 조정들을 요구할 수도 있다.
제 2 접근법에서, 각각의 노드에는 하나의 입자 유형이 할당되고, 노드에 할당된 속성 값들은 그 입자 유형으로부터 유도된다. 예를 들어, 특정한 영역에서의 재료가 2 개의 원자 원소들의 혼합물이면, 이 제 2 접근법에서, 영역에서의 그리드 노드들의 일부는 원소들 중 하나인 것으로 할당되고, 다른 것들은 다른 원소인 것으로 할당되고, 그들은 그들이 영역에 존재하는 것과 동일한 비율로 그리드 노드들에 할당된다. 제 1 원소인 것으로 할당되는 그리드 노드들에 대한 속성 값들에는 제 1 원소의 속성 값들이 할당되는 반면, 제 2 원소인 것으로 할당되는 그리드 노드들에는 제 2 원소의 속성 값들이 할당된다. 소정의 종류의 재료 조합들에 대해, 입자당 속성들은 의미가 없을 수도 있기 때문에, 이 제 2 접근법은 개개의 그리드 노드들에 벌크 재료 속성 값들을 할당할 때 주의할 것을 요구한다. 예를 들어, SiO2 에 대해, 실리콘인 것으로 지정되는 특정한 그리드 노드에 할당할 재료 속성 값들은 여러 인접한 원자들을 포함하는 실리콘 원자의 이웃에 기초해야 한다.
제 3 접근법에서, 특정한 영역에서의 그리드 노드들에는 특정한 그리드 노드에서의 농도 또는 다른 필드 강도에 의존하여 서로 상이한 속성 값들이 할당될 수 있다. 예를 들어, 영역에서의 재료가 순수 (예를 들어, 도펀트 원자들을 포함하는 결정 격자 구조) 가 아니고, 영역 내의 불순물들의 농도들이 알려져 있으면, 대부분의 그리드 노드들에 벌크 재료를 할당하고 적절한 비율들로 그리드 노드들의 나머지에 불순물들을 할당하는 대신에, 모든 그리드 노드들은 복합 재료인 것으로 할당될 수 있고 할당된 속성 값들에 대한 트랜슬레이션에 있어서 직접 조정이 이루어진다. 따라서, 특정한 농도의 보론으로 도핑된 실리콘의 영역에서, 저항률에 대해 영역에서 모든 그리드 노드들에 할당된 값은 그 동일한 농도의 보론을 갖는 벌크 실리콘의 저항률에 대해 알려진 값일 수도 있다. 일부 실시형태들에서, 불순물의 농도가 영역 내에서 알려진 방식으로 변하면, 특정한 속성에 대해 할당된 값은 이에 따라 다양한 그리드 노드들 간에 변하게 될 수도 있다. 도핑된 반도체 재료들에 더하여, 이 제 3 접근법은 또한 정전 전위로서 이러한 양들에 대해 유용할 수도 있다.
상기 접근법들 3 개 모두에서, 정확히 하나의 입자 유형이 각각의 그리드 노드에 할당되지만, 모델링되는 바디에서의 대응하는 입자와 동일한 위치들에 그리드 노드들이 위치될 필요는 없다. 본 명세서에서 사용한 바와 같이, 용어 "입자 유형" 은 또한, 결정 격자 구조에 빈자리 (vacancy) 들, 정공들 및 결함들을 포함한다는 것에 유의한다.
개별 입자들을 개별 그리드 노드들에 할당하는 접근법은 크게 단순화되며, 여기서처럼, 그리드 노드 간격은 원자 사이즈들에 접근하다. 추가로, 그러한 접근법은 또한, 재료들 간의 이동 경계들을 수반하는 프로세스들과 같은 특정 유형의 프로세스들의 시뮬레이션들을 크게 단순화할 수 있다. 예를 들어, SiO2 를 형성하기 위한 산화 프로세스에서, 실리콘 영역과 옥사이드 영역 간의 경계는, 실리콘이 소모되고 옥사이드가 형성됨에 따라, 이동한다. 그러한 프로세스는 부분적으로는 각각의 시간 단계 이후에 경계 영역을 리메쉬 (re-mesh) 할 필요성 때문에, 사면체들의 불규칙한 그리드를 사용하여 정확히 시뮬레이션하는 것이 매우 어렵다. 이들 어려움들은, 경계가 이동할 때, 실리콘 원자들이 되도록 이전에 할당되었던 노드들이 이제 SiO2 분자들 (또는 앞서 기술된 것과 같은 몇몇 접근법들에서의 변형들 중 하나) 이 되도록 간단히 재할당되기 때문에, 개별 입자들을 원자 사이즈의 균일한 그리드의 개별 노드들에 할당하는 접근법에서 완전히 회피된다. 보다 구체적으로, 예를 들어, 특정 시간 단계 이후에 실리콘이 되게 할당되었던 특정 그리드 노드의 인근에서의 산소의 농도가 미리 결정된 임계 농도보다 높게 증가한다면, 그 그리드 노드는 다음 시간 단계 동안 SiO2 입자가 되게 간단히 재할당되고, SiO2 의 특성 값들이 실리콘의 특성 값들 대신 적용된다. 이러한 기술에 대한 다른 변형들이 독자에게 분명해질 것이다.
도 2 의 실시형태에서, x, y, 및 z 방향들에서 그리드의 인접 노드들의 각각의 쌍 간의 동일한 간격은 실리콘에서의 양자 분리 거리보다 작다. 양자 분리는, 전자들의 대부분이 반전 모드에서 금속 옥사이드 반도체 (MOS) 트랜지스터의 게이트 옥사이드 인터페이스로부터 떨어져서 위치되는 양자 기계적 현상이다. 고전적 전기 역학에 따르면, 전자 밀도는 게이트 옥사이드 내에서 제로이고, 실리콘 옥사이드 계면에서 최대값으로 점프하고, 실리콘의 내부를 향해 점진적으로 페이딩한다. 그러나, 양자 역학적으로, 전자들 (및 정공들) 이 계속해서 변화하는 확률 파동으로 더 정확히 기술되기 때문에, 전자 밀도는 제로로부터 실리콘 옥사이드 계면에서의 최대값으로 점프하지 않는다. 대신, 전자 밀도는 실리콘 옥사이드 계면에서 제로이고, 실리콘 내로의 일부 특정 거리에서 피크 값에 도달하며, 그 후 실리콘 내부를 향해 점진적으로 페이딩한다. 본원에서 사용되는 것과 같이, 양자 분리 거리는, 전자 밀도 중심이 위치되는, 실리콘 옥사이드 계면로부터 떨어진 거리이다. 이는 재료에 의존하여 약 1 내지 2 나노미터들과 동일한 것으로 알려져 있다. 트랜지스터 게이트 구조들의 차원들이 원자 사이즈들보다 대략 오직 1 내지 2 자릿수 더 크게 감소하기 때문에, 양자 분리와 같은 양자 효과들이 중요해 진다.
도 6 은 3 나노미터 게이트 옥사이드 두께들, 5·1017 cm-3 의 붕소 도핑된 채널, 및 3 볼트의 게이트 전압에서 <100> 기판 배향을 갖는 MOS-구조에서의 전자 밀도의 플롯이다. 도 6 에 도시된 것과 같이, 양자 기계적으로, 전자 밀도의 중심은 실리콘 옥사이드 계면으로부터 1 nm 에 가깝게 떨어져있다. 즉, 양자 분리 거리는 상기 예에서 1 nm 에 가깝다. 전자들의 대부분이 옥사이드 실리콘 계면에서 떨어져서 위치되기 때문에, (예를 들어, 커패시턴스-전압 측정 방법들에 의해 측정된 것과 같은) 옥사이드 두께의 측정값은 전자 밀도가 옥사이드 실리콘 계면에서 피크인 것으로 가정되는 고전적인 경우보다 크다. 또한, 양자 분리 때문에, 임계 전압은 전자 밀도가 옥사이드 실리콘 계면에서 피크인 고전적인 경우보다 높다. 실리콘의 양자 분리는 Andreas Wettstein, Quantum Effects in MOS Devices, Ph.D. Thesis, April 2000, Department of Information Technology and Electrical Engineering, Eidgenoessische Technische Hochschule (ETH) Zuerich 에서 더 상세히 논의되며, 이는 본원에서 그 전체가 참조에 의해 통합된다.
도 7 은 양자 분리의 더 많은 예들을 도시한다. 도 7 은 반전 모드에서 MOS 트랜지스터의 옥사이드 반도체 계면에서 떨어져서 전자 밀도에 있어서 실리콘 (Si), 게르마늄 (Ge), 갈륨 비소 (GaAs) 중에서의 비교를 도시한다. 도 7 에 도시된 것과 같이, 전자들의 대부분은 옥사이드 반도체 계면로부터 떨어져서 위치된다. 도 7 은 양자 분리 거리가 실리콘에서 약 1.1 나노미터, 게르마늄에서 2.1 나노미터, 및 갈륨 비소에서 2.5 나노미터들인 것을 도시한다.
양자 분리의 효과를 고려하여, 특정 반도체 재료에서 양자 분리 거리보다 더 작도록 그리드의 노드 간격을 선택하는 것이 유리하다. 그렇지 않으면, 구조의 전자 밀도 및 관련 특성들은 정확하게 계산되지 않을 수도 있다. 예를 들어, 양자 분리 거리보다 큰 인접 노드 간격을 갖는 그리드는 반전 모드에서 MOS 트랜지스터에서의 전자 밀도 중심으로의 부정확한 거리를 낳을 수도 있다. 자주 관심 있는 반도체는 실리콘이기 때문에, 바람직하게 그리드에서의 노드 간격은 실리콘에서의 양자 분리 거리보다 더 작도록 선택된다.
더 바람직하게, 도 2 및 도 4 에 도시된 그리드의 인접 노드들의 각 쌍 간에 (x, y, 또는 z 방향에서) 등가 거리 d 는 바람직하게 실리콘의 원자 사이즈, 또는 0.27 나노미터와 실질적으로 동일하다. 즉, 그리드는 원자 스케일로 이루어진다. 이하 표 1 은 반도체 구조들에서 공통적으로 발견되는 원자들의 밀도들 및 원자 사이즈를 열거한다. 표 1 에서, 원자 사이즈는 밀도의 역 세제곱근으로 계산된다. 즉, 원자 사이즈는 평균적으로 원자가 공간에서 점유하는 입방 볼륨의 측면이다. 원자 사이즈는 인접 원자들의 쌍 간에 평균 거리를 기술한다. 표 1 에 도시된 것과 같이, 이들 원자들 및 분자들의 원자 사이즈는 상이하지만, 0.27 나노미터들 (실리콘의 원자 사이즈) 의 ±10% 내에 있다. 따라서, 0.27 나노미터들 (실리콘의 원자 사이즈) 의 ±10% 내에 있는 간격으로 (x, y, 및 z 방향에서) 동등한 간격의 노드들을 갖는 그리드는 상이한 원자 사이즈들을 갖는 다양한 원자 조성물들을 갖는 반도체 구조를 나타내는데 사용될 수 있다. 거리 0.27 나노미터들은 또한, 이들 재료들 중 임의의 재료에서 양자 분리 거리보다 상당히 작고, 따라서 양자 분리 거리보다 큰 노드 거리들을 갖는 그리드들에 대하여 발생할 수 있는 부정확성들을 야기하지 않을 것이다.
도 2 및 도 4 에 도시된 그리드에서의 노드들은 반도체 구조들에서 공통적으로 발견된 원자들 및 분자들의 결정 구조들과 상이하게 배열되는 것에 유의한다. 예를 들어, SiO2 결정 구조에서, 동일한 산소 원자에 접속된 2 개의 상이한 실리콘 원자들 간의 각도는 144°일 수 있다. 도 2 및 도 4 에 도시된 그리드에서, 인접 노드들 간의 각도는 항상 90° 또는 180°이다. 그리드에서 인접 노드들 간의 거리는 모델링되는 바디에서 인접 원자들 간의 거리와 유사하지만, 그리드에서 노드들의 정확한 위치는 구조 내에서 그러한 원자들에 대응할 필요가 없다.
실리콘에서의 양자 분리 거리보다 작은 거리로 동등한 간격의 노드들을 갖는 앞서 기술된 그리드는 도 3 에 도시된 나노 와이어 트랜지스터와 같은 구조에서 하나 이상의 양들의 거동을 기술하는 편미분 방정식들을 풀기 위해 이용될 수 있다. 예를 들어, 편미분 방정식은 나노 와이어 구조에서 보존된 양 (예컨대, 하전된 캐리어들, 원자들, 질량, 에너지, 운동량) 을 기술하는 연속 방정식일 수 있다. 그리드는 (예컨대, 도 4 에 도시된 것과 같은) 나노 와이어 구조의 오직 일부일 수도 있는 바디에 부과된다. 그 후에, 편미분 방정식은 반복적으로 풀리고, 편미분 방정식에 의해 모델링될 양들에 대하여 그리드에서의 각각의 노드에서 값들이 결정된다 (예컨대, 전자 밀도, 전자 플럭스).
도 8 은 CAD 시스템에서 복수의 시간 단계들의 단부에서 바디의 물리량들에 대한 값들을 반복적으로 결정하기 위해 단계 114 (도 1) 에서의 로직의 플로우차트 상세이다. 도 8 의 로직은 컴퓨터 시스템들로 액세스 가능하고, 프로세서들에 의해, 필드 프로그램가능 집적 회로들을 포함하는 전용 로직 하드웨어에 의해, 또는 전용 로직 하드웨어와 컴퓨터 프로그램들의 조합들에 의해 실행가능한 메모리에 저장된 컴퓨터 프로그램들을 사용하여 프로그래밍된 프로세스들을 사용하여 구현된다. 플로우차트에서 각각의 블록은 다양한 실시형태들에서, 특정 논리 함수(들)을 구현하기 위해 (연속할 수도 있거나 연속하지 않을 수도 있는) 하나 이상의 실행가능한 명령들을 포함하는, 모듈, 세그먼트, 또는 코드 부분을 나타낼 수도 있다. 본원의 모든 플로우차트들과 마찬가지로, 다수의 단계들은 달성된 기능들에 영향을 주지 않고, 결합되거나, 병렬로 수행되거나, 상이한 순서로 수행될 수 있는 것이 인식될 것이다. 일부 케이스들에서, 독자가 인식하는 것과 같이, 단계들의 재배열은 어떤 다른 변경들이 또한 이루어지는 경우에만 동일한 결과들을 달성할 것이다. 다른 케이스들에서, 독자가 인식하는 것과 같이, 단계들의 재배열은 어떤 조건들이 만족되는 경우에만 동일한 결과들을 달성할 것이다. 게다가, 본원의 플로우차트들은 본 발명의 이해에 적절한 단계들만을 도시하는 것으로 인식될 것이고, 특정 실시형태에서, 그 실시형태를 위한 다른 기능들을 달성하기 위한 다수의 추가 단계들이 보여진 단계들 이전에, 이후에 또는 그 사이에 수행될 수 있는 것이 이해될 것이다.
플로우차트에 도시된 각각의 단계는 하나 이상의 컴퓨터 시스템들에 실행중인 하나 이상의 컴퓨팅 프로세스들에 구동하는 하드웨어 또는 소프트웨어에서 구현될 수 있는 로직을 기술한다. 이러한 유형의 대부분의 시뮬레이션들은 극히 계산 집약적이고, 통상적으로 어드밴스드 컴퓨터 하드웨어에 수행하기 위한 시간들을 필요로 하기 때문에, 예시된 단계들 중 적어도 일부는 인간의 사고로 합리적으로 수행될 수 없다. 일 실시형태에서, 플로우차트의 각 단계는 소프트웨어의 분리된 모듈의 기능을 도시한다. 다른 실시형태에서, 단계의 로직은 1 초과의 모듈 전체에 분포된 소프트웨어 코드 루틴들에 의해 수행된다.
도 1 에 따라서, 단계 810 이전에, 노드들의 그리드는 특성 값들의 할당을 포함하는 모델링된 바디에 이미 부과되었다. (예컨대, 도 2 에 예시된 것과 같은) 그리드는 실리콘의 양자 분리 거리 미만인 균일한 거리로 선형 및 독립적인 방향에서 배치되는 노드들을 포함한다.
노드 방정식들이 또한 이미 결정되었고, 일부 실시형태들에서, 경계 조건들이 특정 노드들에서 확립된다. 예를 들어, 방법은 (예컨대, 반사 경계 조건에서 말하자면) 그리드의 경계들에서의 노드들에서 제로 플럭스들의 값들을 할당할 수 있다.
단계 810 에서, 방법은 그리드의 각각의 노드에서, 시간 단계 0 에 대하여, 노드 방정식(들)의 하나 이상의 물리량들에 대한 시작 값들을 설정한다. 예를 들어, 방법은 그리드의 각각의 노드에서 전자 밀도의 시작 값들을 설정할 수 있다. 통상적으로, 시작 값들은 용이하게 계산될 수 있는 제로 또는 특정 평형 값들일 수 있다.
각각의 연속하는 시간 단계 1, 2, 3, 등 (단계 830) 에 대하여, 방법은 각각의 노드에 대한 현재 시간 단계의 종료시 물리량들에 대한 값들을 계산하기 위해 노드 방정식들을 사용한다 (단계 840). 예를 들어, 노드 방정식들이 연립 방정식들의 시스템 (공통의 솔루션들이 결정될 동일한 미지수들에서의 방정식들의 유한 세트) 을 형성한다면, 그 시스템은 그러한 방정식들의 시스템을 "연립 방정식들로서" 풀기 위해 임의의 수의 잘 알려진 방법들을 사용하여 풀릴 수 있다. 예를 들어, 노드 방정식들의 시스템은 행렬 시스템으로 변환될 수 있고, 그 행렬 시스템에서 비대각 요소는 그리드에서 인접 노드들의 쌍 간의 상호작용들 (예컨대, 플럭스) 을 나타낸다. 그 후에, 현재 시간 단계에서 행렬 시스템은 가우스 자이델 방법 (Gauss-Seidel method) 또는 뉴턴 방법 (Newton's method) 과 같은 적합한 수치 계산법에 의해 반복적으로 풀릴 수 있다. 뉴턴 방법뿐만 아니라, 그 일부 유리한 변경들은 예컨대, 본원에서 참조에 의해 통합되는, 발명자들 Kucherov 및 Moroz 에 의한 미국 특허 번호 제 7,302,375 호, 대리인 도켓 번호 SYNP 0554-1 에서 기술된다. 그 방법은 또한, 행렬 시스템이 현재 시간 단계에 대하여 풀린 후의 양들의 값들을 기록한다.
유사하게, 노드 방정식들이 시간 단계 동안 각각의 노드에서 발생하는 특정 이벤트의 확률을 기술하는 확률 방정식들이면, 난수들이 생성되어 노드 방정식들에 적용되며, 이벤트가 현재 시간 단계 동안 그 노드에서 발생하는 것으로 고려될 것인지의 여부 및/또는 어느 정도로 이벤트가 현재 시간 단계 동안 그 노드에서 발생하는 것으로 고려될 것인지를 결정할 수 있다.
단계 850 에서, 방법은 현재 시간 단계에서의 솔루션이 만족스러운지 여부를 결정한다. 예를 들어, 방법은 솔루션이 명시된 임계치 내에 수렴했는지 여부를 결정할 수 있다. 솔루션이 현재 시간 단계에서 만족스럽다면, 도 8 의 방법은 종료한다. 추가로, 방법은 사용자 인터페이스를 통해 사용자에게 바디의 최종 상태 (예컨대, 그리드 노드들에서 관심 있는 양들의 값들) 를 보고할 수 있다. 보고는 예컨대, 수치 값들의 형태, 또는 도 3, 도 5, 도 9a 또는 도 9b 에 도시된 것과 같은 시각화의 형태를 취할 수 있다.
현재 시간 단계에서의 솔루션이 만족스럽지 않다면, 방법은 다음 시간 단계에 대한 양들의 시작 값들을 업데이트한다 (단계 860). 예를 들어, 방법은 현재 시간 단계에서의 양들에 대하여 결정된 값들을 사용하여 다음 시간 단계에 대한 양들의 시작 값들을 업데이트할 수 있다. 그 후에, 방법은 수렴 상태가 도달될 때까지 단계들 (830, 840, 850, 및 860) 의 루프를 반복한다. 대안적으로 또는 부가적으로, 방법은 시간 단계 파라미터들 (도 12) 에서 표시된 것과 같은 명시된 수의 시간 단계들에 대하여 반복이 실행된 후에, 단계 (830, 840, 850, 및 860) 의 루프를 종결할 수 있다.
도 9a 는 앞서 기술된 등간격 노드들의 균일한 텐서곱 (tensor product) 그리드를 사용하여 슈뢰딩거 방정식 (Schrodinger's equation) 을 푸는 것에 의해 계산된 것과 같은 도 3 의 나노 와이어의 원통형 실리콘 영역 (301) 에서 전자 밀도의 값들을 예시하는 시각화이다. 도 9a 에 도시된 것과 같이, 전자 밀도는 옥사이드 실리콘 계면 근처에서 실질적으로 제로이다.
도 9b 는 노드들의 사면체 그리드를 갖는 불균일 그리드를 사용하여 슈뢰딩거 방정식을 푸는 것에 의해 계산된 것과 같은 도 3 의 나노 와이어의 원통형 실리콘 영역 (301) 에서 전자 밀도의 값들을 예시한다. 도 9b 는 도 9a 와 정량적으로 유사한 결과들을 도시한다. 도 9b 는 더 고분해능을 가지지만, 불규칙적인 희소 행렬을 초래하는 불균일한 그리드 때문에, 도 9b 에서의 전자 밀도 값들의 계산은 균일한 텐서곱 그리드를 갖는 도 9a 에서의 전자 밀도 값들의 계산보다 훨씬 더 많은 계산 시간을 요구할 것이다.
KMC 실시형태들
앞서 기술된 기술들은 다양한 상이한 유형의 노드 방정식들로 모델링된 다양한 상이한 현상들을 시뮬레이션하기 위해 사용될 수 있다. 예컨대, 입자 이동 또는 화학 반응들을 수반하는 프로세스들은 종종, 이산 시간 확률 방정식들을 사용하여 최선으로 모델링된다. KMC 방법은 그러한 이산 시간 확률 방정식들에 의해 모델링된, 알려진 레이트로 발생하는 특정 프로세스들의 시간 진전 (time evolution) 를 시뮬레이션하는 몬테카를로 (Monte Carlo) 컴퓨터 시뮬레이션 방법이다. 본원에서 참조에 의해 통합된 A.F. Voter, Introduction to the Kinetic Monte Carlo Method, in Radiation Effects in Solids, edited by K. E. Sickafus, E. A. Kotomin and B.P. Uberuaga (Springer, NATO Publishing Unit, Dordrecht, The Netherlands, 2007) pp. 1-23 를 참조하라.
KMC 방법에서, 이벤트들은 단위 시간 당 발생하는 미리 정의된 확률을 갖는 것으로 모델링된다. 예컨대, 도펀트 확산 프로세스를 모델링하기 위해, 도펀트 원자가 특정 시간 단계 동안 각각의 방향에서 점프할 알려진 확률이 존재한다. 확률은 온도가 증가함에 따라 증가한다. 발생 빈도 (frequency) f 로 또한 고려될 수 있는 시간 단계당 확률은, 다음과 같이 주어진다:
여기서,
● A 는 이벤트가 발생중인 재료의 특성들 및 고려중인 입자의 특성들에 의해 결정되는 전인자이고;
● Ea 는 하나의 위치에서 다음 위치로 점프하는 입자에 대한 에너지 장벽과 같은, 이벤트의 활성화 에너지이고;
● k 는 볼쯔만 상수이고, 그리고
● T 는 온도이다.
따라서, 관심 있는 입자의 특정 속성들 및 로컬 재료의 속성들의 값들에 의존하는 빈도로 이벤트들이 무작위로 발생하는 프로세스를 모델링하기 위해, 실시형태는 이산 시간 연속 방정식들보다, 노드 방정식들로서 이산 시간 확률 방정식들을 사용할 수도 있다. 노드 방정식들이 각각의 그리드 노드에 적용되고, 노드 방정식의 파라미터들 (상기 예에서, A, Ea 및 T) 에는 각각의 그리드 노드에 존재하는 조건들 및 재료에 기반한 값들이 할당된다. 시뮬레이션에 대한 시간 단계는 통상적으로 이벤트가 발생하기 쉬운 시간 스케일에 기초하여 선택된다. 다수의 동시의 랜덤한 프로세스들이 모델링되어야 한다면, 그 후에 시뮬레이션에 대한 시간 단계는 통상적으로, 가장 빈번한 이벤트가 발생하기 쉬운 시간 스케일에 기초하여 선택된다.
과거에, KMC 방법들은 통상적으로 본원에 기술된 의미에서 노드들의 부과된 그리드를 수반하지 않았다. 오히려, 입자들에는 바디 내에서 그들의 실제 (시뮬레이션된) 위치들이 할당된다. 예를 들어, 베이스 재료를 통한 도펀트 확산의 시뮬레이션들은 통상적으로, 베이스 재료에서 하나의 위치으로부터 다른 위치로 점프하는 것을 가정하고, 그 위치들 중 어느 것도 노드들의 임의의 부과된 그리드의 위치들과 반드시 관련될 필요는 없다. 종종 이벤트의 확률은, 계산하기 위해 시간을 소모할 수 있는, 인접하는 입자까지의 유클리드 거리에 의존할 것이다.
본 발명의 양태에 따르면, 다른 한편으로, 노드들의 균일한 그리드가 바디에 부과되며, 앞서 설명된 것과 같이 원자 스케일 노드 간격을 갖는다. 노드 방정식들은 이산 시간 확률 방정식들이지만, 대부분의 경우에 계산들은 모든 입자들이 그리드 노드들에 놓인 것을 가정함으로써 단순화된다. 따라서, 대부분의 경우들에서 입자들 간의 거리는 단순하게 균일한, 미리 결정된 노드 간격이다. 원자 스케일의 균일한 그리드의 부과는 각각의 노드에 대한 각각의 시간 단계의 종료시 물리량들의 결정을 크게 가속화할 수 있는 것이 보여질 수 있다 (단계 840).
모든 입자들이 그리드 노드들에 놓이는 단순화는 모델링되고 있는 바디의 대부분의 영역들에 대하여 높은 정확성을 낳을 수 있다. 그러나, 간략화는 재료 경계들에서 또는 그 근처에서 유효하지 않을 수도 있다. 그러므로, 본 발명의 양태에서, 그리드 노드 데이터 구조는 또한 각각의 그리드 노드에 할당된 입자의 실제 위치를 식별한다. 대부분의 목적들을 위해, 그리드 노드 위치가 계산들에서 사용된다. 그러나, 경계 근처의 미리 결정된 인근 내에 있는 그리드 노드들에 대하여, 입자들의 실제 위치들은 입자들 간의 거리를 계산하는데 사용된다. 예를 들어, 노드 방정식들이 오직 바로 인접하는 입자들까지의 거리들에 의존한다면, 반복 모듈 (1212) 은 임의의 바로 인접하는 그리드 노드에 할당된 입자 유형이 특정 그리드 노드에 할당된 입자 유형과 상이한 것을 검출하는 것에 의해, 특정 그리드 노드가 경계의 미리 결정된 인근 내에 있는 것으로 결정할 수 있다. 유사하게, 노드 방정식들이 인접하는 입자들 및 또한 인접하는 입자들에서 하나의 노드를 넘어서 위치된 입자들까지의 거리들에 의존한다면, 반복 모듈 (1212) 은 특정 그리드 노드의 2 개의 노드들 내에 있는 임의의 그리드 노드가 특정 그리드 노드에 할당된 입자 유형과 상이한 입자 유형이 할당된 것을 검출하는 것에 의해, 특정 그리드 노드가 경계의 미리 결정된 인근 내에 있는 것으로 결정할 수 있다. 따라서 본원에서 사용된 것과 같이, 용어 "경계 인근" 은 관련된 노드 방정식들의 도달과 공존한다. 특정 실시형태가 심지어 경계 인근 외부의 특정 그리드 노드들에 대한 그리드 노드 위치들보다는 실제 입자 위치들을 사용할 수도 있지만, 그러한 실시형태는 정확성의 상당한 개선 없이 일부 속도를 희생할 수도 있는 것을 주목한다.
특정 유형들의 KMC-모델링된 프로세스들에 대하여, 하나의 프로세스는 오직 특정 유형들의 서브세트의 이동에만 관심이 있다. 예를 들어, 불순물 확산 프로세스들을 모델링할 때, 통상적으로 사용자는 오직 불순물 입자들의 이동에만 관심이 있고, 기본 재료의 입자들의 이동에는 관심이 없다. 이러한 유형의 시뮬레이션은 오직 관심 있는 특정 입자들이 발생하기 쉬운 노드 방정식들을 평가하는 것에 의해 능률화될 수 있다. 그래서 불순물 확산 예에서, 특정 영역에서의 불순물 농도가 오직 1% 이면, 그리드 노드들 중 오직 1% 에 대한 노드 방정식들이 평가될 필요가 있다. 다양한 실시형태에서, 이러한 그리드 노드들의 서브세트는 무작위로 선택될 수 있거나, 또는 영역 전체에 균일하게 또는 적절한 구배로 분배되도록 선택될 수 있다. 그리드 노드들의 선택된 서브세트에는, 불순물 입자가 서브세트에서의 하나의 그리드 노드로부터 다른 그리드 노드로 점프할 확률을 기술하는 노드 방정식들이 제공된다. 어떤 노드 방정식들도 그 방정식들이 평가되지 않기 때문에, 그리드 노드의 다른 99% 에 적용되어야할 필요는 없다. 대안적으로, 모든 그리드 노드들에서의 노드 방정식들이 평가될 것이라면, 선택된 서브세트에 있지 않는 그 그리드 노드들은 0 으로 평가되는 노드 방정식들이 할당될 수 있다. 선택된 서브세트에 있지 않은 그리드 노드들에서 노드 방정식들의 효과를 무시하거나 그러한 노드 방정식들에 대한 계산 노력을 감소시키는 다른 방식들이 독자에게 분명해질 것이다.
노드 방정식들의 상관된 서브-시스템들로 다중 현상들을 모델링
KMC 는 동일한 바디에서 플레이 중에 1 초과의 확률론적 현상을 모델링하는데 사용될 수 있다. 예를 들어, 상기 방정식은 입자 점핑 확률들을 모델링하는데 사용될 수 있지만, 다른 방정식은 2 개의 인접하는 입자들이 반응하여 상이한 입자 유형을 형성할 가능성을 모델링하는데 사용될 수 있다. 동일한 바디에서 동시에 플레이 중에 다수의 상호 상관된 확률론적 현상들을 모델링하는 실시형태에서, 노드 방정식들의 시스템은 노드 방정식들의 다수의 서브-시스템들로서 제공될 수 있다. 이들 노드 방정식들의 다수의 서브-시스템들은 각각의 시간 단계 내에서 (즉, 단계 840 의 단일 인스턴스 내에서) 순차 라운드-로빈 방식으로 해결될 수 있다. 더 구체적으로, 노드 방정식들의 3 개의 서브시스템들이 존재한다면, 단계 840 는 먼저, 이전의 완료된 시간 단계의 결과로서 존재하는 값들에 기초하여, 오직 노드 방정식들의 제 1 서브시스템을 사용하여 각각의 노드에 대한 현재 시간 단계의 종료시 물리량들에 대한 값들을 결정하는 것; 그 후에 노드 방정식들의 제 1 서브-시스템의 결과로서 존재하는 값들에 기초하여, 오직 노드 방정식들의 제 2 서브시스템을 사용하여 각각의 노드에 대한 현재 시간 단계의 종료시 물리량들에 대한 값들을 결정하는 것; 및 그 후에 노드 방정식들의 제 2 서브-시스템의 결과로서 존재하는 값들에 기초하여, 오직 노드 방정식들의 제 3 서브시스템을 사용하여 각각의 노드에 대한 현재 시간 단계의 종료시 물리량들에 대한 값들을 결정하는 것을 수반할 수 있다. 노드 방정식들의 제 1 및/또는 제 2 서브-시스템들의 결과로서 결정된 값들은 노드 방정식들의 제 2 및/또는 제 3 서브-시스템에 대한 정확한 시작 값들인 것을 가정하는 것은 단순화이지만, 그 단순화는 충분히 짧은 시간 단계들에서 유효할 수 있다.
추가로, 원자 스케일 균일 그리드의 사용은 또한, 동일한 바디에서 동시에 플레이 중에 다수의 상호 상관된 현상을 수반하는 프로세스의 시뮬레이션을 크게 단순화할 수 있고, 이들 각각은 상이한 유형들의 노드 방정식들을 사용하여 모델링된다. 특히, 하나의 현상은 노드 방정식들이 편미분 방정식들인 이산 시간 연속 방정식들의 세트로 모델링될 수 있는 반면, 다른 현상은 노드 방정식들이 이산 시간 확률 방정식들인 랜덤한 프로세스로서 모델링된다.
이들 2 개의 상이한 유형들의 방정식들에 의해 모델링되는 2 개의 상관된 현상들을 수반하는 시뮬레이션 문제의 일 예로서, 전계로 인해 발생하는 하전 입자들의 랜덤한 입자 드리프트를 고려하자. 입자들이 중성이라면, 또는 입자들이 하전되었지만 어떤 전계도 발생하지 않는다면, 발생하는 것은 확산이다. 점프 빈도가 등방성이고, 앞서 설명된 것과 같이, 그 빈도 f 는 다음과 같이 주어진다:
입자들이 하전되고 전계가 발생한다면, 랜덤한 확산에 부가하여 전계에 의해 구동된 드리프트가 또한 존재한다. 점프 빈도가 더 이상 등방성이 아니고, 다음과 같이 주어진다:
여기서
는 전계로 인한 확산 장벽에 대한 변화이고:
여기서
는 (앞서 기술된 것과 같이, 실제 거리들이 사용될 수도 있는 재료 경계들의 인근에서를 제외하고, 그리드 노드들 간의 균일한 간격과 동일하도록 단순화될 수 있는) 입자 점프 거리이다. 그리드의 소정 차원에서,
는 일 방향에서 포지티브이고 반대 방향에서 네거티브이며, 이에 의해 일 방향에서 점프의 가능성을 반대 방향에서 점프의 가능성보다 크게 만든다. 비등방성 점프 빈도는 드리프트를 발생하는 것이다.
그러나 하전된 입자들의 위치들은 바디에서 전계에 영향을 준다. 푸아송 방정식 (Poisson's Equation) 은 전하 분포 q 로부터 전계 E 및 정전위 포텐셜
을 획득하는데 사용될 수 있다:
여기서
는 x, y 및 z 에 대한 이중 미분이다. 전계 E 는 정전위 포텐셜
의 도함수이다:
각각의 그리드 노드에서의 전계는 편미분 방정식들의 시스템을 푸는 것에 의해 최선으로 계산된다. 따라서, 시뮬레이션 문제는 2 개의 상관된 현상들을 수반하는데, 일 현상은 편미분 방정식들의 시스템으로서 모델링되는 반면, 다른 현상은 이산 시간 확률 방정식들의 시스템에 의해 최선으로 기술된 랜덤 프로세스로서 모델링된다.
도 13 은 이들 2 가지 유형들의 상관된 노드 방정식들이 사용되는, 단계 840 (도 8) 의 플로우 차트 상세이다. 단계 1310 에서, 시뮬레이션의 제 1 시간 단계에서, 전계를 기술하는 편미분 방정식들의 서브-시스템은 시작 값들에 기초하여 연립 방정식들의 세트로서 풀린다. 단계 1312 에서, 입자 확산 및 드리프트를 모델링하는 이산 시간 확률 방정식들의 서브-시스템으로부터의 양들은 단계 1310 에서 편미분 방정식들의 서브-시스템을 푸는 것에 의해 이전에 결정된 양들에 기초하여, KMC 방법을 사용하여 현재 시간 단계에 대하여 결정된다. 앞서 기술된 것과 같은 특정 노드들에 대한 특정 유형들의 임의의 요구되는 재할당은 단계 840 의 다음 반복을 위해 단계 860 의 일부로서 수행될 수 있다. 제 2 및 후속 시간 단계들에서, 단계 1310 에서, 편미분 방정식들의 서브-시스템은 단계 1312 의 바로 선행하는 반복에서 결정된 양들에 기초하여, 연립 방정식들의 세트로서 다시 풀린다. 단계 1312 에서, 입자 확산 및 드리프트를 모델링하는 이산 시간 확률 방정식들의 서브-시스템으로부터의 양들은 단계 1310 의 바로 선행하는 반복에 의해 이전에 결정된 양들 등등에 기초하여, KMC 방법을 사용하여 다시 결정된다. 이러한 유형의 다수의 방정식-유형 시뮬레이션은 바디 상에 부과되고 방정식들의 양자의 유형들에 대하여 사용된 원자 스케일의 균일한 그리드 없이 수행하는 것이 어려울 수 있다. 도 13 의 실시형태의 변형에서, 2 개의 단계들 1310 및 1312 이 상호교환될 수 있는 것을 주목한다. 또한, 이동 경계가 시뮬레이션에서 수반된다면, (도 13 에 파선들로 도시된) 단계 1314 는 KMC 단계 1312 를 뒤따를 수 있다. 단계 1314 에서, 이동 경계는 단지, 현재 시간 단계에서 KMC 단계 1312 에 의해 결정된 관련된 양들의 변화들에 기초하여, 입자 유형들을 고정된 그리드 노드들에 적절히 재할당하는 것에 의해 수용된다.
앞서 기술된 것과 같이, 상이한 방정식들의 서브-시스템들로부터 양들의 결정은 각각의 전체 시간 단계의 분리된, 순차 시간 서브-단계들 동안 발생하는 것으로 고려된다. 이는 서로 섞여진 2 개의 복수의 시간 서브-단계들을 수반하는 것으로 간주될 수 있다. 변형에 있어서, 시간 서브-단계들 중 일부 또는 전부가 병렬로 수행되거나 파이프라인화 수도 있다. 이는 순차적인 것으로 고려되는 각각의 계산에 의해 표현된 시간 서브-단계들이지만 그 계산들이 실제로 수행되는 시간 기간은 아닌 것을 주목한다. 부가적으로, 시간 서브-단계들이 2 이상의 복수의 시간 서브-단계들로 분할되는 것으로 고려된다면, 일-대-일로 섞이는 (또는 2 초과로 존재할 경우에 라운드-로빈되는) 것이 바람직하지만, 이것은 절대적으로 필수적인 것은 아니다. 일 실시형태에서, 2 이상의 복수의 시간 단계들은 서로 비동기적이다. 각각의 노드 방정식은 노드 방정식들의 다른 서브-시스템(들)로부터 획득된 가장 최근의 값들의 함수이고, 이는 심지어 그 값들의 일부가 이전의 1 초과의 정수 시간 단계에서 결정되었던 경우에도 그러하다.
또 다른 실시형태에서, 상이한 방정식들의 서브-시스템들로부터 단일 시간 단계에서 양들의 결정은 서로 독립적으로 발생할 수 있다. 그러한 실시형태에서, 모든 방정식들의 서브-시스템들은 이전의 전체 시간 단계의 종료 동안 계산된 값들에 기초하여 평가될 수 있다. 이러한 실시형태에서, 상이한 방정식들의 서브-시스템들은 상이한 하드웨어에서 병렬로 평가될 수 있고, 시간 서브-단계들 또는 중간 결과들을 추적할 필요가 없을 것이다. 다시 말해서, 이전의 전체 시간 단계의 종료 동안 계산된 값들은 노드 방정식들의 서브-시스템들 모두에 대한 정확한 시작 값들인 것을 가정하는 것은 단순화이지만, 그 단순화는 충분히 짧은 시간 단계들에서 유효할 수 있다.
추가로, 프로세스를 모델링하기 위해 결합하여 사용된 노드 방정식들의 상이한 서브-시스템들은 모두 동일한 노드들의 그리드를 사용하는 것이 바람직하다. 그러나, 변형에서, 노드 방정식들의 상이한 서브-시스템들은 상이한 그리드들을 사용할 수 있지만, 하나의 그리드의 모든 노드들이 균일한 그리드의 혜택들을 희생하는 것을 회피하기 위해 다른 그리드의 노드들과 일치하는 경우 바람직하다. 예를 들어, 방정식들의 하나의 서브-시스템은 그 그리드의 각각의 노드에 대하여 하나의 노드 방정식을 포함할 수도 있지만, 노드 방정식들의 다른 서브-시스템은 제 1 시스템의 그리드의 각각의 차원 (즉, 노드 방정식들의 수의 1/8) 에서 하나의 노드 걸러 오직 하나의 노드 방정식을 가질 수도 있다. 다른 변형들이 분명해질 것이다.
컴퓨터 시스템
도 10 은 그 기술의 실시형태들과 함께 사용하기 위해 적합한 컴퓨터 시스템 (1010) 의 단순화된 블록 다이어그램이다. 예를 들어, 메쉬 모듈 (1210) 및 반복 모듈 (1212) 은 컴퓨터 시스템들 (1010) 을 사용하여 구현될 수도 있다. 컴퓨터 시스템 (1010) 은 통상적으로, 버스 서브시스템 (1012) 을 통해 다수의 주변 디바이스들과 통신하는 적어도 하나의 프로세서 (1014) 를 포함한다. 이들 주변 디바이스들은 메모리 서브시스템 (1026) 과 파일 스토리지 서브시스템 (1028) 을 포함하는 스토리지 서브시스템 (1024), 사용자 인터페이스 입력 디바이스들 (1022), 사용자 인터페이스 출력 디바이스들 (1020), 및 네트워크 인터페이스 서브시스템 (1016) 을 포함할 수도 있다. 입력 및 출력 디바이스들은 컴퓨터 시스템 (1010) 과의 사용자 상호작용을 허용한다. 네트워크 인터페이스 서브시스템 (1016) 은 통신 네트워크 (1018) 에 대한 인터페이스를 포함하여 인터페이스를 외부 네트워크들에 제공하고, 다른 컴포넌트 시스템들에서의 대응하는 인터페이스 디바이스들에 통신 네트워크 (1018) 을 통해 커플링된다. 통신 네트워크 (1018) 는 다수의 상호접속된 컴퓨터 시스템들 및 통신 링크들을 포함할 수도 있다. 이들 통신 링크들은 유선 링크들, 광학 링크들, 무선 링크들, 또는 정보의 통신을 위한 임의의 다른 메커니즘들일 수도 있다. 일 실시형태에서, 통신 네트워크 (1018) 는 인터넷이지만, 통신 네트워크 (1018) 는 임의의 적합한 컴퓨터 네트워크일 수도 있다.
사용자 인터페이스 입력 디바이스들 (1022) 은 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 디바이스, 스캐너, 디스플레이 내에 통합된 터치스크린, 음성 인식 시스템들과 같은 오디오 입력 디바이스들, 마이크로폰들, 및 다른 유형의 입력 디바이스들을 포함할 수도 있다. 일반적으로, 용어 "입력 디바이스" 의 사용은, 입력 정보를 컴퓨터 시스템 (1010) 내로 또는 통신 네트워크 (1018) 상으로 입력하기 위한 모든 가능한 유형의 디바이스들 및 방식들을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스들 (1020) 은 디스플레이 서브시스템, 프린터, 팩스 머신, 또는 오디오 출력 디바이스들과 같은 비-시각적 디스플레이들을 포함할 수도 있다. 디스플레이 서브시스템은 음극선관 (CRT), 액정 디스플레이 (LCD) 와 같은 평판 디바이스, 프로젝션 디바이스, 또는 도 6, 도 7, 도 9a 및 도 9b 의 것들과 같은 가시 이미지를 생성하기 위한 일부 다른 메커니즘을 포함할 수도 있다. 디스플레이 서브시스템은 또한, 비-시각적 디스플레이를, 예컨대 오디오 출력 디바이스들을 통해 제공할 수도 있다. 일반적으로, 용어 "출력 디바이스" 의 사용은, 출력 정보를 컴퓨터 시스템 (1010) 으로부터 사용자로 또는 다른 머신 또는 컴퓨터 시스템으로 출력하기 위한 모든 가능한 유형의 디바이스들 및 방식들을 포함하도록 의도된다. 본원의 기술들에 의해 결정된 양들의 시각화들은 이들 출력 디바이스들의 일부 상에 제시될 수도 있다.
스토리지 서브시스템 (1024) 은 원자-스케일 그리드로 반도체 구조들 및 제작 프로세스 단계들을 모델링할 시 편미분 방정식을 풀기 위한 방법들을 포함하여, 본원에 기술된 실시형태들의 일부 또는 전부의 기능성을 제공하는 기본 프로그래밍 및 데이터 구성물들을 저장한다. 이들 소프트웨어 모듈들은 일반적으로, 프로세서 (1014) 에 의해 본원에 기술된 방법들의 로직을 구현하도록 실행된다.
메모리 서브시스템 (1026) 은 통상적으로, 프로그램 실행 동안 명령들 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리 (RAM) (1030) 및 고정된 명령들이 저장되는 판독 전용 메모리 (ROM) (1032) 를 포함하는 다수의 메모리들을 포함한다. 파일 저장 서브시스템 (1028) 은 프로그램 및 데이터 파일들에 대한 영구적인 저장을 제공하고, 하드 디스크 드라이브, 플로피 디스크 드라이브와 함께 연관된 탈착가능한 매체, CD-ROM 드라이브, 광학 드라이브, 또는 탈착가능한 매체 카트리지들을 포함할 수도 있다. 특정 실시형태들의 기능성을 구현하는 데이터 베이스들 및 모듈들은 파일 저장 서브시스템 (1028) 에 의해 저장될 수도 있다.
버스 서브시스템 (1012) 은 컴퓨터 시스템 (1010) 의 다양한 컴포넌트들 및 서브시스템들이 의도된 것과 같이 서로 통신하게 하기 위한 메커니즘을 제공한다. 버스 서브시스템 (1012) 이 단일 버스로서 개략적으로 도시되지만, 버스 서브시스템의 대안적인 실시형태들은 다수의 버스들을 사용할 수도 있다.
컴퓨터 시스템 (1010) 자체는 퍼스널 컴퓨터, 포터블 컴퓨터, 워크스테이션, 컴퓨터 단말, 네트워크 컴퓨터, 텔레비전, 메인프레임, 또는 임의의 다른 데이터 프로세싱 시스템 또는 사용자 디바이스를 포함하는 다양한 유형들로 이루어질 수 있다. 컴퓨터들 및 네트워크들의 변화무쌍한 특성으로 인해, 도 10 에 도시된 컴퓨터 시스템 (1010) 의 기술은 바람직한 실시형태들을 예시하는 목적들을 위해 오직 특정 예로서 의도된다. 컴퓨터 시스템 (1010) 의 다수의 다른 구성들이 가능하며, 도 10 에 도시된 컴퓨터 시스템보다 더 많거나 적은 컴포넌트들을 갖는다.
조항
다음의 조항들은 본 발명의 양태들의 다양한 예들의 양태들을 기술한다.
조항 1.
바디에서 시간적 프로세스 (temporal process) 를 시뮬레이션하기 위한 시스템으로서, 상기 시스템은
프로세서;
상기 프로세서에 컴퓨터 프로그램 명령들을 제공하도록 구성된 메모리;
상기 바디 상에 노드들의 균일한 그리드를 부과하기 위한 메싱 모듈로서, 상기 그리드는 3개의 독립된 차원들을 가지며 실리콘에서 양자 분리 거리보다 작은 균일한 노드 간격을 가지는, 상기 메싱 모듈; 및
상기 그리드의 복수의 노드들의 각각에 대해 적어도 하나의 노드 방정식을 포함하는 노드 방정식들의 제공된 시스템과 함께 사용하기 위한 반복 모듈로서, 상기 노드들의 각각의 특정 노드에 대한 상기 노드 방정식 또는 방정식들은 상기 프로세스의 제 1 복수의 시간 단계 (time step) 들의 각각을 통해 상기 특정 노드에서 상기 바디의 적어도 하나의 물리량의 거동을 기술하는, 상기 반복 모듈을 포함하고,
상기 반복 모듈은 상기 제 1 복수의 시간 단계들의 종료시 상기 바디의 상기 물리량들의 적어도 서브세트에 대한 값들을 결정하기 위하여 상기 제 1 복수의 시간 단계들을 반복하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 2.
제 1 항에 있어서, 상기 시간적 프로세스는 반도체 제작 프로세스 단계를 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 3.
제 1 항에 있어서, 상기 시간적 프로세스는 반도체 재료에서의 전하 이동을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 4.
제 1 항 내지 제 3 항 중 어느 한 항에 있어서, 상기 균일한 노드 간격은 0.27 나노미터의 10% 이내인 값을 갖는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 5.
제 1 항 내지 제 4 항 중 어느 한 항에 있어서, 상기 균일한 노드 간격은 0.27 나노미터인, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 6.
제 1 항 내지 제 5 항 중 어느 한 항에 있어서, 상기 3개의 독립된 차원들은 상호 직교하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 7.
제 1 항 내지 제 6 항 중 어느 한 항에 있어서, 상기 노드 방정식들의 시스템은, 이산 시간 연속 방정식들의 시스템, 상기 그리드의 각각의 노드에 대한 상기 이산 시간 연속 방정식들 중의 적어도 하나를 포함하고,
상기 반복 모듈은, 상기 제 1 복수의 시간 단계들에서의 각각의 시간 단계에서, 연립 방정식들의 세트로서 상기 연속 방정식들의 시스템을 푸는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 8.
제 1 항 내지 제 6 항 중 어느 한 항에 있어서, 상기 노드 방정식들의 시스템은 이산 시간 확률 방정식들의 시스템을 포함하고,
상기 반복 모듈은, 상기 제 1 복수의 시간 단계들에서의 각각의 시간 단계에서, 상기 복수의 노드들에서의 상기 노드들의 각각의 특정 노드에서 입자량 변화를 상기 특정 노드에 대한 상기 확률 방정식에 따라 무작위로 결정하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 9.
제 8 항에 있어서, 상기 그리드의 상기 복수의 노드들은 상기 그리드의 모든 노드들을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 10.
제 8 항 또는 제 9 항에 있어서, 상기 노드 방정식들의 시스템은, 이산 시간 연속 방정식들의 시스템, 상기 그리드의 각각의 노드에 대한 상기 이산 시간 연속 방정식들 중의 적어도 하나를 더 포함하고,
상기 반복 모듈은 또한, 제 2 복수의 시간 단계들을 반복하고, 상기 제 2 복수의 시간 단계들에서의 각각의 시간 단계에서, 상기 연속 방정식들의 시스템을 연립 방정식들의 세트로서 푸는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 11.
제 1 항 내지 제 6 항 중 어느 한 항에 있어서, 상기 노드 방정식들의 시스템은 상기 제 1 복수의 시간 단계들에서 각각의 시간 단계를 통해 상기 복수의 노드들에서의 상기 노드들의 각각에서 상기 바디의 제 1 물리량의 거동을 각각 기술하는 제 1 노드 방정식들의 시스템, 및 상기 프로세스의 제 2 복수의 시간 단계들에서 각각의 시간 단계를 통해 상기 그리드의 제 2 복수의 노드들에서의 상기 노드들의 각각에서 상기 바디의 제 2 물리량의 거동을 각각 기술하는 제 2 노드 방정식들의 시스템을 포함하고, 상기 제 1 노드 방정식들의 각각은 상기 제 2 물리량의 값들에 의존하고 상기 제 2 노드 방정식들의 각각은 상기 제 1 물리량의 값들의 의존하고,
상기 반복 모듈은 또한 제 2 복수의 시간 단계들의 종료시 상기 바디의 상기 제 2 물리량에 대한 값들을 결정하기 위하여 상기 제 2 복수의 시간 단계들을 반복하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 12.
제 11 항에 있어서, 상기 제 2 복수의 시간 단계들에서의 상기 시간 단계들 중의 적어도 하나는 상기 제 1 복수의 시간 단계들에서의 상기 시간 단계들 전부와 상이한, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 13.
제 11 항에 있어서, 상기 제 2 복수의 시간 단계들은 상기 제 1 복수의 시간 단계들과 섞여지고,
상기 제 2 복수의 시간 단계들의 반복은 상기 제 1 복수의 시간 단계들의 반복과 교번하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 14.
제 11 항 내지 제 13 항 중 어느 한 항에 있어서, 상기 제 1 노드 방정식들의 시스템은, 이산 시간 연속 방정식들의 시스템, 상기 그리드의 각각의 노드에 대한 상기 이산 시간 연속 방정식들 중의 적어도 하나를 포함하고,
상기 제 2 노드 방정식들의 시스템은, 이산 시간 확률 방정식들의 시스템, 상기 그리드의 각각의 노드에 대한 상기 이산 시간 확률 방정식들 중의 적어도 하나를 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 15.
제 1 항 내지 제 14 항 중 어느 한 항에 있어서, 상기 바디는 적어도 제 1 재료 특성에 대한 상이한 값들을 각각 갖는 복수의 상이한 입자 유형들을 포함하고, 상기 노드 방정식들 중의 적어도 하나는 상기 노드들의 각각에서 상기 제 1 재료 특성에 대한 값에 의존하고,
상기 메싱 모듈은 상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 16.
제 15 항에 있어서, 상기 그리드의 제 1 부분은 상기 바디의 제 1 부분에 부과되고, 상기 바디의 제 1 부분은, 상기 균일한 그리드의 제 1 부분에 있는 노드 위치들과 상이한 노드 위치들을 갖는 결정 격자 구조에 배치된 입자들을 갖는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 17.
제 15 항에 있어서, 상기 입자 유형들 중 제 1 유형은 복수의 구성 원자들을 갖는 분자를 포함하고,
상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것은 다수의 상기 노드들의 각각에 상기 분자의 하나의 인스턴스를 할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 18.
제 15 항에 있어서, 상기 그리드의 제 1 부분은 제 1 화합물의 다수의 인스턴스들로 본질적으로 구성되는 상기 바디의 부분에 부과되고, 상기 제 1 화합물은 특정 비로 복수의 구성 원소들을 갖고,
상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것은 상기 특정 비와 동일한 비율로 상기 그리드의 제 1 부분에 있는 상기 노드들에 개별적으로 상기 구성 원소들을 할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 19.
제 15 항에 있어서, 상기 그리드의 제 1 부분은 각각의 입자비로 복수의 유형의 입자들의 혼합물로 본질적으로 구성되는 상기 바디의 부분에 부과되고,
상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것은 상기 혼합물에서와 동일한 비율로 상기 그리드의 제 1 부분에 있는 상기 노드들에 개별적으로 상기 혼합물의 입자들을 할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 20.
제 1 항 내지 제 19 항 중 어느 한 항에 있어서, 상기 그리드에서의 하나 이상의 노드들에서 상기 물리량들의 서브세트에 대해 결정된 사용자 값들에 보고하기 위한 보고 모듈을 더 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 21.
바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템으로서, 상기 바디는 적어도 제 1 재료 특성에 대한 상이한 값을 각각 갖는 복수의 상이한 입자 유형들의 입자들을 포함하고, 상기 시스템은
프로세서;
상기 프로세서에 컴퓨터 프로그램 명령들을 제공하도록 구성된 메모리;
상기 바디 상에 부과된 노드들의 균일한 그리드에서의 복수의 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하기 위한 메싱 모듈로서, 상기 그리드는 3개의 독립된 차원들을 갖고 균일한 노드 간격을 갖는, 상기 메싱 모듈; 및
이산 시간 확률 노드 방정식들의 제공된 시스템, 상기 그리드의 상기 복수의 노드들의 각각에 대한 상기 노드 방정식들 중의 적어도 하나와 함께 사용하기 위한 반복 모듈로서, 상기 각각의 노드에 할당된 상기 입자의 제 1 재료 특성에 대한 값에 의존하여, 상기 노드 방정식들의 각각은 미리결정된 시간 기간 동안 상기 그리드의 상기 각각의 노드에서 일어나는 미리결정된 물리적 이벤트 유형의 확률을 기술하는, 상기 반복 모듈을 포함하고,
상기 반복 모듈은 시뮬레이션 기간에서 제 1 복수의 시간 단계들을 반복하며, 각각의 시간 단계에서 상기 특정 시간 단계의 종료시 상기 복수의 노드들에서의 상기 노드들의 각각에서 상기 바디의 물리량을, 상기 특정 시간 단계의 시작에서 상기 물리량의 값들 및 상기 노드 방정식들에 의존해, 결정하여, 상기 시뮬레이션 기간의 종료시 상기 바디의 상기 물리량에 대한 값들을 결정하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 22.
제 21 항에 있어서, 상기 입자 유형들 중 제 1 유형은 복수의 구성 원자들을 갖는 분자를 포함하고,
상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것은 다수의 상기 노드들의 각각에 상기 분자의 하나의 인스턴스를 할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 23.
제 21 항에 있어서, 상기 그리드의 제 1 부분은 제 1 화합물의 다수의 인스턴스들로 본질적으로 구성되는 상기 바디의 부분에 부과되고, 상기 제 1 화합물은 특정 비로 복수의 구성 원소들을 갖고,
상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것은 상기 특정 비와 동일한 비율로 상기 그리드의 제 1 부분에 있는 상기 노드들에 상기 구성 원소들을 할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 24.
제 21 항에 있어서, 상기 그리드의 제 1 부분은 각각의 입자비로 복수의 유형의 입자들의 혼합물로 본질적으로 구성되는 상기 바디의 부분에 부과되고,
상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것은 상기 혼합물에서와 동일한 비율로 상기 그리드의 제 1 부분에 있는 상기 노드들에 상기 혼합물의 입자들을 할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 25.
제 21 항 내지 제 24 항 중 어느 한 항에 있어서, 상기 그리드의 제 1 부분은 상기 바디의 제 1 부분에 부과되고, 상기 바디의 제 1 부분은, 상기 균일한 그리드의 제 1 부분에 있는 노드 위치들과 상이한 노드 위치들을 갖는 결정 격자 구조에 배치된 입자들을 갖는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 26.
제 25 항에 있어서, 각각의 노드에 상기 바디의 정확히 하나의 입자를 할당하는 것은, 상기 그리드의 제 1 부분에서의 각각의 노드와 연관하여, 상기 그리드의 상기 각각의 노드에 할당된 상기 입자의 바디에서의 실제 위치의 식별을 저장하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 27.
제 26 항에 있어서, 상기 노드 방정식들 중의 하나는 인접 입자까지의 거리에 의존하고,
상기 제 1 복수의 시간 단계들에서의 제 1 시간 단계를 반복함에 있어서, 상기 반복 모듈은, 상기 그리드의 상기 노드들 중의 제 1 노드에 대응하는 상기 노드 방정식에 대해, 인접 입자까지의 거리를 상기 제 1 노드와 상기 인접 입자가 할당되는 상기 그리드 노드 사이의 거리로서 근사하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 28.
제 26 항에 있어서, 상기 노드 방정식들 중의 하나는 인접 입자까지의 거리에 의존하고,
상기 제 1 복수의 시간 단계들에서의 제 1 시간 단계를 반복함에 있어서, 상기 반복 모듈은, 상기 그리드의 상기 노드들 중의 제 1 노드에 대응하는 상기 노드 방정식에 대해, 인접 입자까지의 거리를 상기 제 1 노드와 상기 인접 입자가 할당되는 상기 그리드 노드와 연관하여 저장된 것으로서 실제 입자 위치에 의존하여 결정하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 29.
제 26 항에 있어서, 상기 노드 방정식들 중의 하나는 인접 입자까지의 거리에 의존하고,
상기 제 1 복수의 시간 단계들에서 제 1 시간 단계를 반복함에 있어서 상기 반복 모듈은:
상기 그리드 노드들의 적어도 서브세트에서 각각의 주어진 노드에 대응하는 상기 노드 방정식에 대해, 상기 주어진 노드가 재료 경계의 미리결정된 경계 인근이내에 있는지 여부를 결정하고;
상기 주어진 노드가 재료 경계의 상기 미리결정된 경계 인근 이내에 있는 경우, 상기 주어진 노드에 대응하는 상기 노드 방정식에 대해, 인접 입자까지의 거리를, 상기 주어진 노드와 상기 인접 입자가 할당된 상기 노드와 연관하여 저장된 것으로서 실제 입자 위치에 의존하여 결정하고; 그리고
상기 주어진 노드가 상기 미리결정된 경계 인근 이내에 있지 않은 경우, 상기 주어진 노드에 대응하는 상기 노드 방정식에 대해, 상기 인접 입자까지의 거리를, 상기 주어진 노드와 상기 인접 입자가 할당된 상기 그리드 노드 사이의 거리로서 근사하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 30.
제 21 항 내지 제 29 항 중 어느 한 항에 있어서, 상기 그리드에서의 하나 이상의 노드들에서 상기 물리량들의 서브세트에 대해 결정된 사용자 값들에 보고하기 위한 보고 모듈을 더 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 31.
복수의 상이한 입자 유형들을 갖는 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템으로서, 각각의 입자 유형은 적어도 제 1 재료 특성에 대한 상이한 값을 갖고, 상기 시스템은
프로세서;
상기 프로세서에 컴퓨터 프로그램 명령들을 제공하도록 구성된 메모리;
상기 바디 상에 노드들의 균일한 그리드를 부과하기 위한 메싱 모듈로서, 상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것을 포함하고, 상기 그리드는 3개의 독립된 차원들을 가지며 균일한 노드 간격을 갖는, 상기 메싱 모듈; 및
상기 그리드의 복수의 노드들의 각각에 대해 적어도 하나의 노드 방정식을 포함하는 노드 방정식들의 제공된 시스템과 함께 사용하기 위한 반복 모듈로서, 상기 노드들의 각각의 특정 노드에 대한 노드 방정식 또는 방정식들은 상기 프로세스의 제 1 복수의 시간 단계들의 각각을 통해 상기 특정 노드에서 상기 제 1 재료 특성에 대한 값에 의존하여 상기 특정 노드에서 상기 바디의 적어도 하나의 물리량의 거동을 기술하는, 상기 반복 모듈을 포함하고,
상기 반복 모듈은 상기 제 1 복수의 시간 단계들의 종료시 상기 바디의 상기 물리량들의 적어도 서브세트에 대한 값들을 결정하기 위하여 상기 제 1 복수의 시간 단계들을 반복하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 32.
제 31 항에 있어서, 제 1 복수의 시간 단계들을 반복하는 것은 상기 제 1 복수의 시간 단계들에서 상기 시간 단계들의 대상 하나에 대해,
상기 그리드의 상기 노드들 중의 대상 하나의 인근에 상기 그리드의 하나 이상의 노드들에서 입자량 변화를 결정하는 것; 및
상기 입자량 변화에 의존하여 선택된 상기 바디의 입자를 상기 대상 노드에 재할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 33.
제 31 항에 있어서, 상기 그리드의 상기 복수의 노드들의 각각에 대한 상기 노드 방정식들은 미리결정된 시간 기간 동안 상기 그리드의 상기 각각의 노드에서 일어나는 미리결정된 물리 이벤트 유형의 확률을 기술하는 이산 시간 확률 방정식이며, 상기 미리결정된 물리 이벤트 유형은 상기 그리드의 하나 이상의 노드들에서 입자량 변화를 일으키는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 34.
제 31 항 내지 제 33 항 중 어느 한 항에 있어서, 상기 그리드의 제 1 부분은 상기 바디의 제 1 부분에 부과되고, 상기 바디의 제 1 부분은, 상기 균일한 그리드의 제 1 부분에 있는 노드 위치들과 상이한 노드 위치들을 갖는 결정 격자 구조에 배치된 입자들을 갖는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 35.
제 31 항 내지 제 34 항 중 어느 한 항에 있어서, 상기 입자 유형들 중 제 1 유형은 복수의 구성 원자들을 갖는 분자를 포함하고,
상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것은 다수의 상기 노드들의 각각에 상기 분자의 하나의 인스턴스를 할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 36.
제 31 항 내지 제 34 항 중 어느 한 항에 있어서, 상기 그리드의 제 1 부분은 제 1 화합물의 다수의 인스턴스들로 본질적으로 구성되는 상기 바디의 부분에 부과되고, 상기 제 1 화합물은 특정 비로 복수의 구성 원소들을 갖고,
상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것은 상기 특정 비와 동일한 비율로 상기 그리드의 제 1 부분에 있는 상기 노드들에 개별적으로 상기 구성 원소들을 할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 37.
제 31 항 내지 제 34 항 중 어느 한 항에 있어서, 상기 그리드의 제 1 부분은 각각의 입자비로 복수의 유형의 입자들의 혼합물로 본질적으로 구성되는 상기 바디의 부분에 부과되고,
상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것은 상기 혼합물에서와 동일한 비율로 상기 그리드의 제 1 부분에 있는 상기 노드들에 개별적으로 상기 혼합물의 입자들을 할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 38.
제 31 항 내지 제 37 항 중 어느 한 항에 있어서, 상기 그리드에서의 하나 이상의 노드들에서 상기 물리량들의 서브세트에 대해 결정된 사용자 값들에 보고하기 위한 보고 모듈을 더 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하기 위한 시스템.
조항 39.
바디에서 시간적 프로세스를 시뮬레이션하는 방법으로서,
컴퓨터 시스템에서, 상기 바디 상에 노드들의 균일한 그리드를 부과하는 단계로서, 상기 그리드는 3개의 독립된 차원들을 가지며 실리콘에서 양자 분리 거리보다 작은 균일한 노드 간격을 가지는, 상기 균일한 그리드를 부과하는 단계;
상기 그리드의 복수의 노드들의 각각에 대해 적어도 하나의 노드 방정식을 포함하는 노드 방정식들의 시스템을 제공하는 단계로서, 상기 노드들의 각각의 특정 노드에 대한 상기 노드 방정식 또는 방정식들은 상기 프로세스의 제 1 복수의 시간 단계들의 각각을 통해 상기 특정 노드에서 상기 바디의 적어도 하나의 물리량의 거동을 기술하는, 상기 노드 방정식들의 시스템을 제공하는 단계; 및
상기 컴퓨터 시스템이 상기 제 1 복수의 시간 단계들의 종료시 상기 바디의 상기 물리량들의 적어도 서브세트에 대한 값들을 결정하기 위하여 상기 제 1 복수의 시간 단계들을 반복하는 단계를 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 40.
제 39 항에 있어서, 상기 균일한 노드 간격은 0.27 나노미터의 10% 이내인 값인, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 41.
제 39 항에 있어서, 상기 균일한 노드 간격은 0.27 나노미터인, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 42.
제 39 항 내지 제 41 항 중 어느 한 항에 있어서, 상기 노드 방정식들의 시스템은 이산 시간 확률 방정식들의 시스템을 포함하고,
제 1 복수의 시간 단계들을 반복하는 단계는, 상기 제 1 복수의 시간 단계들에서의 각각의 시간 단계에서, 상기 복수의 노드들에서의 상기 노드들의 각각의 특정 노드에서 입자량 변화를 상기 특정 노드에 대한 상기 확률 방정식에 따라 무작위로 결정하는 단계를 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 43.
제 42 항에 있어서, 상기 노드 방정식들의 시스템은, 이산 시간 연속 방정식들의 시스템, 상기 그리드의 각각의 노드에 대한 상기 이산 시간 연속 방정식들 중의 적어도 하나를 더 포함하고,
상기 컴퓨터 시스템이 제 2 복수의 시간 단계들을 반복하는 단계, 및 상기 제 2 복수의 시간 단계들에서의 각각의 시간 단계에서, 상기 연속 방정식들의 시스템을 연립 방정식들의 세트로서 푸는 단계를 더 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 44.
제 39 항 내지 제 41 항 중 어느 한 항에 있어서, 상기 노드 방정식들의 시스템은 상기 제 1 복수의 시간 단계들에서 각각의 시간 단계를 통해 상기 복수의 노드들에서의 상기 노드들의 각각에서 상기 바디의 제 1 물리량의 거동을 각각 기술하는 제 1 노드 방정식들의 시스템, 및 상기 프로세스의 제 2 복수의 시간 단계들에서 각각의 시간 단계를 통해 상기 그리드의 제 2 복수의 노드들에서의 상기 노드들의 각각에서 상기 바디의 제 2 물리량의 거동을 각각 기술하는 제 2 노드 방정식들의 시스템을 포함하고, 상기 제 1 노드 방정식들의 각각은 상기 제 2 물리량의 값들에 의존하고 상기 제 2 노드 방정식들의 각각은 상기 제 1 물리량의 값들의 의존하고,
상기 컴퓨터 시스템이 상기 제 2 복수의 시간 단계들의 종료시 상기 바디의 상기 제 2 물리량에 대한 값들을 결정하기 위하여 상기 제 2 복수의 시간 단계들을 반복하는 단계를 더 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 45.
제 39 항 내지 제 44 항 중 어느 한 항에 있어서, 상기 바디는 적어도 제 1 재료 특성에 대한 상이한 값들을 각각 갖는 복수의 상이한 입자 유형들을 포함하고, 상기 노드 방정식들 중의 적어도 하나는 상기 노드들의 각각에서 상기 제 1 재료 특성에 대한 값에 의존하고,
상기 바디 상에 노드들의 균일한 그리드를 부과하는 단계는 상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 단계를 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 46.
제 45 항에 있어서, 상기 그리드의 제 1 부분은 상기 바디의 제 1 부분에 부과되고, 상기 바디의 제 1 부분은, 상기 균일한 그리드의 제 1 부분에 있는 노드 위치들과 상이한 노드 위치들을 갖는 결정 격자 구조에 배치된 입자들을 갖는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 47.
제 39 항 내지 제 46 항 중 어느 한 항에 있어서, 상기 그리드에서의 하나 이상의 노드들에서 상기 물리량들의 서브세트에 대해 결정된 사용자 값들에 보고하는 단계를 더 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 48.
바디에서 시간적 프로세스를 시뮬레이션하는 방법으로서, 상기 바디는 적어도 제 1 재료 특성에 대한 상이한 값을 각각 갖는 복수의 상이한 입자 유형들의 입자들을 포함하고, 상기 방법은
컴퓨터 시스템에서, 상기 바디 상에 부과된 노드들의 균일한 그리드에서의 복수의 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 단계로서, 상기 그리드는 3개의 독립된 차원들을 갖고 균일한 노드 간격을 갖는, 상기 바디의 정확히 하나의 입자를 할당하는 단계;
이산 시간 확률 노드 방정식들의 시스템, 상기 그리드의 상기 복수의 노드들의 각각에 대한 상기 노드 방정식들 중의 적어도 하나를 제공하는 단계로서, 상기 각각의 노드에 할당된 상기 입자의 제 1 재료 특성에 대한 값에 의존하여, 상기 노드 방정식들의 각각은 미리결정된 시간 기간 동안 상기 그리드의 상기 각각의 노드에서 일어나는 미리결정된 물리적 이벤트 유형의 확률을 기술하는, 상기 노드 방정식들 중의 적어도 하나를 제공하는 단계; 및
상기 컴퓨터 시스템은 시뮬레이션 기간에서 제 1 복수의 시간 단계들을 반복하며, 각각의 시간 단계에서, 상기 특정 시간 단계의 종료시 상기 복수의 노드들에서의 상기 노드들의 각각에서 상기 바디의 물리량을, 상기 특정 시간 단계의 시작에서 상기 물리량의 값들 및 상기 노드 방정식들에 의존해, 결정하여, 상기 시뮬레이션 기간의 종료시 상기 바디의 상기 물리량에 대한 값들을 결정하는 단계를 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 49.
제 48 항에 있어서, 상기 그리드의 제 1 부분은 상기 바디의 제 1 부분에 부과되고, 상기 바디의 제 1 부분은, 상기 균일한 그리드의 제 1 부분에 있는 노드 위치들과 상이한 노드 위치들을 갖는 결정 격자 구조에 배치된 입자들을 갖는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 50.
제 49 항에 있어서, 각각의 노드에 상기 바디의 정확히 하나의 입자를 할당하는 단계는, 상기 그리드의 제 1 부분에서의 각각의 노드와 연관하여, 상기 그리드의 상기 각각의 노드에 할당된 상기 입자의 바디에서의 실제 위치의 식별을 상기 컴퓨터 시스템에 저장하는 단계를 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 51.
제 50 항에 있어서, 상기 노드 방정식들 중의 하나는 인접 입자까지의 거리에 의존하고,
상기 제 1 복수의 시간 단계들에서 제 1 시간 단계를 반복함에 있어서 상기 컴퓨터 시스템은:
상기 그리드 노드들의 적어도 서브세트에서 각각의 주어진 노드에 대응하는 상기 노드 방정식에 대해, 상기 주어진 노드가 재료 경계의 미리결정된 경계 인근이내에 있는지 여부를 결정하고;
상기 주어진 노드가 재료 경계의 상기 미리결정된 경계 인근 이내에 있는 경우, 상기 주어진 노드에 대응하는 상기 노드 방정식에 대해, 인접 입자까지의 거리를, 상기 주어진 노드와 상기 인접 입자가 할당된 상기 노드와 연관하여 저장된 것으로서 실제 입자 위치에 의존하여 결정하고; 그리고
상기 주어진 노드가 상기 미리결정된 경계 인근 이내에 있지 않은 경우, 상기 주어진 노드에 대응하는 상기 노드 방정식에 대해, 상기 인접 입자까지의 거리를, 상기 주어진 노드와 상기 인접 입자가 할당된 상기 그리드 노드 사이의 거리로서 근사하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 52.
복수의 상이한 입자 유형들을 갖는 바디에서 시간적 프로세스를 시뮬레이션하는 방법으로서, 각각의 입자 유형은 적어도 제 1 재료 특성에 대한 상이한 값을 갖고, 상기 방법은
컴퓨터 시스템에서, 상기 바디 상에 노드들의 균일한 그리드를 부과하는 단계로서, 상기 노드들의 각각에 상기 바디의 정확히 하나의 입자를 할당하는 것을 포함하고, 상기 그리드는 3개의 독립된 차원들을 가지며 균일한 노드 간격을 갖는, 상기 균일한 그리드를 부과하는 단계;
상기 그리드의 복수의 노드들의 각각에 대해 적어도 하나의 노드 방정식을 포함하는 노드 방정식들의 시스템을 제공하는 단계로서, 상기 노드들의 각각의 특정 노드에 대한 상기 노드 방정식 또는 방정식들은 상기 프로세스의 제 1 복수의 시간 단계들의 각각을 통해 상기 특정 노드에서 상기 제 1 재료 특성에 대한 값에 의존하여 상기 특정 노드에서 상기 바디의 적어도 하나의 물리량의 거동을 기술하는, 상기 노드 방정식들의 시스템을 제공하는 단계; 및
상기 컴퓨터 시스템이 상기 제 1 복수의 시간 단계들의 종료시 상기 바디의 상기 물리량들의 적어도 서브세트에 대한 값들을 결정하기 위하여 상기 제 1 복수의 시간 단계들을 반복하는 단계를 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 53.
제 52 항에 있어서, 제 1 복수의 시간 단계들을 반복하는 단계는 상기 제 1 복수의 시간 단계들에서 상기 시간 단계들의 대상 하나에 대해,
상기 그리드의 상기 노드들 중의 대상 하나의 인근에 상기 그리드의 하나 이상의 노드들에서 입자량 변화를 결정하는 것; 및
상기 입자량 변화에 의존하여 선택된 상기 바디의 입자를 상기 대상 노드에 재할당하는 것을 포함하는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 54.
제 52 항에 있어서, 상기 그리드의 상기 복수의 노드들의 각각에 대한 상기 노드 방정식들은 미리결정된 시간 기간 동안 상기 그리드의 상기 각각의 노드에서 일어나는 미리결정된 물리 이벤트 유형의 확률을 기술하는 이산 시간 확률 방정식이며, 상기 미리결정된 물리 이벤트 유형은 상기 그리드의 하나 이상의 노드들에서 입자량 변화를 일으키는, 바디에서 시간적 프로세스를 시뮬레이션하는 방법.
조항 55.
제 39 항 내지 제 47 항 중 어느 한 항의 단계들을 수행하기 위한 로직을 정의하는 복수의 소프트웨어 코드 부분들을, 비일시적 방식으로 저장한, 컴퓨터 판독가능 매체.
조항 56.
제 48 항 내지 제 51 항 중 어느 한 항의 단계들을 수행하기 위한 로직을 정의하는 복수의 소프트웨어 코드 부분들을, 비일시적 방식으로 저장한, 컴퓨터 판독가능 매체.
조항 57.
제 52 항 또는 제 53 항의 단계들을 수행하기 위한 로직을 정의하는 복수의 소프트웨어 코드 부분들을, 비일시적 방식으로 저장한, 컴퓨터 판독가능 매체.
조항 58.
제 39 항 내지 제 47 항 중 어느 한 항에 기재된 단계들을 수행하는 수단을 포함하는 시스템.
조항 59.
제 48 항 내지 제 51 항 중 어느 한 항에 기재된 단계들을 수행하는 수단을 포함하는 시스템.
조항 60.
제 52 항 또는 제 53 항에 기재된 단계들을 수행하는 수단을 포함하는 시스템.
본원에서 사용된, 주어진 이벤트 또는 값은 선행 이벤트 또는 값이 주어진 이벤트 또는 값에 영향을 미친 경우, 또는 선행 이벤트 또는 값의 함수인 경우 그러한 선행 이벤트 또는 값에 "응답적" 이다. 개재하는 프로세싱 엘리먼트, 단계 또는 시간 기간이 존재하면, 주어진 이벤트 또는 값은 여전히 선행 이벤트 또는 값에 "응답적" 일 수 있다. 개재하는 프로세싱 엘리먼트 또는 단계가 하나 보다 많은 이벤트 또는 값을 결합하면, 프로세싱 엘리먼트 또는 단계의 신호 출력은 이벤트 또는 값 입력들의 각각에 "반응적"인 것으로 고려된다. 주어진 이벤트 또는 값이 선행 이벤트 또는 값과 동일하면, 이것은 단지 주어진 이벤트 또는 값이 여전히 선행 이벤트 또는 값에 "응답적" 인 것으로 고려되는 디제너레이트 케이스 (degenerate case) 이다. 다른 이벤트 또는 값에 대한 주어진 이벤트 또는 값의 "의존성" 이 유사하게 정의된다.
본원에서 사용된, 정보 항목의 "식별" 은 반드시 그 정보 항목의 직접적인 명세 (specification) 를 필요로 하는 것은 아니다. 정보는 하나 이상의 간접 계층을 통해 실제 정보를 단순히 참조하거나, 또는 실제 정보 항목을 결정하기에 함께 충분한 하나 이상의 상이한 정보 항목들을 식별함으로써 필드에서 "식별"될 수 있다. 또한, "나타내는"이라는 용어는 본 명세서에서 "식별"과 동일한 의미로 사용된다.
본 출원인은 본 명세서에 기술된 각각의 개별적인 특징 및 2 이상의 그러한 특징의 임의의 조합을, 그러한 특징 또는 특징의 조합이 본원에 개시된 임의의 문제를 해결하는지 여부에 관계없이, 그리고 청구 범위의 범위를 제한하지 않고서, 그러한 특징 또는 조합이 당업자의 공통의 일반 지식에 비추어 본 명세서 전체에 기초하여 수행될 수 있는 정도로 별개로 개시한다. 본 출원인은 본 발명의 양태들이 그러한 임의의 특징 또는 특징들의 조합으로 이루어질 수 있음을 나타낸다. 전술한 설명의 관점에서, 본 발명의 범위 내에서 다양한 변형이 이루어질 수 있음은 당업자에게 자명할 것이다.
본 발명의 바람직한 실시형태들에 대한 이전의 설명은 예시 및 설명을 위하여 제공되었다. 이것은 본 발명을 개시된 바로 그 형태들로 한정하거나 또는 망라하는 것으로 의도되지 않았다. 명백하게, 많은 수정 및 변화들이 당업자에게 분명해질 것이다. 예를 들어, 일부 실시형태에서는 일정한 지속시간 시간 단계가 유용하지만, 다른 실시형태는 시뮬레이션 과정 중에 변화하는 시간 단계를 사용할 수도 있다. 특히, 그리고 비한정적으로, 설명되거나, 제안되거나 또는 이 특허 출원의 배경 부분에서 참조에 의해 원용된 어느 그리고 모든 변형들은 구체적으로 본 발명의 실시형태들의 여기의 설명들로 참조에 의해 원용된다. 또한, 임의의 일 실시형태와 관련하여 본원에 설명, 제시 또는 참조에 의해 원용된 임의의 그리고 모든 변형들은 또한 모든 다른 실시 형태들에 대해 교시된 것으로 고려되어야 한다. 여기에 설명된 실시형태들은 본 발명의 원리들 및 그의 실제 애플리케이션을 가장 잘 설명하기 위하여 선택되고 기재되어 있고, 그에 의해 당업자가 여러 실시형태들을 위하여 그리고 고려된 특정 용도에 알맞은 다양한 변경들로 본 발명을 이해하는 것을 가능하게 한다. 본 발명의 범위는 다음 청구항들 및 그의 등가물들에 의해 정의되도록 의도된다.