KR20140139343A - 시뮬레이션 시스템 및 방법, 상기 시스템을 포함하는 컴퓨팅 시스템 - Google Patents

시뮬레이션 시스템 및 방법, 상기 시스템을 포함하는 컴퓨팅 시스템 Download PDF

Info

Publication number
KR20140139343A
KR20140139343A KR1020130059878A KR20130059878A KR20140139343A KR 20140139343 A KR20140139343 A KR 20140139343A KR 1020130059878 A KR1020130059878 A KR 1020130059878A KR 20130059878 A KR20130059878 A KR 20130059878A KR 20140139343 A KR20140139343 A KR 20140139343A
Authority
KR
South Korea
Prior art keywords
input
value
scatter
boundary
simulation
Prior art date
Application number
KR1020130059878A
Other languages
English (en)
Other versions
KR102061763B1 (ko
Inventor
이진영
한창호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020130059878A priority Critical patent/KR102061763B1/ko
Priority to TW103109064A priority patent/TWI629642B/zh
Priority to US14/215,577 priority patent/US9846753B2/en
Priority to JP2014097682A priority patent/JP6381962B2/ja
Priority to CN201410213272.XA priority patent/CN104182268B/zh
Publication of KR20140139343A publication Critical patent/KR20140139343A/ko
Application granted granted Critical
Publication of KR102061763B1 publication Critical patent/KR102061763B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

시뮬레이션 시스템 및 방법, 시스템을 포함하는 컴퓨팅 시스템 이 제공된다. 시뮬레이션 방법은, 적어도 하나의 프로세서를 포함하는 컴퓨팅 시스템을 이용한 시뮬레이션 방법으로서, 입력의 NP(Nominal Point)에 대한 함수 값이 제1 값인 경우 입력에 대해 제1 시뮬레이션을 수행하고, 입력의 NP에 대한 함수 값이 제1 값과 다른 제2 값인 경우 입력에 대해 제2 시뮬레이션을 수행하는 것을 포함하되, 제2 시뮬레이션을 수행하는 것은, (a) 제2 값에 대한 입력 산포의 경계를 제1 산포값으로 설정하고, (b) 설정된 산포 경계 내에서 입력 샘플을 생성하고, (c) 생성된 입력 샘플에 대해 기계 학습을 수행함으로써 입력에 대한 WCP(Worst Case Point)를 산출하고, (d) 입력 산포의 경계가 최소 임계값이 될 때까지 입력 산포의 경계를 변화시켜가며 (a) 내지 (c)를 반복하는 것을 포함한다.

Description

시뮬레이션 시스템 및 방법, 상기 시스템을 포함하는 컴퓨팅 시스템{Simulation system and method thereof, computing system comprising the simulation system}
본 발명은 시뮬레이션 시스템 및 방법, 상기 시스템을 포함하는 컴퓨팅 시스템에 관한 것이다.
자연 현상, 수리 모델 또는 일정 이상의 복잡도를 지니는 시스템(예를 들어, 전달함수(Transfer function))이 존재할 때, 입력에 따른 출력의 관계를 해석하는 일은 시스템을 이해하는데 필수적이다. 현실적인 시스템의 해석을 위해 계측된 산포 입력을 적용시켰을 때, 출력(Pass, Fail)의 확률을 분석하면 해당 시스템의 실제 구현 없이 시뮬레이션 기법으로 신뢰성을 해석할 수 있다.
하지만, 시스템의 복잡도가 증가할수록, 1회 시뮬레이션 시 발생하는 컴퓨팅 자원 및 시간 비용이 크고, 슈퍼 컴퓨팅을 통하더라도 1년 안에 얻을 수 없는 상황이 발생한다. 이는 해석하고자 하는 산포의 범위가 중심 값 대비 6σ 이상이 되면, 최소 수십억 회의 시뮬레이션이 요구되기 때문이다.
본 발명이 해결하고자 하는 기술적 과제는 입력에 대한 분석 속도와 신뢰성이 향상된 시뮬레이션 방법을 제공하고자 하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 입력에 대한 분석 속도와 신뢰성이 향상된 시뮬레이션 시스템을 제공하고자 하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 상기 시뮬레이션 시스템을 채용한 컴퓨팅 시스템을 제공하고자 하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 시뮬레이션 방법은, 적어도 하나의 프로세서를 포함하는 컴퓨팅 시스템을 이용한 시뮬레이션 방법으로서, 입력의 NP(Nominal Point)에 대한 함수 값이 제1 값인 경우 입력에 대해 제1 시뮬레이션을 수행하고, 입력의 NP에 대한 함수 값이 제1 값과 다른 제2 값인 경우 입력에 대해 제2 시뮬레이션을 수행하는 것을 포함하되, 제2 시뮬레이션을 수행하는 것은, (a) 제2 값에 대한 입력 산포의 경계를 제1 산포값으로 설정하고, (b) 설정된 산포 경계 내에서 입력 샘플을 생성하고, (c) 생성된 입력 샘플에 대해 기계 학습을 수행함으로써 입력에 대한 WCP(Worst Case Point)를 산출하고, (d) 입력 산포의 경계가 최소 임계값이 될 때까지 입력 산포의 경계를 변화시켜가며 (a) 내지 (c)를 반복하는 것을 포함한다.
본 발명의 몇몇 실시예에서, 상기 제1 시뮬레이션은 몬테 카를로 시뮬레이션(Monte Carlo Simulation)을 포함할 수 있다. 그리고, 본 발명의 몇몇 실시예에서, 상기 제2 시뮬레이션은 주요사건 샘플링(Importance Sampling)을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것은, 상기 설정된 산포 경계 내에서 균일 산포 샘플링(Uniform Distribution Sampling)을 통해 상기 입력 샘플을 생성하는 것을 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 시뮬레이션 방법은, 적어도 하나의 프로세서를 포함하는 컴퓨팅 시스템을 이용한 시뮬레이션 방법으로서, (a) 입력의 산포 경계를 제1 산포값으로 설정하고, (b) 설정된 산포 경계 내에서 입력 샘플을 생성하고, (c) 생성된 입력 샘플 각각에 대해 함수 값을 산출하고, (d) 입력 샘플과 함수 값에 대해 기계 학습(machine learning)을 수행하여 경계면을 산출하고, (e) 경계면 상에서 입력에 대한 WCP(Worst Case Point)를 탐색하고, (f) 입력의 산포 경계가 최소 임계값이 될 때까지 입력 산포의 경계를 변화시켜가며 (a) 내지 (e)를 반복하는 것을 포함한다.
본 발명의 몇몇 실시예에서, 상기 입력 산포의 경계를 변화시키는 것은, 상기 입력 산포의 경계를 상기 제1 산포값에서 제2 산포값으로 변화시키는 것을 포함할 수 있다. 이 때, 상기 제2 산포값은 상기 제1 산포값 보다 작을 수 있다. 또한 이 때, 상기 최소 임계값, 제1 산포값, 및 제2 산포값 중 적어도 하나는 사용자에 의해 설정될 수 있는 값일 수 있다.
본 발명의 몇몇 실시예에서, 상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것은, 상기 설정된 산포 경계 내에서 균일 산포 샘플링(Uniform Distribution Sampling)을 통해 상기 입력 샘플을 생성하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 입력 샘플과 함수 값에 대해 기계 학습(machine learning)을 수행하여 경계면을 산출하는 것은, 상기 입력 샘플과 함수 값에 대해 SVM(Support Vector Machine)을 이용하여 상기 경계면을 산출하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 경계면 상에서 상기 입력에 대한 WCP를 탐색하는 것은, EA(Evolutionary Algorithm)를 이용하여 상기 WCP를 탐색하는 것을 포함할 수 있다.
상기 다른 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 시뮬레이션 시스템은, 제공받은 산포의 중심을 바탕으로 미리 정한 시뮬레이션을 수행하는 메인 시뮬레이션 모듈, 입력의 NP(Nominal Point)에 대한 함수 값이 제1 값인 경우 상기 NP를 상기 메인 시뮬레이션 모듈에 제공하고, 상기 입력의 NP에 대한 함수 값이 상기 제1 값과 다른 제2 값인 경우WCP(Worst Case Point) 탐색 모듈에 상기 입력을 제공하는 판단 모듈, 및 상기 제2 값에 대한 입력 산포의 경계를 변화시키며 상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것을 반복함으로써 상기 입력에 대한 WCP를 산출하고, 이를 상기 메인 시뮬레이션 모듈에 제공하는 WCP 탐색 모듈을 포함한다.
본 발명의 몇몇 실시예에서, 상기 미리 정한 시뮬레이션은 몬테 카를로 시뮬레이션(Monte Carlo Simulation)을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것은, 상기 설정된 산포 경계 내에서 균일 산포 샘플링(Uniform Distribution Sampling)을 통해 상기 입력 샘플을 생성하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 WCP 탐색 모듈이, 상기 제2 값에 대한 입력 산포의 경계를 변화시키며 상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것을 반복함으로써 상기 입력에 대한 WCP를 산출하는 것은, (a) 입력의 산포 경계를 제1 산포값으로 설정하고, (b) 상기 설정된 산포 경계 내에서 입력 샘플을 생성하고, (c) 상기 생성된 입력 샘플 각각에 대해 함수 값을 산출하고, (d) 입력 샘플과 함수 값에 대해 기계 학습(machine learning)을 수행하여 경계면을 산출하고, (e) 상기 경계면 상에서 상기 입력에 대한 WCP(Worst Case Point)를 탐색하고, (f) 상기 입력의 산포 경계가 최소 임계값이 될 때까지 상기 입력 산포의 경계를 변화시켜가며 상기 (a) 내지 (e)를 반복하는 것을 포함할 수 있다.
이 때, 본 발명의 몇몇 실시예에서, 상기 입력 산포의 경계를 변화시키는 것은, 상기 입력 산포의 경계를 상기 제1 산포값에서 제2 산포값으로 변화시키는 것을 포함할 수 있다. 이 때, 상기 제2 산포값은 상기 제1 산포값 보다 작을 수 있다. 또한 이 때, 상기 최소 임계값, 제1 산포값, 및 제2 산포값 중 적어도 하나는 사용자에 의해 설정될 수 있는 값일 수 있다.
본 발명의 몇몇 실시예에서, 상기 입력 샘플과 함수 값에 대해 기계 학습(machine learning)을 수행하여 경계면을 산출하는 것은, 상기 입력 샘플과 함수 값에 대해 SVM(Support Vector Machine)을 이용하여 상기 경계면을 산출하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 경계면 상에서 상기 입력에 대한 WCP를 탐색하는 것은, EA(Evolutionary Algorithm)를 이용하여 상기 WCP를 탐색하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 메인 시뮬레이션 모듈, 판단 모듈, 및 WCP 탐색 모듈은 적어도 하나의 프로세서에 의해 구동될 수 있다.
상기 또 다른 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 컴퓨팅 시스템은, 적어도 하나의 프로세서, 및 상기 프로세서를 이용하여 입력에 대한 시뮬레이션을 수행하는 프로그램 코드가 저장된 저장부를 포함하되, 입력의 NP(Nominal Point)에 대한 함수 값이 제1 값인 경우 상기 입력에 대해 제1 시뮬레이션을 수행하고, 상기 입력의 NP에 대한 함수 값이 상기 제1 값과 다른 제2 값인 경우 상기 입력에 대해 제2 시뮬레이션을 수행하는 것을 포함하되, 상기 제2 시뮬레이션을 수행하는 것은, (a) 상기 제2 값에 대한 입력 산포의 경계를 제1 산포값으로 설정하고, (b) 상기 설정된 산포 경계 내에서 입력 샘플을 생성하고, (c) 상기 생성된 입력 샘플에 대해 기계 학습을 수행함으로써 상기 입력에 대한 WCP(Worst Case Point)를 산출하고, (d) 상기 입력 산포의 경계가 최소 임계값이 될 때까지 상기 입력 산포의 경계를 변화시켜가며 상기 (a) 내지 (c)를 반복하는 것을 포함한다.
본 발명의 몇몇 실시예에서, 상기 제1 시뮬레이션은 몬테 카를로 시뮬레이션(Monte Carlo Simulation)을 포함하고, 상기 제2 시뮬레이션은 주요사건 샘플링(Importance Sampling)을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 입력 산포의 경계를 변화시키는 것은, 상기 입력 산포의 경계를 상기 제1 산포값으로부터 제2 산포값으로 변화시키는 것을 포함하고, 상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것은, 상기 설정된 산포 경계 내에서 균일 산포 샘플링(Uniform Distribution Sampling)을 통해 상기 입력 샘플을 생성하는 것을 포함할 수 있다. 이 때, 상기 제2 산포값은 상기 제1 산포값 보다 작을 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템의 블록도이다.
도 2는 도 1에 도시된 시뮬레이션 시스템의 상세 블록도이다.
도 3은 본 발명의 몇몇 실시예에 따른 시뮬레이션 방법을 설명하기 위한 순서도이다.
도 4a 내지 도 10은 본 발명의 몇몇 실시예에 따른 시뮬레이션 방법을 설명하기 위한 도면들이다.
도 11은 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템이 채용된 컴퓨팅 시스템의 일 예이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템의 블록도이다. 도 2는 도 1에 도시된 시뮬레이션 시스템의 상세 블록도이다.
도 1을 참조하면, 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템(100)에는 임의의 평균(μ)과 편차(σ)를 갖는 n(여기서, n은 자연수)개의 입력(X1~Xn)이 제공될 수 있다. 여기서, n개의 입력은 특정 회로를 분석하는데 필요한 n개의 입력 변수일 수 있다.
예를 들어, 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템(100)이 도 1에 도시된 것과 같이 DRAM(Dynamic Random Access Memory) 셀의 수율을 분석하는 시스템이라고 한다면, 시뮬레이션 시스템(100)에는 DRAM 셀과 관련된 복수의 파라미터들(예를 들어, 넷 리스트(net list), 특성 값 등)과 DRAM 셀의 특성을 결정하는 임의의 평균(μ)과 편차(σ)를 갖는 n개의 입력(X1~Xn)이 제공될 수 있다. 이러한 n개의 입력(X1~Xn)의 예로는 셀 트랜지스터(CTR)의 게이트 산화막의 두께, 문턱 전압(threshold voltage) 등을 들 수 있으나, 본 발명이 이러한 예시에 제한되는 것은 아니다.
한편, 시뮬레이션 시스템(100)은 제공받은 n개의 입력(X1~Xn)에 대해 시뮬레이션을 수행하고, 결과인 y는 아래의 <수학식1>로 도식화 할 수 있다.
<수학식1>
Figure pat00001
여기서 입력(X1~Xn)은 전달 함수(f)를 통해 결과값 y를 도출하며, 결과값 y는 실수의 범위를 가진다. 한편, y의 패스, 페일을 정의하기 위해 표시 함수 <수학식1>이 정의된다. <수학식1>에 의해 표시 함수 값(I(y))이 연산되고, 해석을 원하는 특성치 집합의 확률이 출력될 수 있다.
<수학식1>
Figure pat00002
(여기서, F는 실패(fail) 집합을 의미하며, 표시 함수 I(y)의 함수 값 1은 페일(fail)을 의미하고, 표시 함수 I(y)의 함수 값 -1은 패스(pass)를 의미할 수 있다.)
즉, 시뮬레이션 시스템(100)은 제공받은 n개의 입력(X1~Xn)을 바탕으로 도 1에 도시된 DRAM 셀의 불량률(P)을 출력할 수 있다. 이하에서 사용되는 함수 값이라는 용어는 별도의 설명이 없는 한 상기 표시 함수 값으로 이해될 수 있다. 하지만, 본 발명이 이에 제한되는 것은 아니다.
이러한 시뮬레이션 시스템(100)은, 판단 모듈(110), WCP(Worst Case Point) 탐색 모듈(120), 및 메인 시뮬레이션 모듈(140)을 포함할 수 있다.
본 실시예에서 사용되는 사용되는 '부' 또는 '모듈'이라는 용어는 소프트웨어 또는 SoC 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부' 또는 '모듈'은 어떤 역할들을 수행한다. 그렇지만 '부' 또는 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부' 또는 '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부' 또는 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '부' 또는 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부' 또는 '모듈'들로 결합되거나 추가적인 구성요소들과 '부' 또는 '모듈'들로 더 분리될 수 있다.
판단 모듈(110)은 입력(Xi, X1≤Xi≤Xn)의 NP(Nominal Point)에 대한 표시 함수 값(I(Xi))이 어떤 값이냐에 따라 입력(Xi)에 대한 시뮬레이션 방법을 결정하는 모듈일 수 있다. 구체적으로, 판단 모듈(110)은 입력(Xi)의 NP(본 실시예에서, NP는 예를 들어, 입력(Xi)의 평균 값(μi)일 수 있다)에 대한 표시 함수 값(I(XiNP))이 제1 값(예를 들어, 1)인 경우 원점(ZP; Zero Point)을 기준으로 입력(Xi, X1≤Xi≤Xn)에 대해 메인 시뮬레이션이 수행될 수 있도록 원점(ZP)을 메인 시뮬레이션 모듈(140)에 제공하고, 입력(Xi)의 NP에 대한 표시 함수 값(I(XiNP))이 제2 값(예를 들어, -1)인 경우 입력(Xi)에 대한 WCP(Worst Case Point)를 탐색하기 위해, 입력(Xi)을 WCP 탐색 모듈(120)에 제공할 수 있다.
임의의 입력(Xi)의 NP가 예를 들어, 패일(fail)일 경우(즉, 표시 함수 값(I(XiNP))이 1일 경우), 이러한 입력(Xi)에 대해서는 비교적 작은 횟수의 샘플링을 통해서도 충분히 많은 수의 패일 입력(Xi)을 생성할 수 있게된다. 하지만, 입력(Xi)의 NP가 예를 들어, 패스(pass)일 경우(즉, 함수 값(I(XiNP))이 -1일 경우)에는 얼마나 많은 샘플링을 수행해야 분석에 충분한 수의 패일 입력(Xi)을 생성할 수 있게 될 수 있을런지 알 수가 없다. 극단적으로 예를 들어, 페일 입력(Xi)의 산포가 NP대비 6σ 이상이 된다면, 예를 들어, 380/z(-6) = 3.85*1011 회의 샘플링 또는 시뮬레이션이 수행되어야 한다.
따라서, 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템(100)은, 이처럼 입력(Xi)의 NP에 대한 함수 값(I(Xi))이 어떤 값이냐에 따라 입력(Xi)에 대한 시뮬레이션 방법을 결정하는 판단 모듈(110)을 포함함으로써, 이렇게 많은 횟수의 샘플링이 수행되어야 하는 경우를 사전에 방지한다. 즉, 판단 모듈(110)에 의해 입력(Xi)의 산포(PDF(Xi))에 따라 입력(Xi)에 대한 시뮬레이션 방법이 달라짐으로써, 극단적으로 시뮬레이션 횟수가 증가되어야 하는 케이스를 피할 수 있게 된다. 따라서, 전체 시뮬레이션 시스템(100)의 분석 속도가 향상될 수 있다.
WCP 탐색 모듈(120)은 제공받은 입력(Xi)에 대해 산포 경계를 변화시키며 설정된 산표 경계 내에서 입력 샘플을 생성하는 것을 반복함으로써 입력(Xi)에 대한 WCP(Worst Case Point)를 산출하고, 이를 메인 시뮬레이션 모듈(140)에 제공할 수 있다. 본 발명의 몇몇 실시예에서, WCP 탐색 모듈(120)은 입력(Xi)에 대한 WCP를 보다 정확히 탐색하기 위해, 제공받은 입력(Xi)에 대해 산포 경계를 감소시키며 설정된 산표 경계 내에서 입력 샘플을 생성하는 것을 반복할 수 있다. 이렇게, 입력(Xi)에 대해 산포 경계를 감소시키며 설정된 산표 경계 내에서 입력 샘플을 생성하는 것을 반복할 경우, 입력(Xi)에 대한 WCP가 보다 정확하게 탐색될 수 있다. 이에 관한 보다 구체적인 설명은 후술하도록 한다.
한편, 본 발명의 몇몇 실시예에서, WCP 탐색 모듈(120)이 수행하는 샘플링은 예를 들어, 균일 산포 샘플링(Uniform Distribution Sampling)을 포함할 수 있다. 이러한 균일 산포 샘플링에 대한 구체적인 설명도 후술하도록 한다.
메인 시뮬레이션 모듈(140)은 제공받은 산포의 중심(예를 들어, 입력(Xi)의 원점(ZP) 또는 입력(Xi)의 WCP)을 바탕으로 미리 정한 시뮬레이션을 수행할 수 있다. 여기서, 미리 정한 시뮬레이션은 예를 들어, 몬테 카를로 시뮬레이션(Monte Carlo Simulation)을 포함할 수 있다. 즉, 메인 시뮬레이션 모듈(140)은, 제공받은 입력(Xi)을 대상으로 몬테 카를로 시뮬레이션을 수행하여 특정 함수 값(예를 들어, -1)이 존재할 확률(P)을 출력할 수 있다. 한편, 제공받은 입력(Xi)에 대해 WCP가 산출된 경우, 메인 시뮬레이션 모듈(140)은 입력(Xi)에 대해 몬테 카를로 시뮬레이션을 수행하되, WCP가 탐색되는 과정에서 생성된 보정 계수(W)를 고려하여 몬테 카를로 시뮬레이션을 수행할 수 있다. 이러한 메인 시뮬레이션 모듈(140)에 대한 구체적인 설명도 후술하도록 한다.
이하, 도 3 내지 도 10을 참조하여, 본 발명의 몇몇 실시예에 따른 시뮬레이션 방법에 대해 설명하도록 한다.
도 3은 본 발명의 몇몇 실시예에 따른 시뮬레이션 방법을 설명하기 위한 순서도이다. 도 4a 내지 도 10은 본 발명의 몇몇 실시예에 따른 시뮬레이션 방법을 설명하기 위한 도면들이다.
먼저, 도 3을 참조하면, 입력의 NP(Nominal Point)에 대한 함수 값이 페일(fail)인지 판단한다(S100). 그 결과, 입력의 NP에 대한 함수 값이 페일이라면, 입력에 대해 메인 시뮬레이션을 수행한다(S180).
구체적으로 도 2를 참조하면, 판단 모듈(110)은 입력 산포(PDF(Xi))의 NP에 대한 함수 값(I(XiNP))이 페일이면(예를 들어, 1이면), 메인 시뮬레이션 모듈(140)에 입력(Xi)의 산포 중심으로 원점(ZP)을 제공하고, 메인 시뮬레이션 모듈(140)은 제공받은 산포의 중심을 바탕으로 입력(Xi)에 대해 예를 들어, 몬테 카를로 시뮬레이션을 수행할 수 있다.
더욱 구체적으로, 판단 모듈(110)은 도 4a에 도시된 것과 같이 입력(Xj, Xk)의 NP에 대한 함수 값이 페일(fail)인 경우, 메인 시뮬레이션 모듈(140)에 입력(Xj, Xk)의 산포 중심으로 원점(ZP)을 제공하고, 메인 시뮬레이션 모듈(140)은 입력(Xj, Xk)에 대해 제공받은 산포의 중심을 바탕으로 예를 들어, 몬테 카를로 시뮬레이션을 수행할 수 있다. 본 발명의 몇몇 실시예에서, 입력(Xi, Xk)의 NP와 입력(Xi, Xk)의 원점(ZP)는 서로 동일할 수도 있다. 하지만, 본 발명이 이에 제한되는 것은 아니며, 입력(Xi, Xk)의 NP와 입력(Xi, Xk)의 원점(ZP)이 서로 다르도록 얼마든지 변형되어 실시되는 것도 가능하다.
한편, 비록 도 4a에는 시뮬레이션 시스템(100)의 입력으로 두 개의 입력(Xj, Xk)이 도시된 것이 도시되어 있으나, 본 발명이 이에 제한되는 것은 아니다. 즉, 도 4a에 두 개의 입력(Xj, Xk) 만을 도시한 것은, 본 실시예에 따른 시뮬레이션 방법에 대한 이해를 돕기 위함일 뿐이며, 시뮬레이션 시스템(100)에 제공되는 입력의 개수는 도시된 것과 달리 얼마든지 변화될 수 있다. 예를 들어, 시뮬레이션 시스템(100)에 제공되는 입력의 개수가 세 개라면, 세 개의 입력 변수가 형성하는 영역은 도 4a와 같은 평면이 아니라, 입체적인 공간이될 수 있다.
다시, 도 3을 참조하면, 이와 달리 입력의 NP에 대한 함수 값이 패스(pass)라면, 이러한 입력에 대해 몬테 카를로 시뮬레이션을 수행할 경우, 최악의 경우 샘플링 횟수 또는 시뮬레이션 횟수가 현실적으로 처리 불가능할 정도로 커지는 경우가 발생될 수 있다. 따라서, 본 실시예에서는 이 경우, 예를 들어, 주요사건 샘플링(Importance Sampling)을 통해 시뮬레이션을 진행할 수 있다.
주요사건 샘플링을 위해서는 입력(Xj, Xk)의 WCP(Worst Case Point) 또는 경게 벡터(Shift Vector)를 알아야 한다. 따라서, 입력(Xj, Xk)의 NP에 대한 함수 값이 도 4b에 도시된 것과 같이 패스(pass)인 경우, 판단 모듈(110)은 WCP 탐색 모듈(120)이 입력(Xj, Xk)에 대한 WCP를 찾을 수 있도록, WCP 탐색 모듈(120)에 입력(Xj, Xk)을 제공할 수 있다. 이제, WCP 탐색 모듈(120)은 이하에서 설명할 과정을 통해 입력(Xj, Xk)의 WCP를 찾을 수 있다.
도 3을 참조하면, 먼저, 입력(Xj, Xk)의 산포 경계를 제1 산포값(Si)으로 설정한다(S110). 본 발명의 몇몇 실시예에서 이러한 제1 산포값(Si)으로는 예를 들어, 8σ가 선택될 수 있으나, 본 발명이 이에 제한되는 것은 아니다. 또한, 본 발명의 몇몇 실시예에서, 이러한 제1 산포값(Si)은 좌표를 갖는 2차원 이상의 값일 수 있으나, 역시 본 발명이 이에 제한되는 것은 아니다.
이어서 도 3을 참조하면, 설정된 산포 경계 내에서 입력 샘플을 생성한다(S120). 본 발명의 몇몇 실시예에서, 이렇게 입력(Xj, Xk) 샘플을 생성하는 데에는 예를 들어, 균일 산포 샘플링(Uniform Distribution Sampling)이 사용될 수 있다. 이처럼 균일 산포 샘플링을 통해 입력(Xj, Xk) 샘플을 생성할 경우, 입력(Xj, Xk) 샘플의 분포는 도 5에 도시된 것과 같이 균일하게 생성될 수 있다. 도 5에서 세모로 표시된 각 입력(Xj, Xk) 샘플은 아직 각 입력(Xj, Xk) 샘플에 대해 함수 값이 산출되지 않은 상태임을 의미하며, 각 입력(Xj, Xk) 샘플의 경계는 -8σ와 8σ가 될 수 있다.
다음 도 3을 참조하면, 생성된 각 입력(Xj, Xk) 샘플에 대해 함수 값을 산출한다(S130). 구체적으로 앞서 <수학식2>에서 설명한 표시 함수 I(y)를 이용하여 각각의 입력(Xj, Xk) 샘플에 대해 함수 값을 산출할 수 있다. 도 6은 각각의 샘플에 대해 앞서 <수학식2>에서 설명한 표시 함수 I(y)를 이용하여 함수 값이 산출된 상태를 도시하고 있다. 여기서, X 표시는 함수 값이 1인 페일인 상태를 의미하며, O 표시는 함수 값이 -1인 패스인 상태를 의미한다.
다음 도 3을 참조하면, 생성된 입력 샘플과 산출된 함수 값에 대해 기계 학습(machine learning)을 수행하여 경계면을 산출한다(S140). 본 발명의 몇몇 실시예에서, 이러한 경계면 산출 과정에는 SVM(Support Vector Machine)이 사용될 수 있다. 또한 본 발명의 몇몇 실시예에서, 이러한 경계면은 예를 들어, 곡면일 수 있으나, 본 발명이 이에 제한되는 것은 아니다.
도 7은 SVM을 이용하여 기계 학습을 수행함으로써, 산출된 함수 값을 구분 짓는 경계면(PL)이 산출된 것이 도시되어 있다. 비록, 도 7에서는 경계면(PL)이 곡선인 형태로 도시되어 있으나, 산출된 함수 값에 따라 경계면(PL)의 형태는 직선이될 수도 있으며, 입력(Xj, Xk) 샘플의 개수가 도시된 것보다 많아질 경우에는 입체적인 형상으로 산출될 수도 있다.
다음 도 3을 참조하면, 산출된 경계면 상에서 입력에 대한 WCP를 탐색한다(S150). 본 실시에에서, 이렇게 산출된 경계면(PL) 상에서 입력(Xj, Xk)에 대한 WCP를 탐색하는 데에는 예를 들어, EA(Evolutionary Algorithm)가 사용될 수 있다. 구체적으로, 도 8을 참조하면, 예를 들어, EA(Evolutionary Algorithm)를 사용하여, 경계면(PL) 상의 후보 포인트(P1, P2) 중 원점(0,0)에서 최단 거리에 배치된 포인트를 WCP로 선택할 수 있다.
다시 도 3을 참조하면, 설정된 입력의 산포 경계가 최소 임계값인지 판단한다(S160). 그 결과 입력의 산포 경계가 최소 임계값(St)이 아니라면, 입력의 산포 경계를 제2 산포값(Si/2)으로 감소시킨 후(S170), 입력의 산포 경계가 최소 임계값(St)이 될 때까지 앞서 설명한 과정(S120~S160)을 반복한다. 본 발명의 몇몇 실시예에서, 이러한 최소 임계값(St)은 유리수 범위에서 결정될 수 있으나, 본 발명이 이에 제한되는 것은 아니다.
본 발명의 몇몇 실시예에서, 입력(Xj, Xk)의 산포 경계 최소 임계값(St)은 σ로 설정될 수 있으며, 이 때, 입력의 산포 경계는 도시된 것과 같이 점차 줄어들 수 있다. 이하에서는 도 9a 내지 도 9d를 참조하여, 이러한 과정을 통해 WCP가 탐색되는 과정에 대해 보다 구체적으로 설명하도록 한다.
먼저, 도 9a를 참조하면, 입력(Xj, Xk)의 산포 경계를 8σ로 설정한다(S110). 그리고, 앞서 설명한 S120, S130 단계를 수행하면, 입력(Xj, Xk) 샘플의 함수 값은 도시된 것과 같이 원점(0,0)을 중심으로 8σ 사이에 배치되게 된다. 여기에, 앞서 설명한 S140, S150 단계를 수행함으로써, 제1 WCP(WCP1)를 탐색한다.
다음, 도 9b를 참조하면, 이제 입력(Xj, Xk)의 산포 경계를 제1 WCP(도 9a의 WCP1)를 중심으로 4σ로 감소시키고(S170), 앞서 설명한 S120, S130 단계를 수행한다. 그러면, 입력(Xj, Xk) 샘플의 함수 값은 도시된 것과 같이 제1 WCP(도 9a의 WCP1)를 중심으로 4σ 사이에 배치되게 된다. 여기에, 앞서 설명한 S140, S150 단계를 수행함으로써, 제2 WCP(WCP2)를 탐색한다.
다음, 도 9c를 참조하면, 이제 입력(Xj, Xk)의 산포 경계를 제2 WCP(도 9b의 WCP2)를 중심으로 2σ로 감소시키고(S170), 앞서 설명한 S120, S130 단계를 수행한다. 그러면, 입력(Xj, Xk) 샘플의 함수 값은 도시된 것과 같이 제2 WCP(도 9b의 WCP2)를 중심으로 2σ 사이에 배치되게 된다. 여기에, 앞서 설명한 S140, S150 단계를 수행함으로써, 제3 WCP(WCP3)를 탐색한다.
다음, 도 9d를 참조하면, 이제 입력(Xj, Xk)의 산포 경계를 제3 WCP(도 9c의 WCP3)를 중심으로 σ로 감소시키고(S170), 앞서 설명한 S120, S130 단계를 수행한다. 그러면, 입력(Xj, Xk) 샘플의 함수 값은 도시된 것과 같이 제3 WCP(도 9c의 WCP3)를 중심으로 σ 사이에 배치되게 된다. 여기에, 앞서 설명한 S140, S150 단계를 수행함으로써, 제4 WCP(WCP4)를 탐색한다.
이제 입력(Xj, Xk)의 산포 경계가 최소 임계값(St)인 σ이므로, 탐색된 제4 WCP(WCP4)는 입력(Xj, Xk)의 최종 WCP가 된다. 따라서, 도 2를 참조하면, WCP 탐색 모듈(120)은 탐색된 WCP와 입력 산포의 중심 이동에 따른 보정 계수(W)를 메인 시뮬레이션 모듈(140)에 제공한다.
본 발명의 몇몇 실시예에서, 최소 임계값(St), 제1 산포값(Si), 및 제1 산포값(Si)이 감소되어 설정되는 제2 산포값(Si/2) 중 적어도 하나는 사용자에 의해 임의로 설정될 수 있다.
한편 이상에서는 제2 산포값(Si/2)이 제1 산포값(Si)으로부터 감소되어 설정되는 예가 설명되었으나, 본 발명이 이러한 예시에 제한되는 것은 아니다. 본 발명의 다른 몇몇 실시예에서, 제2 산포값(Si/2)은 제1 산포값(Si)으로부터 증가되어 설정될 수도 있다. 또한, 본 발명의 또 다른 몇몇 실시예에서, 제2 산포값(Si/2)과 제1 산포값(Si)은 서로 동일하게 설정될 수도 있다. 각각의 경우, 최소 임계값(St)은 앞서 설명한 실시예와 다르게 설정되록 얼마든지 변형되어 설정될 수 있다.
다음 도 3을 참조하면, 메인 시뮬레이션을 수행한다(S170). 구체적으로, 도 2 및 도 10을 참조하면, 메인 시뮬레이션 모듈(140)은 탐색된 WCP를 중심으로 입력(Xj, Xk)에 대해 예를 들어, 몬테 카를로 시뮬레이션을 수행하되, WCP 탐색 모듈(120)로부터 제공받은 보정 계수(W)를 바탕으로 시뮬레이션 결과에 보정을 수행할 수 있다.
이처럼 본 실시예에 따른 시뮬레이션 시스템 및 방법에서는, 입력의 특성을 고려하여 입력에 대한 시뮬레이션 방법을 달리한다. 구체적으로, 입력의 NP에 대한 함수 값이 페일일 경우에는 비교적 작은 횟수의 샘플링을 통해서도 충분히 많은 수의 패일 입력을 생성할 수 있게되므로, 입력의 원점을 산포 중심으로 몬테 카를로 시뮬레이션을 수행하고, 입력의 NP에 대한 함수 값이 패스일 경우에는 시뮬레이션 시간이 극단적으로 증가되는 최악의 경우를 피하기 위해 주요사건 샘플링을 이용하여 입력에 대한 시뮬레이션을 수행한다. 이에 따라, 입력의 특성에 따라 시뮬레이션 시간이 극단적으로 커지는 것을 사전에 예방할 수 있다.
아래 <표1>은 앞서 설명한 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템(도 1의 100)의 성능을 설명하기 위해, 입력의 실패 비율(failure rate)에 따라 샘플링 또는 시뮬레이션이 수행되어야 하는 횟수(Run no.)를 비교한 실험의 결과이다.
여기서, 입력 (1)~(5)는 입력 분포가 정규분포를 따르도록 설정되었으며, 실험에서 신뢰 수준은 95%로 설정되었다. X는 입력 (1)~(5)에 대해 몬테 카를로 시뮬레이션을 수행한 결과이고, Y는 입력 (1)~(5)에 대해 앞서 설명한 본 발명의 몇몇 실시예에 따른 시뮬레이션 방법을 수행한 결과이며, Z는 입력 (1)~(5)에 대해 앞서 설명한 본 발명의 몇몇 실시예와 다른 시뮬레이션 방법(예를 들어, 클러스터링(clustering) 기법을 적용한 시뮬레이션 방법)을 수행한 결과이다.
X Y Z
Input Failure rate Run no. Failure rate Run no. Failure rate Run no.
(1) 1.77e-1 470 1.60e-1 2770 1.81e-1 3520
(2) 7.63e-3 13100 6.58e-3 2910 5.74e-3 9280
(3) 1.79e-4 559000 1.80e-4 3390 1.70e-4 3968
(4) 9.05e-6 7262500 9.12e-6 3500 7.30e-6 9856
(5) 3.14e-6 9324300 3.21e-6 3500 2.87e-6 16704
<표1>을 참조하면, 입력의 실패 비율(failure rate)이 작아질수록 X의 시뮬레이션 횟수는 기하급수적으로 증가하나, Y의 시뮬레이션 횟수는 거의 증가하지 않음을 알 수 있다. 한편, 비슷한 실패 비율(failure rate)을 갖는 입력에 대해 X의 시뮬레이션 횟수는 Y의 시뮬레이션 횟수보다 작음을 알 수 있다. 즉, 앞서 설명한 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템 및 방법은, 입력의 특성에 따라 시뮬레이션 시간이 극단적으로 커지는 것을 사전에 예방할 수 있다.
한편, 주요사건 샘플링을 효율적으로 수행하기 위해서는 입력에 대한 WCP를 정확히 탐색하는 것이 필요하다. 따라서, 본 실시예에서는 입력에 대한 WCP를 정확히 탐색하기 위해, 입력의 산포 경계를 점차 줄여가며 입력에 대한 WCP를 탐색하게 된다. 이렇게 탐색된 입력에 대한 WCP는 그 정확성이 매우 높아지게 되므로, 시뮬레이션 결과의 신뢰성이 크게 향상될 수 있다.
이하, 도 11을 참조하여, 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템이 채용된 컴퓨팅 시스템에 대해 설명하도록 한다.
도 11은 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템이 채용된 컴퓨팅 시스템의 일 예이다.
도 11을 참조하면, 앞서 설명한 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템(도 1의 100)은 예를 들어, 소프트웨어(software) 등으로 구현되어 도시된 것과 같은 컴퓨팅 시스템(1001)에 채용될 수 있다.
컴퓨팅 시스템(1001)은 중앙처리장치(Central Processing Unit, 1000), AGP 장치(Accelerated Graphics Port, 1010), 메인 메모리(1100), 스토리지(예컨대, SSD, HDD 등, 1040), 버스(1020), 키보드 컨트롤러(1060), 및 프린터 컨트롤러(1050) 등을 포함할 수 있다. 도 11에서는, 컴퓨팅 시스템(1001)에 포함되는 일부 구성 요소 만을 도시하였으나, 본 발명이 이에 제한되는 것은 아니며, 컴퓨팅 시스템(1001)에 포함되는 구성 요소들은 얼마든지 더 추가되거나, 도 11에 도시된 구성에서 생략될 수 있다.
도 11에 도시된 컴퓨팅 시스템(1001)은 반도체 소자 시뮬레이션에 이용되는 사무용 컴퓨터 또는 노트북 컴퓨터 등의 블록도일 수 있다. 또한, 본 발명의 다른 몇몇 실시예에서, 도 11에 도시된 컴퓨팅 시스템(1001)은 복수의 프로세서를 통해 구동되는 멀티 프로세서 환경의 컴퓨팅 시스템(1001)일 수도 있다. 그러나 본 발명이 이에 제한되는 것은 아니며, 컴퓨팅 시스템(1001)의 예시는 얼마든지 변형될 수 있다.
컴퓨팅 시스템(1001)에서 중앙처리장치(1000), AGP 장치(1010), 메인 메모리(1100), 스토리지(1040), 키보드 컨트롤러(1060), 프린터 컨트롤러(1050), 및 각종 주변 장치들 등은 버스(1020)에 접속될 수 있다. 그러나, 본 발명이 이에 제한되는 것은 아니며, 버스(1020)는 중앙처리장치(1000)에 포함된 형태로 변형될 수도 있다.
AGP(1010)는 3차원 그래픽 표현을 빠르게 구현할 수 있게 해주는 버스 규격일 수 있으며, AGP 장치(1010)에는 모니터 이미지를 재생하는 비디오 카드 등이 포함될 수 있다.
중앙처리장치(1000)는 컴퓨팅 시스템(1001)의 구동에 필요한 각종 연산을 수행하고, 또한 OS 및 응용 프로그램을 실행할 수 있다. 비록 도 11에서는 중앙처리장치(1000)를 1개만 도시하였으나, 중앙처리장치(1000)의 수는 얼마든지 변형될 수 있다.
메인 메모리(1100)는 스토리지(1040)로부터 중앙처리장치(1000)의 동작을 수행하는데 필요한 데이터를 로딩하여 저장할 수 있다. 이러한 메인 메모리(1100)를 구현하는 메모리의 예시로는, DRAM(Random Access Memory)을 들 수 있으나, 본 발명이 이러한 예시에 제한되는 것은 아니다.
스토리지(1040)는 데이터 등을 저장하는 대용량 데이터 저장 장치로서, 예를 들어, HDD, SSD 등 컴퓨터로 판독 가능한 기록 매체로 구현될 수 있으나, 본 발명이 이러한 예시에 제한되는 것은 아니다. 또한, 본 실시예에 따른 컴퓨팅 시스템(1001)에서는 스토리지(1040)가 버스(1020)에 접속되는 구조를 도시하고 있으나, 본 발명이 이에 제한되는 것은 아니며, 스토리지(1040)가 중앙처리장치(1000)에 직접 연결되는 구조로 변형될 수도 있다.
본 실시예에 따른 컴퓨팅 시스템(1001)이 예를 들어, 소프트웨어 등으로 구현된 시뮬레이션 시스템(도 1의 100)을 채용할 경우, 시뮬레이션 시스템(도 1의 100)은 예를 들어, 스토리지(1040)에 도시된 것과 같이 저장될 수 있다.
구체적으로, 스토리지(1040)에는 본 발명의 몇몇 실시예에 따른 시뮬레이션 시스템(도 1의 100)을 구성하는 판단 모듈(도 2의 110), WCP(Worst Case Point) 탐색 모듈(도 2의 120), 및 메인 시뮬레이션 모듈(도 2의 140)이 각각 모듈 별로 구현되어 저장되어 있을 수 있다.
이렇게 스토리지(1040)에 저장된 각 모듈(110, 120, 140)은 예를 들어, 메인 메모리(1100)에 로딩되어 중앙처리장치(1000)에 의해 처리됨으로써, 시뮬레이션 시스템(도 1의 100)의 최종 출력인 확률 값(도 1의 P)이 출력될 수 있다.
다음, 본 발명의 몇몇 실시예에 따른 시뮬레이션 방법을 구현하기 위한 프로그램을 기록한 기록 매체에 대해 설명한다.
본 발명의 몇몇 실시예에 따른 시뮬레이션 방법을 구현하기 위한 프로그램을 기록한 기록 매체는 예를 들어, 컴퓨터 하드 디스크, 플로피 디스크, 3. 5 인치 디스크, 컴퓨터 스토리지 테이프, 자기 드럼(magnetic drums), SRAM 셀, DRAM 셀, 전기적으로 지울 수 있는 셀(EEPROM cell, EPROM cell, flash cell), 비휘발성 셀, 강유전체 메모리, 강자성체 메모리, 콤팩트 디스크(CD), 레이저 디스크, 광학 디스크일 수 있다. 그러나, 본 발명이 이에 제한되는 것은 아니며, 컴퓨터를 이용하여 읽을 수 있는 저장 매체는 무엇이든지 본 발명의 몇몇 실시예에 따른 시뮬레이션 방법을 구현하기 위한 프로그램을 기록한 기록 매체가 될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 시뮬레이션 시스템 110: 판단 모듈
120: WCP 탐색 모듈 140: 메인 시뮬레이션 모듈

Claims (20)

  1. 적어도 하나의 프로세서를 포함하는 컴퓨팅 시스템을 이용한 시뮬레이션 방법으로서,
    입력의 NP(Nominal Point)에 대한 함수 값이 제1 값인 경우 상기 입력에 대해 제1 시뮬레이션을 수행하고,
    상기 입력의 NP에 대한 함수 값이 상기 제1 값과 다른 제2 값인 경우 상기 입력에 대해 제2 시뮬레이션을 수행하는 것을 포함하되,
    상기 제2 시뮬레이션을 수행하는 것은,
    (a) 상기 제2 값에 대한 입력 산포의 경계를 제1 산포값으로 설정하고,
    (b) 상기 설정된 산포 경계 내에서 입력 샘플을 생성하고,
    (c) 상기 생성된 입력 샘플에 대해 기계 학습을 수행함으로써 상기 입력에 대한 WCP(Worst Case Point)를 산출하고,
    (d) 상기 입력 산포의 경계가 최소 임계값이 될 때까지 상기 입력 산포의 경계를 변화시켜가며 상기 (a) 내지 (c)를 반복하는 것을 포함하는 시뮬레이션 방법.
  2. 제 1항에 있어서,
    상기 제1 시뮬레이션은 몬테 카를로 시뮬레이션(Monte Carlo Simulation)을 포함하는 시뮬레이션 방법.
  3. 제 2항에 있어서,
    상기 제2 시뮬레이션은 주요사건 샘플링(Importance Sampling)을 포함하는 시뮬레이션 방법.
  4. 제 1항에 있어서,
    상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것은, 상기 설정된 산포 경계 내에서 균일 산포 샘플링(Uniform Distribution Sampling)을 통해 상기 입력 샘플을 생성하는 것을 포함하는 시뮬레이션 방법.
  5. 적어도 하나의 프로세서를 포함하는 컴퓨팅 시스템을 이용한 시뮬레이션 방법으로서,
    (a) 입력의 산포 경계를 제1 산포값으로 설정하고,
    (b) 상기 설정된 산포 경계 내에서 입력 샘플을 생성하고,
    (c) 상기 생성된 입력 샘플 각각에 대해 함수 값을 산출하고,
    (d) 입력 샘플과 함수 값에 대해 기계 학습(machine learning)을 수행하여 경계면을 산출하고,
    (e) 상기 경계면 상에서 상기 입력에 대한 WCP(Worst Case Point)를 탐색하고,
    (f) 상기 입력의 산포 경계가 최소 임계값이 될 때까지 상기 입력 산포의 경계를 변화시켜가며 상기 (a) 내지 (e)를 반복하는 것을 포함하는 시뮬레이션 방법.
  6. 제 5항에 있어서,
    상기 입력 산포의 경계를 변화시키는 것은, 상기 입력 산포의 경계를 상기 제1 산포값에서 제2 산포값으로 변화시키는 것을 포함하는 시뮬레이션 방법.
  7. 제 6항에 있어서,
    상기 제2 산포값은 상기 제1 산포값 보다 작은 시뮬레이션 방법.
  8. 제 6항에 있어서,
    상기 최소 임계값, 제1 산포값, 및 제2 산포값 중 적어도 하나는 사용자에 의해 설정될 수 있는 값인 시뮬레이션 방법.
  9. 제 5항에 있어서,
    상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것은, 상기 설정된 산포 경계 내에서 균일 산포 샘플링(Uniform Distribution Sampling)을 통해 상기 입력 샘플을 생성하는 것을 포함하는 시뮬레이션 방법.
  10. 제 5항에 있어서,
    상기 입력 샘플과 함수 값에 대해 기계 학습(machine learning)을 수행하여 경계면을 산출하는 것은, 상기 입력 샘플과 함수 값에 대해 SVM(Support Vector Machine)을 이용하여 상기 경계면을 산출하는 것을 포함하는 시뮬레이션 방법.
  11. 제 5항에 있어서,
    상기 경계면 상에서 상기 입력에 대한 WCP를 탐색하는 것은, EA(Evolutionary Algorithm)를 이용하여 상기 WCP를 탐색하는 것을 포함하는 시뮬레이션 방법.
  12. 제공받은 산포의 중심을 바탕으로 미리 정한 시뮬레이션을 수행하는 메인 시뮬레이션 모듈;
    입력의 NP(Nominal Point)에 대한 함수 값이 제1 값인 경우 상기 입력에 대한 원점을 상기 메인 시뮬레이션 모듈에 제공하고, 상기 입력의 NP에 대한 함수 값이 상기 제1 값과 다른 제2 값인 경우 WCP(Worst Case Point) 탐색 모듈에 상기 입력을 제공하는 판단 모듈; 및
    상기 제2 값에 대한 입력 산포의 경계를 변화시키며 상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것을 반복함으로써 상기 입력에 대한 WCP를 산출하고, 이를 상기 메인 시뮬레이션 모듈에 제공하는 WCP 탐색 모듈을 포함하는 시뮬레이션 시스템.
  13. 제 12항에 있어서,
    상기 미리 정한 시뮬레이션은 몬테 카를로 시뮬레이션(Monte Carlo Simulation)을 포함하는 시뮬레이션 시스템.
  14. 제 12항에 있어서,
    상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것은, 상기 설정된 산포 경계 내에서 균일 산포 샘플링(Uniform Distribution Sampling)을 통해 상기 입력 샘플을 생성하는 것을 포함하는 시뮬레이션 시스템.
  15. 제 12항에 있어서,
    상기 WCP 탐색 모듈이, 상기 제2 값에 대한 입력 산포의 경계를 변화시키며 상기 설정된 산포 경계 내에서 입력 샘플을 생성하는 것을 반복함으로써 상기 입력에 대한 WCP를 산출하는 것은,
    (a) 입력의 산포 경계를 제1 산포값으로 설정하고,
    (b) 상기 설정된 산포 경계 내에서 입력 샘플을 생성하고,
    (c) 상기 생성된 입력 샘플 각각에 대해 함수 값을 산출하고,
    (d) 입력 샘플과 함수 값에 대해 기계 학습(machine learning)을 수행하여 경계면을 산출하고,
    (e) 상기 경계면 상에서 상기 입력에 대한 WCP(Worst Case Point)를 탐색하고,
    (f) 상기 입력의 산포 경계가 최소 임계값이 될 때까지 상기 입력 산포의 경계를 변화시켜가며 상기 (a) 내지 (e)를 반복하는 것을 포함하는 시뮬레이션 시스템.
  16. 제 15항에 있어서,
    상기 입력 산포의 경계를 변화시키는 것은, 상기 입력 산포의 경계를 상기 제1 산포값에서 제2 산포값으로 변화시키는 것을 포함하는 시뮬레이션 시스템.
  17. 제 16항에 있어서,
    상기 제2 산포값은 상기 제1 산포값 보다 작은 시뮬레이션 방법.
  18. 제 15항에 있어서,
    상기 입력 샘플과 함수 값에 대해 기계 학습(machine learning)을 수행하여 경계면을 산출하는 것은, 상기 입력 샘플과 함수 값에 대해 SVM(Support Vector Machine)을 이용하여 상기 경계면을 산출하는 것을 포함하는 시뮬레이션 시스템.
  19. 제 12항에 있어서,
    상기 메인 시뮬레이션 모듈, 판단 모듈, 및 WCP 탐색 모듈은 적어도 하나의 프로세서에 의해 구동되는 시뮬레이션 시스템.
  20. 적어도 하나의 프로세서; 및
    상기 프로세서를 이용하여 입력에 대한 시뮬레이션을 수행하는 프로그램 코드가 저장된 저장부를 포함하되,
    입력의 NP(Nominal Point)에 대한 함수 값이 제1 값인 경우 상기 입력에 대해 제1 시뮬레이션을 수행하고,
    상기 입력의 NP에 대한 함수 값이 상기 제1 값과 다른 제2 값인 경우 상기 입력에 대해 제2 시뮬레이션을 수행하는 것을 포함하되,
    상기 제2 시뮬레이션을 수행하는 것은,
    (a) 상기 제2 값에 대한 입력 산포의 경계를 제1 산포값으로 설정하고,
    (b) 상기 설정된 산포 경계 내에서 입력 샘플을 생성하고,
    (c) 상기 생성된 입력 샘플에 대해 기계 학습을 수행함으로써 상기 입력에 대한 WCP(Worst Case Point)를 산출하고,
    (d) 상기 입력 산포의 경계가 최소 임계값이 될 때까지 상기 입력 산포의 경계를 변화시켜가며 상기 (a) 내지 (c)를 반복하는 것을 포함하는 컴퓨팅 시스템.
KR1020130059878A 2013-05-27 2013-05-27 시뮬레이션 시스템 및 방법, 상기 시스템을 포함하는 컴퓨팅 시스템 KR102061763B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020130059878A KR102061763B1 (ko) 2013-05-27 2013-05-27 시뮬레이션 시스템 및 방법, 상기 시스템을 포함하는 컴퓨팅 시스템
TW103109064A TWI629642B (zh) 2013-05-27 2014-03-13 模擬系統及模擬方法與包括該模擬系統之計算系統
US14/215,577 US9846753B2 (en) 2013-05-27 2014-03-17 Monte Carlo simulation for analyzing yield of an electric circuit
JP2014097682A JP6381962B2 (ja) 2013-05-27 2014-05-09 シミュレーションシステム及び方法と該システムを含むコンピュータシステム
CN201410213272.XA CN104182268B (zh) 2013-05-27 2014-05-20 仿真系统及其方法和包括所述仿真系统的计算系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130059878A KR102061763B1 (ko) 2013-05-27 2013-05-27 시뮬레이션 시스템 및 방법, 상기 시스템을 포함하는 컴퓨팅 시스템

Publications (2)

Publication Number Publication Date
KR20140139343A true KR20140139343A (ko) 2014-12-05
KR102061763B1 KR102061763B1 (ko) 2020-01-03

Family

ID=51935935

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130059878A KR102061763B1 (ko) 2013-05-27 2013-05-27 시뮬레이션 시스템 및 방법, 상기 시스템을 포함하는 컴퓨팅 시스템

Country Status (5)

Country Link
US (1) US9846753B2 (ko)
JP (1) JP6381962B2 (ko)
KR (1) KR102061763B1 (ko)
CN (1) CN104182268B (ko)
TW (1) TWI629642B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180115208A (ko) * 2017-04-12 2018-10-22 삼성전자주식회사 회로 수율 분석 방법 및 회로 수율 분석을 위한 시스템

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120046929A1 (en) * 2010-08-20 2012-02-23 International Business Machines Corporation Statistical Design with Importance Sampling Reuse
US10055527B2 (en) * 2015-02-10 2018-08-21 Thalia Design Automation Ltd. Yield process for analog circuit design optimization
US10915684B2 (en) * 2018-08-23 2021-02-09 Palo Alto Research Center Incorporated Automatic redesign of digital circuits
US11768986B2 (en) 2019-03-14 2023-09-26 Xenergic Ab High-dimensional multi-distributed importance sampling for circuit yield analysis
US11829861B2 (en) 2019-07-17 2023-11-28 Unist (Ulsan National Institute Of Science And Technology) Methods and apparatus for extracting data in deep neural networks
KR102320345B1 (ko) * 2019-07-17 2021-11-03 울산과학기술원 딥러닝 내부의 데이터 추출 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050078071A (ko) * 2004-01-30 2005-08-04 삼성전자주식회사 몬테카를로 시뮬레이션용 모델 파라미터 집합의 추출 방법
US20070220455A1 (en) * 2006-03-14 2007-09-20 Joshi Rajiv V Method and computer program for efficient cell failure rate estimation in cell arrays
JP2010160787A (ja) * 2008-12-11 2010-07-22 Jedat Inc パラメータ情報作成システム、歩留まり算出システム、プログラム及び記録媒体
US20120046929A1 (en) * 2010-08-20 2012-02-23 International Business Machines Corporation Statistical Design with Importance Sampling Reuse

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974248A (en) * 1996-12-23 1999-10-26 Lsi Logic Corporation Intermediate test file conversion and comparison
US6961914B1 (en) 2002-01-31 2005-11-01 Cadence Design Systems, Inc. Method and apparatus for selecting input points to train a machine learning model for extraction
JP3926296B2 (ja) 2003-06-24 2007-06-06 株式会社ルネサステクノロジ 半導体集積回路の性能分散系算出装置及びその算出方法
US20060203581A1 (en) 2005-03-10 2006-09-14 Joshi Rajiv V Efficient method and computer program for modeling and improving static memory performance across process variations and environmental conditions
US8005660B2 (en) 2005-12-12 2011-08-23 Anova Solutions, Inc. Hierarchical stochastic analysis process optimization for integrated circuit design and manufacture
JP5006214B2 (ja) 2006-02-08 2012-08-22 ルネサスエレクトロニクス株式会社 ばらつきシミュレーション・システム、ばらつき決定モデル方法と装置ならびにプログラム
US8046200B2 (en) 2006-09-05 2011-10-25 Colorado State University Research Foundation Nonlinear function approximation over high-dimensional domains
US8229727B2 (en) * 2007-01-09 2012-07-24 International Business Machines Corporation System and method for incorporating design behavior and external stimulus in microprocessor emulation model feedback using a shared memory
US20100076741A1 (en) 2007-02-19 2010-03-25 Kiyoshi Takeuchi System, method and program for determining worst condition of circuit operation
CN101425020A (zh) * 2007-10-31 2009-05-06 国际商业机器公司 对mmu仿真进行加速的方法、装置和全系统仿真器
US7908518B2 (en) * 2008-02-08 2011-03-15 International Business Machines Corporation Method, system and computer program product for failure analysis implementing automated comparison of multiple reference models
US8190543B2 (en) 2008-03-08 2012-05-29 Tokyo Electron Limited Autonomous biologically based learning tool
US8155938B2 (en) * 2008-03-28 2012-04-10 Carnegie Mellon University Method and apparatus for sampling and predicting rare events in complex electronic devices, circuits and systems
US8290761B1 (en) 2008-06-06 2012-10-16 Carnegie Mellon University Method and apparatus for rapidly modeling and simulating intra-die statistical variations in integrated circuits using compressed parameter models
US8417754B2 (en) 2009-05-11 2013-04-09 Empire Technology Development, Llc Identification of integrated circuits
US8219355B2 (en) 2009-12-23 2012-07-10 Cadence Design Systems, Inc. Methods and systems for high sigma yield estimation
KR20110116563A (ko) 2010-04-19 2011-10-26 목포대학교산학협력단 주성분 분석과 마르코프 연쇄 몬테카를로 기법을 결합한 퍼지 군집화 방법
JP5418409B2 (ja) * 2010-06-01 2014-02-19 富士通株式会社 モデル式生成方法、装置及びプログラム
US8352895B2 (en) * 2010-12-21 2013-01-08 Globalfoundries Inc. Model library implementation and methodology for worst case performance modeling for SRAM cells
JP2012203714A (ja) 2011-03-25 2012-10-22 Toshiba Corp モンテカルロ解析実行制御方法、およびモンテカルロ解析実行制御装置
US8494670B2 (en) 2011-04-06 2013-07-23 Solido Design Automation Inc. Monte-Carlo based accurate corner extraction
US8589852B1 (en) * 2011-12-15 2013-11-19 Cadence Design Systems, Inc. Statistical corner extraction using worst-case distance
US8595664B2 (en) * 2011-12-16 2013-11-26 International Business Machines Corporation Guiding design actions for complex failure modes
CN102663176B (zh) * 2012-03-28 2014-05-14 北京航空航天大学 针对高可靠机械产品的主动可靠性分析评价方法
US9461876B2 (en) * 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
CN102929686A (zh) * 2012-09-28 2013-02-13 杭州中天微系统有限公司 一种片上多核处理器功能验证方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050078071A (ko) * 2004-01-30 2005-08-04 삼성전자주식회사 몬테카를로 시뮬레이션용 모델 파라미터 집합의 추출 방법
US20070220455A1 (en) * 2006-03-14 2007-09-20 Joshi Rajiv V Method and computer program for efficient cell failure rate estimation in cell arrays
JP2010160787A (ja) * 2008-12-11 2010-07-22 Jedat Inc パラメータ情報作成システム、歩留まり算出システム、プログラム及び記録媒体
US8374839B2 (en) * 2008-12-11 2013-02-12 Jedat Inc. System for creating parameter information, system for estimating yields, program and recording medium
US20120046929A1 (en) * 2010-08-20 2012-02-23 International Business Machines Corporation Statistical Design with Importance Sampling Reuse

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180115208A (ko) * 2017-04-12 2018-10-22 삼성전자주식회사 회로 수율 분석 방법 및 회로 수율 분석을 위한 시스템

Also Published As

Publication number Publication date
TW201447765A (zh) 2014-12-16
TWI629642B (zh) 2018-07-11
US9846753B2 (en) 2017-12-19
JP2014229311A (ja) 2014-12-08
JP6381962B2 (ja) 2018-08-29
CN104182268B (zh) 2019-01-18
CN104182268A (zh) 2014-12-03
KR102061763B1 (ko) 2020-01-03
US20140350900A1 (en) 2014-11-27

Similar Documents

Publication Publication Date Title
KR102061763B1 (ko) 시뮬레이션 시스템 및 방법, 상기 시스템을 포함하는 컴퓨팅 시스템
Stephenson et al. On the existence of multiple climate regimes
US11106790B2 (en) Dimensionality reduction of computer programs
MacNamara et al. Stochastic chemical kinetics and the total quasi-steady-state assumption: application to the stochastic simulation algorithm and chemical master equation
US10599808B2 (en) Method and system for determining circuit failure rate
US11568204B2 (en) Optimization apparatus and control method thereof
CN106547852B (zh) 异常数据检测方法及装置、数据预处理方法及系统
KR101889451B1 (ko) 트레이닝 데이터를 위한 가중치 이득 평가기
US8204714B2 (en) Method and computer program product for finding statistical bounds, corresponding parameter corners, and a probability density function of a performance target for a circuit
KR102582921B1 (ko) 학습 장치, 추론 장치 및 학습 완료 모델
CN116227240B (zh) 基于综合应力加速试验的产品寿命评价方法、装置及设备
US20210151128A1 (en) Learning Method, Mixing Ratio Prediction Method, and Prediction Device
CN117980923A (zh) 用于实现量子代码的校准解码器
US9235675B2 (en) Multidimensional monte-carlo simulation for yield prediction
US10325056B1 (en) Failure boundary classification and corner creation for scaled-sigma sampling
US20160239589A1 (en) Automatic calibration of thermal models
WO2020240770A1 (ja) 学習装置、推定装置、学習方法、推定方法及びプログラム
Iwashita et al. Convergence acceleration of preconditioned conjugate gradient solver based on error vector sampling for a sequence of linear systems
CN113779926A (zh) 一种电路的检测方法、装置、电子设备及可读存储介质
KR101872823B1 (ko) 정적 램의 수율 예측 방법
Ivanichkina et al. Computer simulator of failures in super large data storage
CN116303100B (zh) 一种基于大数据平台的文件集成测试方法及系统
US10102336B2 (en) Stable genes in comparative transcriptomics
US20160283627A1 (en) Time domain response simulation system
Bu et al. Second order hierarchical partial least squares regression-polynomial chaos expansion for global sensitivity and reliability analyses of high-dimensional models

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right