KR20210103506A - 대규모 및 광폭 데이터를 프로세싱하기 위한 프로세서 제어 툴 - Google Patents
대규모 및 광폭 데이터를 프로세싱하기 위한 프로세서 제어 툴 Download PDFInfo
- Publication number
- KR20210103506A KR20210103506A KR1020217021987A KR20217021987A KR20210103506A KR 20210103506 A KR20210103506 A KR 20210103506A KR 1020217021987 A KR1020217021987 A KR 1020217021987A KR 20217021987 A KR20217021987 A KR 20217021987A KR 20210103506 A KR20210103506 A KR 20210103506A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- variables
- predictor values
- subset
- input data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0218—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
- G05B23/0224—Process history based detection method, e.g. whereby history implies the availability of large amounts of data
- G05B23/024—Quantitative history assessment, e.g. mathematical relationships between available data; Functions therefor; Principal component analysis [PCA]; Partial least square [PLS]; Statistical classifiers, e.g. Bayesian networks, linear regression or correlation analysis; Neural networks
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0259—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
- G05B23/0267—Fault communication, e.g. human machine interface [HMI]
- G05B23/0272—Presentation of monitored results, e.g. selection of status reports to be displayed; Filtering information to the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
- G06F16/287—Visualization; Browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Automation & Control Theory (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Linguistics (AREA)
- Computational Mathematics (AREA)
- Fuzzy Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- General Factory Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
자동화된 제조 동작들로부터의 광폭 데이터를 프로세싱하기 위한 프로세스 제어 툴이 제공된다. 이러한 툴은 특징 선택자, 분석 서버, 및 시각화 엔진을 포함한다. 특징 선택자는, 적어도 하나의 제조 프로세스 애플리케이션으로부터 프로세스 입력 데이터를 수신하는 것, 여기서 프로세스 입력 데이터는 복수의 관찰들 및 관련된 변수들을 포함함, 수신된 프로세스 입력 데이터를 각각의 관찰 내의 각각의 변수에 대해 하나의 행을 갖는 스택 포맷으로 변환하는 것, 식별된 범주형 변수들을 수치형 변수들로 변환하고 그리고 식별된 시-계열 데이터를 고정된 수의 구간들로 변환하는 것, 예측자 값들과 결과 변수 간의 관계들의 강도들의 척도가 되는 통계치들을 컴퓨팅하는 것, 예측자 값들을 정렬, 필터링, 및 피봇하는 것을 행한다. 분석 서버는, 필터링된 예측자 값들 내의 예측자 값들 간의 상호작용들을, 예를 들어, 최대 가능성 계산들 또는 미리정의된 검색들을 사용하여, 식별하기 위해 적어도 하나의 동작을 수행한다. 시각화 엔진은, 제조 동작들을 관리하는데 사용하기 위해 이러한 상호작용들을 디스플레이한다.
Description
본 출원은 미국 가특허 출원 번호 제62/780,095호(출원일: 2018년 12월 14일; 발명의 명칭: "System and Method for Selecting Important Parameters and Measurements in Wide Datasets")에 대해 우선권을 주장하며, 이러한 특허문헌의 전체 내용들은 모든 목적들을 위해 참조로 본 명세서에 완전히 통합된다.
본 개시내용은 일반적으로 제조 동작(manufacturing operation)들을 위한 프로세스 제어 툴(process control tool)들에 관한 것이고, 특히 복잡한 제조 동작들에 의해 발생된 대규모 및 광폭 데이터 구조(big and wide data structure)들에서 중요한 파라미터(important parameter)들을 발견(discovering)하기 위한 프로세스 제어 툴에 관한 것이다.
대규모-데이터 요건(Big-Data requirement)들을 처리하기 위한 많은 특정 사용 사례들, 최상의 분석 수단들, 방법들, 및 시스템들이 존재한다. 하지만, 이용가능한 시스템들 및 소프트웨어 툴들은 대규모-데이터를 많은 수의 논리적 행(row)들 혹은 사례(case)들(분석들의 단위(unit)들)을 갖는(상대적으로 더 적은 수의 논리적 열(column)들 혹은 변수(variable)들을 갖는) 것으로서 특징짓는다. 구체적인 예로서, 전형적인 고객 거래 데이터베이스(customer transaction database)들은, 수백만 혹은 수억 개의 고객들 및 거래들(분석들의 "행들" 및 단위들)을 포함할 수 있고, 여기서 각각의 논리적 행은, 최근 거래들의 날짜들, 구입된 제품들, 소비된 돈의 양, 인구통계학적 정보, 및 특정 고객들을 설명하는 다른 속성들, 등과 같은, 단지 상대적으로 적은 수(예컨대, 몇백 혹은 몇천 개의) 특징들 혹은 "변수들"만을 포함할 수 있다. 이러한 데이터에 대해, 분석 모델링(analytic modeling), 클러스터링(clustering), 또는 예측 모델링(predictive modeling)을 위한 기존의 방법들은 잘 정의되어 있고 성숙되어 있으며, 그리고 이러한 방법들은 일반적으로 계산 노드(computational node)들의 클러스터(cluster)에 분석들을 푸시(push)하고, 여기서 행들(고객들)에 관한 계산들은 각각의 애플리케이션(application)들에 대한 성능 요건(performance requirement)들을 충족시키기 위해 병렬화(parallelize)될 수 있다.
본 개시내용의 특징들 및 장점들의 더 완벽한 이해를 위해, 수반되는 도면들과 함께 상세한 설명이 이제 참조되는데, 상이한 도면들에서 대응하는 번호들은 대응하는 부분들을 나타내고, 도면들에서,
도 1은, 특정 예시적 실시예들에 따른, 자동화된 제조 동작들로부터 발생된 광폭 및 대규모 데이터를 관리하기 위한 프로세스 제어 시스템의 예시이고;
도 2A 및 도 2B는, 특정 예시적 실시예들에 따른, 프로세스 시스템의 프로세스 제어 툴의 특징 선택, 분석 및 시각화를 위한 알고리즘들에 대한 흐름도들의 예시들이고;
도 3은, 특정 예시적 실시예들에 따른, 대규모 및 광폭 데이터 구조 변환의 예시이고; 그리고
도 4는, 특정 예시적 실시예들에 따른, 컴퓨팅 머신 및 시스템 애플리케이션들을 도시한 블록도이다.
도 1은, 특정 예시적 실시예들에 따른, 자동화된 제조 동작들로부터 발생된 광폭 및 대규모 데이터를 관리하기 위한 프로세스 제어 시스템의 예시이고;
도 2A 및 도 2B는, 특정 예시적 실시예들에 따른, 프로세스 시스템의 프로세스 제어 툴의 특징 선택, 분석 및 시각화를 위한 알고리즘들에 대한 흐름도들의 예시들이고;
도 3은, 특정 예시적 실시예들에 따른, 대규모 및 광폭 데이터 구조 변환의 예시이고; 그리고
도 4는, 특정 예시적 실시예들에 따른, 컴퓨팅 머신 및 시스템 애플리케이션들을 도시한 블록도이다.
본 개시내용의 다양한 실시예들을 만들고 사용하는 것이 아래에서 상세히 논의되지만, 본 개시내용은 많은 적용가능한 발명적 개념들을 제공하고, 이러한 개념들은 매우 다양한 특정 상황들에서 구현될 수 있음이 이해돼야 한다. 본 명세서에서 논의되는 특정 실시예들은 단지 예시적인 것이고 그리고 본 개시내용의 범위를 정하는 것이 아니다. 명확함을 위해, 실제 구현의 모든 특징들이 본 개시내용에서 설명되지 않을 수 있다. 임의의 이러한 실제 실시예의 개발에서, 구현예마다 변할 시스템-관련 제약들 및 사업-관련 제약들의 준수와 같은 개발자의 특정 목표들을 달성하기 위해 수많은 구현-특정 결정들이 행해져야만 함이 당연히 이해될 것이다. 더욱이, 이러한 개발 노력이 복잡하고 시간-소모적일 수 있지만, 이는 본 개시내용의 혜택을 갖는 본 발명의 기술분야에서 통상의 기술을 가진 자들에 대해서 일상적인 작업이 됨이 이해될 것이다.
데이터 구조들은 열들 및 행들의 수에 의해 특징지어지고, 종종 이들은 극히 많은 수의 열들 및 상대적으로 적은 수의 행들을 포함하는데, 하지만 종종 수백만 개의 행들이 또한 존재한다. 이러한 대규모-및-광폭 데이터 구조들은 사실 다양한 영역들에서 그 빈도가 증가하며 일어나지만, 특히 툴들 및 프로세스들이 극히 잘 계측화(instrument)되는 반도체 제조에서 그러하다. 수백만 개의 파라미터(parameter)들이 로트(lot), 웨이퍼(wafer), 및 다이(die)에 의해 정렬(align)될 수 있고, 이것이 모든 프로세싱 단계들에 걸쳐 제조 프로세스를 상세히 설명하는 것은 드문 일이 아니다. 일반적으로, 자동화된 제조(automated manufacturing)에서, 수천 개의 센서(sensor)들이 존재할 수 있고, 설비(facility), 머신(machine) 혹은 툴(tool), 및 센서(sensor)에 의해 인덱스(index)되는 (예컨대, 전기적) 테스트 데이터 파라미터(test data parameter)들이 존재할 수 있다. 추가적으로, 센서들은 실행 동안 프로세스 조건(process condition)들의 시공간 맵핑(temporospatial mapping)들을 기록(record)할 수 있고, 이러한 측정들이 각각의 센서에 대한 변수들(열들)로 코딩(code)될 때, 데이터의 차원(dimensionality) 혹은 폭(width)은 더 증가한다. 이러한 타입들의 기록들은 각각의 논리적 행(예컨대, 로트/웨이퍼)에 대해 많은 수의 시계열들을 생성하고, 그럼으로써 파형(waveform)들을 갖는 데이터의 차원 혹은 폭을 더 증가시키게 된다. 시계열 데이터(time series data)는 모든 행들에 걸쳐 고정된 수의 경과된 시구간(elapsed time interval)들로 집계(aggregate)될 수 있고, 그리고 집계 측정(aggregate measurement)들이 후속 분석들에 예측자 변수(predictor variable)들로서 추가될 수 있다. 수백 개의 시계열들에 대해 수행되는 이러한 데이터 준비 단계는 상당한 수의 예측자 변수들을 추가할 수 있고, 이것은 또한 데이터의 차원 혹은 폭을 증가시킨다.
많은 수의 변수들의 문제에 추가하여, 반도체 제조 프로세스들을 설명하는 데이터는 종종 많은 고유한 라벨(label)들을 갖는 개별 측정들을 포함한다. 예를 들어, 웨이퍼들의 로트들은 특정 툴들을 포함하는 많은 수의 프로세싱 단계들을 통해 이동된다. (고유한 툴 라벨들을 갖는) 많은 수의 고유한 툴들이 각각의 개별 로트를 프로세싱할 때, 결과적인 데이터는 많은 수의 프로세싱 단계들 각각에서 적용된 각각의 특정 개별 라벨을 기록할 것이다. 각각의 프로세싱 단계에서 사용된 수 백개의 툴들(라벨들)이 존재하기 때문에, 이러한 개별 변수들에서의 높은 카디널리티(cardinality)의 문제가 처리돼야만 한다. 높은-카디널리티-데이터 문제는 광폭-및-대규모 데이터 문제와 관련되어 있는데, 왜냐하면 개별 데이터가 종종 (예를 들어, 원-핫(one-hot) 또는 더미-변수(dummy-variable) 인코딩을 통해) 다수의 표시자 열(indicator column)들에 기록되어 데이터 내의 전형적으로 이미 많은 수의 변수들에 더 추가되기 때문이다.
많은 애플리케이션들에 대한 요건은, 유용한 근본-원인 분석들(root-cause analyses), 예측 모델링(predictive modeling), 위험 모델링(risk modeling), 오류 식별 및 분류(fault identification and classification), 및 수율-예측(yield-forecasting), 등을 수행하는 것이고, 여기서 분석들은 가능하게는 수백만 개의 변수들에 의해 특징지어지는 대규모-및-광폭 데이터에 대해 적용돼야만 한다. 이러한 맥락에서 용어 모델링은 분석 목표들 및 방법들을 지칭하는데, 예컨대, (1) 어떤 중요한 결과들의 예측 모델들을 구축하기 위한 지도형 학습(supervised learning)(예컨대, 신뢰도 분석, 수율 예측, 또는 근본-원인 분석을 위한 것); (2) 대규모 데이터의 행들 및/또는 열들 내의 구조를 식별하기 위한 비지도 학습(unsupervised learning)(예컨대, 시계열 데이터의 연속적인 청크(chunk)들에 의해 정의되는 바와 같은, 행들의 클러스터링(clustering), 변수들의 클러스터링, 상태(state)들의 클러스터링); 그리고/또는 (3) 이상 검출(anomaly detection)(예컨대, 대다수의 데이터에 의해 정의되는 "정상적인(normal)" 패턴들에 대한, 측정된 변수들 중 일부, 대부분, 또는 모두에 걸친 특이한 패턴들의 검출)과 같은 것을 지칭한다.
이러한 분석들은 전형적으로 각각의 분석 문제에 관해 준비, 분석, 및 보고를 행하기 위해 모델링 파이프라인(modeling pipeline)들, 즉, 해당 프로세싱 단계들의 파이프라인에 정렬되는 순차적 프로세싱 단계들의 개발을 요구한다. 여기서 특정 문제는 수백만 개의 열들을 갖는 이러한 데이터에 대해 모델링 파이프라인을 병렬화하는 것이 훨씬 더 어렵다는 것이다. 현지 저장 위치(on-site storage location)로부터 원격 분석-컴퓨팅 환경(remote analysis-computing environment)으로 데이터를 이동시키는 것, 또는 계산들을 위해 전체 데이터세트를 메모리에 맞추는 것은 비실용적이거나 불가능하다. 현재, 대규모-및-광폭 데이터와 관련된 분석적 도전과제들을 만족스럽고 효율적으로 해결할 수 있는 이용가능한 일반적으로-수용되거나 특출난 방법들 혹은 시스템들은 존재하지 않는다. 더욱이, 대규모 데이터를 단순히 처리하도록 설계된 임의의 기존의 해법들은, 제조 프로세스에서의 비정상들의 시간-지연된 검출로 인해 결과적으로 제품 및 시간의 손실, 그리고 이에 따른 비용의 손실을 초래할 수 있는 복잡한 제조 상황들에서 동작 문제들을 효과적으로 해결하기 위해 실-시간으로 혹은 거의 실-시간으로 필요한 모델링 및 분석을 수행하는 능력들이 없다.
본 명세서에서 제시되는 시스템은 앞서언급된 문제들을 처리하고, 그리고 순차적으로 그리고/또는 비동기적으로(asynchronously) 분석들을 효율적으로 수행하기 위해 분산 프로세싱 환경(distributed processing environment)에서 작동하는 두 개의 컴포넌트(component)들을 포함하고, 아울러 데이터에 대한 실-시간 혹은 거의 실-시간 액세스를 제공하기 위한 세 번째 시각화 컴포넌트(visualization component)를 포함한다. 일 실시예에서, 두 개의 컴포넌트들 중 첫 번째 컴포넌트는 프로세스 데이터에 근접하여 작동하고, 그리고 프로세스 데이터가 더 작은 크기로 감소된 이후, 데이터는 두 번째 컴포넌트로 이동될 수 있는데, 여기서 데이터는 더 효율적인 인-메모리 환경(in-memory environment)에서 프로세싱될 수 있다. 즉, 이러한 실시예에서, 첫 번째 컴포넌트는 데이터 가까이에서 예측자들의 초기 특징 선택을 행하고, 두 번째 컴포넌트는 선택된 예측자들의 서브세트(subset)를 취하고, 그리고 효율적인 인-메모리를 사용하여(또는, 인-단일-전용-계산-환경(in-single-dedicated-computation-environment) 계산들을 사용하여) 추가적인 프로세싱(즉, 더 강력한 프로세싱(intense processing))을 수행한다.
첫 번째 컴포넌트는 아파치 하둡(Apache Hadoop®) 또는 아파치 스파크(Apache Spark™)와 같은 멀티-노드 병렬 데이터 프로세싱 시스템(multi-node parallel data processing system)이고, 여기서 초기 데이터 준비, 특징 선택, 특징 엔지니어링(feature engineering), 및 다른 데이터 집계(aggregation), 스케일링(scaling), 및 다른 동작들이, 대규모 및 광폭 데이터를 효율적으로 프로세싱 및 필터링(filter)될 수 있는 스택 구조(stacked structure)로 변환하기 위해 수행된다. 하지만, 데이터를 스택하는 것은 단지 요구될 때만 수행되는 선택적인 단계임이 이해돼야 한다. 결과는 후속 프로세싱을 위해 광폭 데이터 세트로 피봇(pivot)될 수 있다. 이러한 컴포넌트는 병렬화된 그리고 최적화된 인-데이터베이스(in-database)(즉, 인-클러스터(in-cluster)) 데이터 프로세싱을 위해 이용가능한 기술들로부터 혜택을 받을 수 있는데, 예컨대, 티브코 스팟파이어 데이터 사이언스(TIBCO Spotfire® Data Science)를 통해 혜택을 받을 수 있다. 그 다음에, 이러한 단계들 이후에는 최종 모델 구축(final model building) 및 추가 모델 개선(further model refinement)이 전용 분석 서버(dedicated analytics server) 상에서 행해지는데, 여기서 이러한 계산들은 인-메모리로 빠르게 수행될 수 있고, 그리고 이제 더 이상 대규모 데이터가 아닌 데이터로 수행될 수 있다. 이러한 이제 더 이상 대규모 데이터가 아닌 데이터에 대한 병렬화된 인-데이터베이스 계산들에 대해 정렬할 계산 오버헤드(computational overhead)는 이러한 계산들을 비효율적으로 만들게 되며, 반면 인-데이터베이스 대규모-데이터 동작들의 시퀀싱(sequencing) 및 후속하는 온-서버 계산(on-server computation)들은 연속적인 동작들에 대해 양쪽 시스템들 상에서의 효율적인 연속 계산들을 가능하게 한다. 결과적으로, 예를 들어, 반도체 제조자들에서 근본-원인 분석을 지원할 때, 애플리케이션(들)은 그들의 대규모-데이터 플랫폼들 상에서의 (종종 페타바이트(petabyte)들의) 데이터에 대해 데이터 준비 및 특징 선택/추출을 연속적으로 수행할 수 있고, 반면 결과들의 최종 계산들은 결과들의 최종 소비를 위해 전용 계산 서버 및 시각화 플랫폼으로 전달된다. 세 번째 컴포넌트는 티브코 스폿파이어(TIBCO Spotfire®)와 같은 시각적 탐색 플랫폼(visual exploration platform)이고, 이것은 사용자들로 하여금 최종 결과들을 상호작용적으로 탐색(explore)할 수 있게 하며, 그럼으로써 가능하게는 수백만 개의 입력 변수들을 갖는 대규모-및-광폭 데이터 구조들의 분석들에 근거하여 관심있는 정보(information of interest)를 추출할 수 있게 한다. 따라서, 제안된 시스템은 특정 계산 부하들(computational load)이 수행되기에 가장 적합하게 특정 계산 부하들을 할당하는데 효율적이다.
시스템은 대규모 데이터이기도 한 광폭 데이터를 관리하기 위한 효율적이고 효과적인 컴퓨터 시스템을 포괄적으로 설명한다. 대규모 및 광폭 데이터는, 계산들 중 일부 혹은 대부분이 데이터의 최소의 이동과 함께 데이터에 근접하여 수행되는 것(즉, 인-데이터베이스로 수행되는 것)을 요구한다. 모든 계산들을 오로지 인-데이터베이스로만 수행하기 위한 표준 방법들 및 알고리즘들은 실용적이지 않는데, 왜냐하면 전형적으로 이들은 많은 수의 (열들이 아닌) 행들에 대해 최적화되어 있기 때문이다. 따라서, 시스템은 이전에 설명된 바와 같은 특정 분석들 및 분석 목표들 그리고 사용 사례들에 대해 중요한 변수들의 서브세트를 선택하기 위해 인-데이터베이스로 수행되고 병렬화된 계산들을 사용하는 특정 분석 단계들을 결합한다. 그 다음에, 변수의 선택된 서브세트는 매우 빠른 방식으로 전용 분석 서버들 상에서 프로세싱될 수 있다.
본 명세서에서 제시되는 시스템은, 프로세스 모니터링(process monitoring) 및 이상 검출, 예측 분석 및 오류 분류, 그리고 (자동화된) 근본-원인 분석을 위한 요건들을 충족시키기 위해, 대규모 및 광폭 데이터 문제들, 뿐만 아니라 매우-높은-차원의 데이터(very-high-dimensional data) 혹은 매우-높은-카디널리티의 개별 변수들을 갖는(예컨대, 수천 개의 별개의 범주들을 갖는) 데이터를 분석하는 것과 관련된 고유한 문제들을 처리하는 특정 분석적 접근법들, 작업흐름(workflow)들, 및 계산 아키텍처(computational architecture)들을 설명한다. 시스템은 반도체 제조를 포함하는 자동화된 제조 애플리케이션들과 관련된 특정 문제들을 처리하도록 설계되고, 그리고 민첩한 그리고 고도로 상호작용인 그리고 시각적인 분석 환경을 가능하게 한다. 일반적인 접근법은 또한 유사한 대규모-및-광폭 데이터 그리고 분석 문제들이 일어나는 다수의 다른 영역들에서 응용가능성(applicability)을 갖는다.
이제 도 1을 참조하면, 도면번호 10으로서 전반적으로 표시된, 특정 예시적 실시예들에 따른, 자동화된 제조 동작(automated manufacturing operation)들로부터 발생된 광폭 및 대규모 데이터를 관리하기 위한 프로세스 제어 시스템(process control system)이 예시된다. 시스템(10)은, 반도체 제조 애플리케이션들과 같은 적어도 하나의 복잡한 제조 애플리케이션(42A-42N)으로부터의 자동화된 제조 동작들(40)로부터 수신된 데이터를 프로세싱하기 위한 프로세스 제어 툴(process control tool)(20)을 포함한다. 프로세스 제어 툴(20)은 이러한 복잡한 제조 동작들로부터의 생산 수율(production yield)들을 관리하는 자들에 대해 상당한 혜택들을 가질 수 있는 시각화(visualization)들을 실-시간으로 혹은 거의 실-시간으로 렌더링(render)하기 위한 멀티-스테이지(multi-stage) 데이터 프로세싱, 변환 및 분석 시스템을 포함한다. 프로세스 제어 툴(20)은, 주요 프로세스 표시자(key process indicator)들의 시각화를 위해 프로세스 데이터의 매우 큰 세트들로부터 주요 프로세스 표시자들을 발생시키기 위해서, 데이터 준비, 특징 선택, 멀티-노드 인-데이터베이스 계산(multi-node in-database computation)들, 모델 구축, 특징 선택의 재귀적 적용(recursive application), 및 파라미터 순위결정(parameter ranking)과 같은 태스크(task)들을 수행하기 위한 컴퓨팅 클러스터(computing cluster)(멀티-노드 인-데이터베이스 시스템)(22), 분석 서버(analysis server)(24), 및 시각화 서버(visualization server)(26)를 포함한다. 일 실시예에서, 분석 서버(24)는 본 명세서에서 정의되는 기능들을 수행하기 위해 전용인 분석 서버일 수 있다.
이제 도 2A 및 도 2B를 참조하면, 도면번호 60으로서 전반적으로 표시된, 특정 예시적 실시예들에 따른, 프로세스 제어 툴(20)의 특징 선택, 분석 및 시각화 알고리즘의 흐름도들이 예시된다. 특징 선택 알고리즘은 데이터에 대한 인-데이터베이스 병렬화 실행에 대해 특정적으로 최적화된 다수의 알고리즘들을 사용할 수 있다. 이러한 알고리즘들의 예들은 스파크 카이-제곱 선택자 알고리즘(Spark Chi-square selector algorithm), 부스트 트리 알고리즘(the Boosted Trees algorithm), 배깅 트리 알고리즘(Bagged Trees algorithm)(무작위 포레스트(Random Forest)들), 및 변수별 구분점 (세그먼트된) 회귀 알고리즘(variable-by-variable breakpoint (segmented) regression algorithm)들을 포함한다. 특정 분석 알고리즘들이 예를 들어, 평균(mean)들, 표준 편차(standard deviation)들, 및 더 높은 모멘트(moment)들의 계산들 동안 중심 상수(centering constant)들을 사용함으로써, 요구된 계산들의 수치 안정성(numeric stability)을 보장하기 위해 이러한 계산들에서 적용될 수 있다. 분석 및 시각화 알고리즘은 또한, 적어도 하나의 전용 분석 서버를 사용하여 실행되는 특징 선택 및 모델 구축, 특징 선택 및 파라미터 순위결정 파이프라인의 재귀적 적용, 및 결과들의 시각화를 포함한다.
도 2A는 특징 선택 알고리즘을 설명하고 블록(62 및 64)에서 시작하며, 여기서는 수신된 프로세스 데이터(프로세스 관찰들 및 측정 데이터(90)에 대해 도 3 참조)가 멀티-노드, 멀티모드 계산 클러스터(22)를 통해 인-데이터베이스 계산들을 위해 준비된다. 이러한 단계에서, 예컨대, 하둡(Hadoop®)에 저장된 광폭 및 대규모 데이터가 추가 프로세싱을 위해 액세스(access)될 수 있다. 프로세스 데이터는 효율적인 후속 병렬화 인-데이터베이스 프로세싱을 위해 논리적으로 정렬될 수 있다. 데이터는 스택될 수 있고(도 3 참조), 이에 따라 데이터의 각각의 논리적 행은 측정 ID(프로세스 관찰 ID), 행 ID, 및 실제 측정(프로세스 관찰)을 통해 하나의 데이터 포인트(data point)(측정)을 설명(인덱스(index))한다. 이러한 변환은 인-데이터베이스 계산들을 수행하기 위해 멀티모드 계산 클러스터(multimode computational cluster)(22), 즉 계산 클러스터(computational cluster)(22)에서 특징 선택 방법들의 효율적인 병렬화를 가능하게 한다. 하지만, 데이터는 요구된 경우에만 스택된다.
데이터 액세스 및 데이터의 올바른 구조화는, 극히 광폭인 데이터 세트들 또는 광폭 및 대규모 데이터 세트들을 프로세싱할 때, 요구된 성능을 달성하기 위해 중요하다. 예를 들어, 데이터를 논리적 행들에 의해 광폭(스택되지 않은) 데이터 포맷으로 조직화하는 것(여기서, 각각의 행은 분석의 단위(예컨대, 웨이퍼)를 나타내고, 그리고 열들은 특징들 혹은 변수들(예컨대, 웨이퍼들에 관한 측정들, 웨이퍼들의 제조와 관련된 센서 트레이스(sensor trace)들)을 나타냄)은 효율적이지 않다. 이것은 복잡한 제조 동작들에 대해 심각한 그리고 비용이 많이 드는 문제일 수 있으며, 여기서 실-시간으로 혹은 거의 실-시간 프로세스 데이터에 대한 액세스의 결여(lack)는 동작들에 심각하게 영향을 미칠 수 있다.
블록(66, 68, 70, 및 72)에서, 범주형 (개별, 코팅된) 프로세스 입력 변수들이 자동적으로 식별될 수 있고, 임팩트-코딩 방법을 사용하여 코딩될 수 있다. 본질적으로, 개별 변수들은 연속 예측자들로 변환된다. 연속 예측자 변수들은 디폴드(default)에 의해 변환되지 않지만 사용자들은 제곱-근 변환(square-root transformation)들, 로그-변환(log-transformation)들, 등과 같은 하나 이상의 수치 변환(numeric transformation)을 적용함으로써 새로운 예측자 변수들을 유도(derive)하는 것을 선택할 수 있다. 개별 예측자들은 문헌("Modeling Trick: Impact Coding of Categorical Variables with Many Levels." Win-Vector Blog, July 23, 2012; 저자: 엔. 주멜(N. Zumel))에서 설명되는 임팩트-코딩 방법을 사용하여 연속 예측자들로 변환될 수 있다. 하지만, 이러한 주멜(Zumel)의 문헌에서 가르쳐주지 않았던 것은 본 개시내용에서 설명되는 구현이었다(여기서 각각의 개별 예측자 변수에 대한 데이터는 두 개의 무작위 샘플(sample)들로 무작위로 분할됨). 이 경우, (연속 결과들에 대한) 평균들 또는 (범주형 결과들에 대한) 평균 빈도들이 각각의 샘플에 대해 개별적으로 개별 예측자 변수에서 각각의 범주에 대해 컴퓨팅된다. 그 다음에, 두 개의 무작위 샘플들 각각에서의 개별 코드들은 다른 샘플에서의 데이터로부터 컴퓨팅된 평균들에 의해 대체되고, 이에 따라 개별 예측자 변수들에 대한 모든 행들이 연속 값들로 다시코딩(recoding)된다. 결과적으로, 모든 개별 변수들은 후속 단계들에서 연속 예측자 변수들로서 처리될 수 있다. 더욱이, 임팩트-코딩 방법은 이러한 입력 변수들을 교차 검증 기법(cross validation technique)들을 사용하여 단일-열 순위결정된 데이터로 변환한다.
추가적으로, 시-계열 입력 프로세스 데이터가 식별될 수 있고, 공통 집계 기능(common aggregation function)들을 사용하여 고정된 수의 구간(interval)들로 변환될 수 있다. 예를 들어, SAX-스타일 코딩 방법이, 고정된 수의 시구간들(즉, 각각의 계열에 대해 동일한 수의 구간들)에 대한 집계 값(aggregate value)들을 생성하는데 사용될 수 있다. 시-계열 데이터(파 형태(wave form)들)에 대한 SAX-스타일 코딩: 심볼 집계 근사화(Symbolic Aggregate approXimation) 혹은 SAX 코딩 방법은 수많은 애플리케이션들에서 규모에 따라 시계열 패턴들(파 형태들)을 비교하기 위한 효과적인 기법임이 입증되었다. 예컨대, 문헌(J. Lin, E. Keogh, L. Wei, and S. Lonardi. "Experiencing SAX: A Novel Symbolic Representation of Time Series." Data Mining and Knowldege Discovery, vol. 15, 2, p. 107-144, 2007)을 참조하기 바란다. 이것은 상이한 시계열들이 (약간 다른 경과된 시간들에서 일어나는 동일한 패턴들을 나타내는) 약간의 시간-이동(time-shift)들을 갖는 패턴들을 포함하는 경우에도 유효하고, 이것은 동적 시간 워핑(Dynamic Time Warping, DTW) 알고리즘들과 같은 시계열들을 조정(reconciling)하기 위한 계산적으로 비싼 방법들을 적용할 필요가 없게 한다. DTW는 또한, 계열들 간의 더 좋은 정렬을 달성하기 위해, SAX-코딩된 시-구간-기반 값(SAX-coded time-interval-based value)들에도 사용될 수 있다. 요컨대, SAX 코딩은, 시계열들에 대한 값들의 범위에 걸쳐 시-계열 표준 편차들의 배수로서 각각의 평균 값을 나타내기 위해, (a) 특정 고정된 수의 시구간들에 값들을 집계함으로써, 그리고 (b) 전형적으로 문자(letter)들 혹은 정수(integer)들에, 또는 각각의 구간 내의 최대 혹은 최소 값들과 같은(이에 한정되는 것은 아님) 다른 집계 값들에 시구간들 내의 시계열 값들을 집계함으로써, 시계열들 내의 연속 관찰들을 변환할 수 있다. 추가적으로, 시계열들로부터 수들의 벡터(vector)들을 추출하기 위한 다른 일반적인 부상하는 기법들이, 시계열 데이터를 다른 개별 혹은 연속 입력 변수들에 맞게 정렬하기 위해, 시계열 데이터에 적용될 수 있다.
이러한 계산들의 결과는, 광폭 데이터 내의 각각의 변수에 대한 변수 중요도 (예측자) 값들의 리스트(list)인데, 즉, 특정 분석 문제(클러스터링 혹은 비지도 학습; 예측 혹은 지도 학습 및 근본-원인 분석)에 관한 중요도에 따른 변수별 서수적 순위(ordinal ranking)들의 리스트이다. 즉, 결과는 예측자 값들과 결과 간의 관계(relationship)들 또는 상관관계(correlation)들의 강도(strength)들의 척도가 되는 통계치(statistic)들을 포함한다.
도 2A의 특징 선택 알고리즘은, 각각의 입력과 출력 간의 단순한 선형 R-제곱된 값들(상관관계들)을 컴퓨팅함으로써 또는 각각의 입력과 출력 간의 연관성(관계)의 더 일반적인 통계치들을 컴퓨팅함으로써 변수 중요도를 결정하기 위한 상이한 방법들을 포함한다. 전자의 접근법이 더 빠르지만, 전자의 접근법은 연속 변수들 간의 고도의 비선형 관계들을 포착할 수 없다. 두 번째 접근법은, 각각의 예측자에 대한 비닝된 값(binned value)들 및 비닝된 혹은 개별 출력 변수들로부터 구성된 양-방향 빈도 테이블(two-way frequency table)들에 대해 컴퓨팅된 (이상치(outlier)들에 대해) 로버스트(robust)한 카이-제곱 통계치들에 기반을 두고 있으며, 이러한 접근법은 계산적으로 더 비싸지만, 비-선형 및 비-모노톤(non-monotone) 관계들을 검출하기 위해 종종 더 유용하다.
알고리즘은 예측자 변수들을 통해 1-차 검색(first-order search)을 수행할 수 있는데, 이들은 결과에 대한 그 영향에서 예측자들 간의 상호작용들을 특정적으로 검색하지 않을 것이다. 현실적인 문제로서, 이러한 것은 종종, 상호작용 영향들이 각각의 예측자들에 대한 주된 영향들에 추가하여 존재하는 경우이고, 그러한 경우에 예를 들어, 무작위 포레스트 알고리즘(Random Forest algorithm)에 근거하여 상호작용 영향들을 명시적으로 검색하는 후속 모델링 및 특징 선택은 이들을 식별할 수 있다. 문헌(E. Tuv, A. Borisov, G. Runger, and K. Torkkola, "Feature Selection with Ensembles, Artificial Variables, and Redundancy Elimination." Journal of Machine Learning Research, vol. 10, 2009, 1341-1366)을 참조하기 바란다. 또한, 반도체 제조에서의 많은 실제 애플리케이션들에서, 중요한 것으로서 식별된 개개의 예측자들(예컨대, 특정 센서들)의 특정 그룹들을 식별하는 것은 종종 근본 원인들에 대한 가장 진단적인 정보 및/또는 필요한 예방적 유지관리 단계들을 제공한다.
추가적으로, 예측자 변수들은 이러한 통계치들에 근거하여 정렬(order)되고, 그리고 예측자 변수들의 서브세트로 다운 필터링(filtered down)된다. 이러한 서브세트를 생성하기 위해서 데이터를 추출하기 위한 변수들의 수는 시스템의 사용자에 의해 제어될 수 있고, 또는 (완전히 자동화된 동작에 대해서는) 이전 블록에서 컴퓨팅된 전체 중요도 값들에 근거하여 자동적으로 결정될 수 있다. 데이터에 근접하여 효율적인 병렬 컴퓨팅 환경(예컨대, 스파크(Spark™))을 사용하여 광폭-및-대규모 데이터에 대해 수행된 분석들의 결과로서, "중요한" 예측자들의 서브세트가 식별되는데, 즉, 관심있는 결과에 대한 진단적인 예측자들이 식별된다. 예를 들어, 분석은 수백만 개의 예측자들 및 센서 파 데이터 중에서 정상 및 비정상 웨이퍼들 혹은 특정 고장 모드들을 구분하는 그러한 특정 예측자들 및 센서 트레이스들을 식별할 수 있다. 이러한 중요한 변수들의 더 작은 서브세트가 식별되었다면, 후속 분석들 및 모델링이 전용 분석 서버에서 수행될 수 있다. 더욱이, 이러한 계산들은 인-데이터베이스 병렬화 컴퓨팅 환경에서 수행되는 계산들에 대해 비동기적으로 일어날 수 있고, 이에 따라 인-데이터베이스 계산들이 새롭게 도착하는 데이터에 적용될 수 있되 두 번째 인-메모리 분석 국면이 동일한 시간에 진행되는 동안 적용될 수 있게 된다.
변수들의 결과적인 데이터세트, 즉, 서브세트를 포함하는 정렬된 리스트는 피봇되고(도 3 참조), 그리고 분석 알고리즘(도 2B)으로 전달된다. 수 백만개의 예측자들이 이러한 방식으로 조직화될 때, 효율적인 특징 선택, 예컨대 상관관계 분석들을 병렬화하는 것은 가능하지 않다. 대신, 데이터를 피봇(스택해제(unstacking))하여 데이터의 각각의 행이 웨이퍼, 파라미터, (시계열에 대한) 타입-스탬프(time-stamp), 및 각각의 측정 값을 식별시키도록 하는 것은 훨씬 더 효율적인 병렬 프로세싱 다운스트림을 가능하게 한다. 하지만, 예측자들의 서브세트가 인-메모리 고속 분석 서버(In-Memory Fast Analysis Server)(24)로 전달될 때, 데이터는 행(분석들의 단위들) 및 열들(파라미터들) 포맷으로 스택해제되는데, 이러한 포맷은 많은 머신-학습 알고리즘들에 대해 더 효율적이다.
도 2B에서는, 분석 및 시각화 알고리즘이 블록(74)에서 시작되고, 여기서는 변수들의 피봇된 서브세트가 수신되고 서브세트가 후속 프로세싱을 위해 추출된다. 데이터의 선택된 서브세트에 대한 데이터가 주어지는 경우, 전용 분석 서버 혹은 서버들은 예측 모델, 클러스터링 모델, 근본-원인 분석, 혹은 이상 검출을 완료하기 위해 최종 계산들을 효율적으로 인-메모리로 수행할 것이다. 이러한 계산들은 이와 같은(이제 더 이상 대규모가 아닌) 데이터에 일반적으로 적용되는 다양한 반복적 알고리즘들을 포함할 수 있는데, 이러한 알고리즘들은 다양한 회귀 알고리즘(regression algorithm)들(예컨대, 로지스틱 회귀(logistic regression)), 뉴럴 네트워크(neural network)들, 심층-학습 네트워크(deep-learning network)들, 또는 경사 부스트 트리(gradient boosted tree)들 및 트리넷(treenet)들을 포함하는 재귀 분할 알고리즘(recursive partitioning algorithm)들을 포함하지만, 이러한 것으로만 한정되는 것은 아니다. 그 다음에, 임의의 예측 확률들(prediction probabilities), 값들, 혹은 예측된 분류(predicted classification)들, 또는 클러스터링 할당들 혹은 거리들을 포함하는 이러한 모델의 결과들은 사용자에 의한 탐색 및 디스플레이를 위해 시각화 엔진으로 전달된다.
블록(76)에서, 리소스 집중적 계산(resource intensive computation)들을 요구하는 데이터 내의 변수들 및 행들이 식별된다. 블록(78)에서, 식별된 변수들 및 행들에 관한 동작들이 수행된다. 추가적으로, 만약 반복적으로 그리고 빈번하게 특정 센서에 속하는 수 개의 시구간들과 관련된 코딩된 값들이 중요한 것으로서 식별된다면, 예를 들어, 이전의 단계들에서 식별된 중요한 예측자들의 리스트에 적용된 간단한 규칙-기반 로직을 사용하여, 식별된다면, 인-메모리 분석 서버 알고리즘은 각각의 센서와 관련된 본래의 원시 데이터(original raw data)를 질의(query)할 수 있고 이들을 상호작용적 시각화를 위해 다운스트림(downstream)으로 보낼 수 있다. 이러한 방식으로, 반응형 상호작용적 드릴-다운(drill-down) 능력들을 갖는 의미있는 파형 분류 분석들이 매우 큰 데이터세트들에 대해서도 구현될 수 있다. 예를 들어, 로지스틱 회귀를 위한 최대-가능성-추정 계산(maximum-likelihood-estimation computation)들이 수행되고, 그리고/또는 중요한 변수들 간의 상호작용들에 대한 명시적(즉, 알고리즘적) 검색들이 수행된다. 동작들이 인-메모리(in-memory), 인-가상-메모리(in-virtual-memory), 및 멀티쓰레드(multithreaded) 계산들 중 적어도 하나의 계산에서 수행된다. 동작들은 병렬화되지 않고 완전히 독립적인 계산들이다. 선택사항(option)으로서, 분석 알고리즘은 중요한 예측자들 또는 파라미터들의 적절한 그리고 바람직한 서브세트가 식별될 때까지 여러 번(재귀적으로) 적용될 수 있다. 블록(80)에서, 결과들의 시각화들이 발생된다.
결과들의 시각화는, 예측된 분류들, 예측 확률들, 클러스터 결과들, 또는 각각의 분석 결과들의 품질(quality) 및 신뢰성(reliability) 및 재현성(reproducibility)에 관해 반영하는 관련된 통계치들을 렌더링(rendering)하기 위한 방법들을 포함한다. 예를 들어, 파레토-유사 챠트(Pareto-like chart)가, 임의의 파라미터 추정들, 예측된 값들, 클러스터 값들, 등에 대한 신뢰 구간(confidence interval)들과 함께, 최종 모델에 대해 선택된 변수들의 상대적 중요도를 디스플레이하기 위해 사용될 수 있다. 추가적으로, 박스-및-위스커 플롯(box-and-whiskers plot)들이, 각각의 분석의 특정 분석 목표들에 따라, 변수들 및/또는 클러스터들, 등 간의 관계들의 특정 성질(nature)을 조사(examine)하기 위해, 파레토-유사 챠트 내의 박스들 중 임의의 박스를 클릭(clicking)함으로써 상호작용적으로 렌더링될 수 있다. 결과들이 시각화될 수 있게 하는 또 하나의 다른 방식은 변수들의 네트워크들로서 존재하는 것인데, 여기서, 선택된 중요한 예측자들에 상당히 상관되어 있지만(혹은 단지 관련되어 있지만) 중요한 것으로 식별되지 않은 변수들은 네트워크 그래프(network graph) 내에서 에지(edge)들을 통해 중요한 변수들에 연결된 노드(node)들로서 보여진다. 따라서, 이러한 그래프는, 분석들에서 중요한 것으로서 식별된 예측자 변수들에서의 구조 및 클러스터링을 드러내는데, 이러한 변수들이 리던던트(redundant)였기 때문에 중요한 변수들의 최종 리스트로부터 배제된 경우에도 그러하다.
생산-크기 하둡(Hadoop®) 클러스터들 및 스파크(Spark™) 컴퓨팅 환경들에서의 속도 향상들은, 본 명세서에서 설명되는 시스템 아키텍처 및 알고리즘들이, 수백만 개의 예측자 변수들을 갖는 매우 광폭인 논리적 데이터세트들의 효율적인 분석들을 가능하게 하여, 종래의 접근법들 및 분석 툴이 유용한 통찰(insight)들이 도출될 수 있기 전에 며칠은 아니더라도 몇 시간을 요구했거나 전체적으로 실패했던 경우에도, 몇 분 내에 결과들을 반환할 수 있음을 입증한다.
이제 도 4를 참조하면, 예시적 실시예들에 따른, 컴퓨팅 머신(computing machine)(100) 및 시스템 애플리케이션들 모듈(system applications module)(200)이 예시된다. 컴퓨팅 머신(100)은 다양한 컴퓨터들, 모바일 디바이스(mobile device)들, 랩탑 컴퓨터(laptop computer)들, 서버들, 내장형 시스템(embedded system)들, 또는 본 명세서에서 제시되는 컴퓨팅 시스템들 중 임의의 것에 대응할 수 있다. 모듈(200)은 본 명세서에서 제시되는 다양한 방법들 및 프로세싱 기능들을 수행함에 있어 컴퓨팅 머신(100)을 용이하게 하도록 설계된 하나 이상의 하드웨어 혹은 소프트웨어 요소들(예를 들어, 다른 OS 애플리케이션 그리고 사용자 및 커널 공간 애플리케이션들)을 포함할 수 있다. 컴퓨팅 머신(100)은 내부 혹은 부착된 컴포넌트들을 포함할 수 있는데, 예컨대, 프로세서(processor)(110), 시스템 버스(system bus)(120), 시스템 메모리(system memory)(130), 저장 매체들(storage media)(140), 입력/출력 인터페이스(input/output interface)(150), 그리고 제조 프로세스 입력들을 수신하기 위해 네트워크(170)(예컨대, 루프백(loopback), 로컬 네트워크(local network), 광역 네트워크(wide-area network), 셀룰러(cellular)/GPS, 블루투스(Bluetooth), 와이파이(WIFI), 및 와이맥스(WIMAX))와 통신하기 위한 네트워크 인터페이스(network interface)(160), 그리고 제조 프로세스 입력들을 프로세싱하기 위한 프로세스 제어기(process controller)(180)를 포함할 수 있다.
컴퓨팅 머신(100)은 종래의 컴퓨터 시스템, 내장형 제어기, 랩탑, 서버, 모바일 디바이스, 스마트폰, 착용가능 컴퓨터, 맞춤형 머신, 임의의 다른 하드웨어 플랫폼, 또는 이들의 임의의 조합(combination) 혹은 중복(multiplicity)으로서 구현될 수 있다. 컴퓨팅 머신(100)은 데이터 네트워크 혹은 버스 시스템을 통해 상호연결된 다수의 컴퓨팅 머신들을 사용하여 기능하도록 구성된 분산형 시스템일 수 있다.
프로세서(110)는, 본 명세서에서 설명되는 동작들 및 기능을 수행하기 위해서, 그리고 요청 흐름(request flow) 및 어드레스 맵핑(address mapping)들을 관리하기 위해서, 그리고 계산들을 수행하고 커맨드(command)들을 발생시키기 위해서 코드 명령(code instruction)들을 실행하도록 설계될 수 있다. 프로세서(110)는 컴퓨팅 머신들 내의 컴포넌트들의 동작을 모니터링(monitor) 및 제어하도록 구성될 수 있다. 프로세서(110)는, 범용 프로세서(general purpose processor), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), 재구성가능 프로세서(reconfigurable processor), 마이크로제어기(microcontroller), 디지털 신호 프로세서(Digital Signal Processor)("DSP"), 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit)("ASIC"), 제어기(controller), 상태 머신(state machine), 게이티드 로직(gated logic), 개별 하드웨어 컴포넌트(discrete hardware component), 임의의 다른 프로세싱 유닛(processing unit), 또는 이들의 임의의 조합 혹은 중복일 수 있다. 프로세서(110)는 단일 프로세싱 유닛(single processing unit), 다수의 프로세싱 유닛들, 단일 프로세싱 코어(single processing core), 다수의 프로세싱 코어들, 특수 목적 프로세싱 코어들, 코-프로세서(co-processor)들, 또는 이들의 임의의 조합일 수 있다. 특정 실시예들에 따르면, 프로세서(110)는, 컴퓨팅 머신(100)의 다른 컴포넌트들과 함께, 하나 이상의 다른 컴퓨팅 머신들 내에서 실행되는 소프트웨어 기반 혹은 하드웨어 기반 가상화 컴퓨팅 머신(virtualized computing machine)일 수 있다.
시스템 메모리(130)는 비-휘발성 메모리(non-volatile memory)들을 포함할 수 있는데, 예컨대, 판독-전용 메모리(Read-Only Memory)("ROM"), 프로그래밍가능 판독-전용 메모리(Programmable Read-Only Memory)("PROM"), 소거가능 프로그래밍가능 판독-전용 메모리(Erasable Programmable Read-Only Memory)("EPROM"), 플래시 메모리(flash memory), 또는 인가된 전력을 갖거나 혹은 갖지 않는 상태에서 프로그램 명령들 혹은 데이터를 저장할 수 있는 임의의 다른 디바이스를 포함할 수 있다. 시스템 메모리(130)는 또한, 휘발성 메모리(volatile memory)들을 포함할 수 있는데, 예컨대, 무작위 액세스 메모리(Random Access Memory)("RAM"), 정적 무작위 액세스 메모리(Static Random Access Memory)("SRAM"), 동적 무작위 액세스 메모리(Dynamic Random Access Memory)("DRAM"), 및 동기식 동적 무작위 액세스 메모리(Synchronous Dynamic Random Access Memory)("SDRAM")를 포함할 수 있다. RAM의 다른 타입들이 또한 시스템 메모리(130)를 구현하는데 사용될 수 있다. 시스템 메모리(130)는 단일 메모리 모듈 또는 다수의 메모리 모듈들을 사용하여 구현될 수 있다. 시스템 메모리(130)가 컴퓨팅 머신의 일부인 것으로 도시되지만, 본 발명의 기술분야에서 숙련된 자는 시스템 메모리(130)가 본 기술의 범위로부터 벗어남이 없이 컴퓨팅 머신(100)으로부터 분리될 수 있음을 인식할 것이다. 시스템 메모리(130)가 저장 매체들(140)과 같은 비-휘발성 저장 디바이스를 포함할 수 있거나 이와 연계되어 동작할 수 있음이 또한 이해돼야 한다.
저장 매체들(140)은 하드 디스크(hard disk), 플로피 디스크(floppy disk), 콤팩트 디스크 판독-전용 메모리(Compact Disc Read-Only Memory)("CD-ROM"), 디지털 다용도 디스크(Digital Versatile Disc)("DVD"), 블루-레이 디스크(Blu-ray disc), 자기 테이프(magnetic tape), 플래시 메모리(flash memory), 다른 비-휘발성 메모리 디바이스, 솔리드 스테이트 드라이브(Solid State Drive)("SSD"), 임의의 자기 저장 디바이스(magnetic storage device), 임의의 광학 저장 디바이스(optical storage device), 임의의 전기 저장 디바이스(electrical storage device), 임의의 반도체 저장 디바이스(semiconductor storage device), 임의의 물리적-기반 저장 디바이스(physical-based storage device), 임의의 다른 데이터 저장 디바이스, 또는 이들의 임의의 조합 혹은 중복을 포함할 수 있다. 저장 매체들(140)은 하나 이상의 오퍼레이팅 시스템(operating system)들, 애플리케이션 프로그램들 및 프로그램 모듈들, 데이터, 또는 임의의 다른 정보를 저장할 수 있다. 저장 매체들(140)은 컴퓨팅 머신의 일부일 수 있거나 컴퓨팅 머신에 연결될 수 있다. 저장 매체들(140)은 또한, 서버들, 데이터베이스 서버들, 클라우드 저장소(cloud storage), 네트워크 부착 저장소(network attached storage), 등과 같은 컴퓨팅 머신과 통신하고 있는 하나 이상의 다른 컴퓨팅 머신들의 일부일 수 있다.
애플리케이션 모듈(200) 및 다른 OS 애플리케이션 모듈들은 본 명세서에서 제시되는 다양한 방법들 및 프로세싱 기능들을 수행하는 것과 관련하여 컴퓨팅 머신을 용이하게 하도록 구성된 하나 이상의 하드웨어 혹은 소프트웨어 요소들을 포함할 수 있다. 애플리케이션 모듈(200) 및 다른 OS 애플리케이션 모듈들은 시스템 메모리(130), 저장 매체들(140), 또는 이들 양쪽 모두와 관련되어 소프트웨어 혹은 펌웨어로서 저장되는 하나 이상의 알고리즘들 또는 명령들의 시퀀스들을 포함할 수 있다. 따라서, 저장 매체들(140)은 프로세서(110)에 의한 실행을 위해 명령들 혹은 코드가 저장될 수 있는 머신 혹은 컴퓨터 판독가능 매체들의 예들을 나타낼 수 있다. 머신 혹은 컴퓨터 판독가능 매체들은 일반적으로 프로세서(110)에 명령들을 제공하는데 사용되는 임의의 매체 혹은 매체들을 지칭할 수 있다. 애플리케이션 모듈(200) 및 다른 OS 애플리케이션 모듈들과 관련된 이러한 머신 혹은 컴퓨터 판독가능 매체들은 컴퓨터 소프트웨어 제품을 포함할 수 있다. 애플리케이션 모듈(200) 및 다른 OS 애플리케이션 모듈들을 포함하는 컴퓨터 소프트웨어 제품이 또한, 애플리케이션 모듈(200) 및 다른 OS 애플리케이션 모듈들을 네트워크, 임의의 신호-운반 매체(signal-bearing medium), 또는 임의의 다른 통신 혹은 전달 기술을 통해 컴퓨팅 머신에 전달하기 위한 하나 이상의 프로세스들 혹은 방법들과 관련될 수 있음이 이해돼야 한다. 애플리케이션 모듈(200) 및 다른 OS 애플리케이션 모듈들은 또한, 하드웨어 회로들 또는 하드웨어 회로들을 구성하기 위한 정보를 포함할 수 있는데, 예컨대, FPGA 혹은 다른 PLD를 위한 마이크로코드(microcode) 또는 구성 정보를 포함할 수 있다. 하나의 예시적 실시예에서, 애플리케이션 모듈(200) 및 다른 OS 애플리케이션 모듈들은 본 명세서에서 제시되는 흐름도들 및 컴퓨터 시스템들에 의해 설명되는 기능적 동작들을 수행할 수 있는 알고리즘들을 포함할 수 있다.
입력/출력(Input/Output)("I/O") 인터페이스(150)는 하나 이상의 외부 디바이스들로부터 데이터를 수신하기 위해 그리고 데이터를 하나 이상의 외부 디바이스들에 보내기 위해, 하나 이상의 외부 디바이스들에 결합되도록 구성될 수 있다. 이러한 외부 디바이스들은, 다양한 내부 디바이스들과 함께, 또한 주변 디바이스들로서 알려져 있을 수 있다. I/O 인터페이스(150)는 다양한 주변 디바이스들을 컴퓨팅 머신 혹은 프로세서(110)에 결합시키기 위한 전기적 및 물리적 연결들을 모두 포함할 수 있다. I/O 인터페이스(150)는 주변 디바이스들, 컴퓨팅 머신, 또는 프로세서(110) 간에 데이터, 어드레스들, 및 제어 신호들을 전달하도록 구성될 수 있다. I/O 인터페이스(150)는 임의의 표준 인터페이스를 구현하도록 구성될 수 있는데, 예컨대, 소형 컴퓨터 시스템 인터페이스(Small Computer System Interface)("SCSI"), 직렬-부착 SCSI(Serial-Attached SCSI)("SAS"), 파이버 채널(fiber channel), 주변 컴포넌트 상호연결(Peripheral Component Interconnect)("PCI"), PCI 익스프레스(PCI Express)(PCIe), 직렬 버스(serial bus), 병렬 버스(parallel bus), 고급 기술 부착(Advanced Technology Attached)("ATA"), 직렬(Serial ATA)("SATA"), 범용 직렬 버스(Universal Serial Bus)("USB"), 썬더볼트(Thunderbolt), 파이어와이어(FireWire), 다양한 비디오 버스(video bus)들, 등을 구현하도록 구성될 수 있다. I/O 인터페이스(150)는 오로지 하나의 인터페이스 또는 버스 기술을 구현하도록 구성될 수 있다. 대안적으로, I/O 인터페이스(150)는 다수의 인터페이스들 또는 버스 기술들을 구현하도록 구성될 수 있다. I/O 인터페이스(150)는 시스템 버스(120)의 일부로서 구성될 수 있거나, 시스템 버스(120) 전부로서 구성될 수 있거나, 또는 시스템 버스(120)와 연계되어 동작하도록 구성될 수 있다. I/O 인터페이스(150)는 하나 이상의 외부 디바이스들, 내부 디바이스들, 컴퓨팅 머신, 또는 프로세서(120) 간의 전송들을 버퍼링(buffering)하기 위한 하나 이상의 버퍼(buffer)들을 포함할 수 있다.
I/O 인터페이스(120)는 마우스들(mice), 터치-스크린(touch-screen)들, 스캐너(scanner)들, 전자 디지타이저(electronic digitizer)들, 센서(sensor)들, 수신기(receiver)들, 터치패드(touchpad)들, 트랙볼(trackball)들, 카메라(camera)들, 마이크로폰(microphone)들, 키보드(keyboard)들, 임의의 다른 포인팅 디바이스(pointing device)들, 또는 이들의 임의의 조합들을 포함하는 다양한 입력 디바이스들에 컴퓨팅 머신을 결합시킬 수 있다. I/O 인터페이스(120)는 비디오 디스플레이(video display)들, 스피커(speaker)들, 프린터(printer)들, 프로젝터(projector)들, 촉각적 피드백 디바이스(tactile feedback device)들, 자동 제어(automation control), 로봇 컴포넌트(robotic component)들, 액츄에이터(actuator)들, 모터(motor)들, 팬(fan)들, 솔레노이드(solenoid)들, 밸브(valve)들, 펌프(pump)들, 송신기(transmitter)들, 신호 방출기(signal emitter)들, 조명(light)들, 등을 포함하는 다양한 출력 디바이스들에 컴퓨팅 머신을 결합시킬 수 있다.
컴퓨팅 머신(100)은 네트워크에 걸친 하나 이상의 다른 시스템들 혹은 컴퓨팅 머신들에 NIC(160)을 통한 논리적 연결들을 사용하여, 네트워크화된 환경(networked environment)에서 동작할 수 있다. 네트워크는, 광역 네트워크들(Wide Area Networks)(WAN), 로컬 영역 네트워크들(Local Area Networks)(LAN), 인트라넷(intranet)들, 인터넷(Internet), 무선 액세스 네트워크(wireless access network)들, 유선 네트워크(wired network)들, 모바일 네트워크(mobile network)들, 전화 네트워크(telephone network)들, 광학 네트워크(optical network)들, 또는 이들의 조합들을 포함할 수 있다. 네트워크는 패킷 교환(packet switched)될 수 있거나, 회선 교환(circuit switched)될 수 있거나, 임의의 토포롤지(topology)를 가질 수 있으며, 그리고 임의의 통신 프로토콜(communication protocol)을 사용할 수 있다. 네트워크 내의 통신 링크(communication link)들은 광섬유 케이블(fiber optic cable)들, 자유-공간 광학(free-space optics), 도파관(waveguide)들, 전기 전도체(electrical conductor)들, 무선 링크(wireless link)들, 안테나(antenna)들, 무선-주파수 통신(radio-frequency communication)들, 등과 같은 다양한 디지털 혹은 아날로그 통신 매체들을 포함할 수 있다.
프로세서(110)는 시스템 버스(120)를 통해 본 명세서에서 논의되는 다양한 주변기기들 혹은 컴퓨팅 머신의 다른 요소들에 연결될 수 있다. 시스템 버스(120)가 프로세서(110) 내부에 있을 수 있거나, 프로세서(110) 외부에 있을 수 있거나, 또는 프로세서(110) 내부 및 외부에 모두 있을 수 있음이 이해돼야 한다. 일부 실시예들에 따르면, 프로세서들(110), 컴퓨팅 머신의 다른 요소들, 또는 본 명세서에서 논의되는 다양한 주변기기들 중 임의의 것은, 시스템 온 칩(System On Chip)("SOC"), 시스템 온 패키지(System On Package)("SOP"), 또는 ASIC 디바이스와 같은 단일 디바이스에 통합될 수 있다.
실시예들은 본 명세서에서 설명되고 예시되는 기능들을 구현하는 컴퓨터 프로그램을 포함할 수 있고, 여기서 컴퓨터 프로그램은 컴퓨터 시스템 내에 구현되며, 컴퓨터 시스템은 머신-판독가능 매체 내에 저장된 명령들, 그리고 명령들을 실행하는 프로세서를 포함한다. 하지만, 실시예들을 컴퓨터 프로그래밍으로 구현하는 많은 다양한 방식들이 존재할 수 있음은 명백하며, 그리고 이러한 실시예들은 예시적 실시예에 대해 달리 개시되지 않는다면 컴퓨터 프로그램 명령들의 임의의 하나의 세트에 한정되는 것으로서 해석돼서는 안 된다. 더욱이, 숙련된 프래그래머는 본 출원 문서에서의 첨부된 흐름도들, 알고리즘들, 및 관련된 설명에 근거하여 그 개시된 실시예들 중 임의의 실시예를 구현하기 위해 이러한 컴퓨터 프로그램을 작성할 수 있게 될 것이다. 따라서, 프로그램 코드 명령들의 특정 세트를 개시하는 것이 실시예들을 만들고 사용하는 방법의 적절한 이해를 위해 필요한 것으로 고려되지 않는다. 더욱이, 본 발명의 기술분야에서 숙련된 자들은, 본 명세서에서 설명되는 실시예들의 하나 이상의 실시형태들이, 하나 이상의 컴퓨팅 시스템들에서 구현될 수 있는 바와 같이, 하드웨어, 소프트웨어, 또는 이들의 조합에 의해 수행될 수 있음을 이해할 것이다. 더욱이, 컴퓨터에 의해 수행되는 행위(act)에 대한 임의의 언급은 단일의 컴퓨터에 의해 수행되는 것으로서 해석돼서는 안 되는데, 왜냐하면 하나보다 많은 컴퓨터가 그 행위를 수행할 수 있기 때문이다.
본 명세서에서 설명되는 예시적 실시예들은 이전에 설명된 방법들 및 프로세싱 기능들을 수행하는 컴퓨터 하드웨어 및 소프트웨어와 함께 사용될 수 있다. 본 명세서에서 설명되는 시스템들, 방법들, 및 절차들은 프로그래밍가능 컴퓨터, 컴퓨터-실행가능 소프트웨어, 또는 디지털 회로에서 구현될 수 있다. 소프트웨어는 컴퓨터-판독가능 매체들 상에 저장될 수 있다. 예를 들어, 컴퓨터-판독가능 매체들은, 플로피 디스크, RAM, ROM, 하드 디스크, 탈착가능 매체들(removable media), 플래시 메모리(flash memory), 메모리 스틱(memory stick), 광학 매체들(optical media), 광-자기 매체들(magneto-optical media), CD-ROM, 등을 포함할 수 있다. 디지털 회로는 집적 회로들, 게이트 어레이(gate array)들, 빌딩 블록 로직(building block logic), 현장 프로그래밍가능 게이트 어레이들(Field Programmable Gate Arrays)(FPGA), 등을 포함할 수 있다.
이전에 제시된 실시예들에서 설명된 예시적 시스템들, 방법들, 및 행위들은 예시적인 것이며, 그리고 대안적 실시예들에서, 다양한 실시예들의 범위 및 사상으로부터 벗어남이 없이, 특정 행위들은 상이한 순서로 수행될 수 있고, 서로 병렬로 수행될 수 있고, 전체적으로 생략될 수 있고, 그리고/또는 상이한 예시적 실시예들 사이에 결합될 수 있으며, 그리고/또는 특정 추가적 행위들이 수행될 수 있다. 따라서, 이러한 대안적 실시예들은 본 명세서에서의 설명에 포함된다.
본 명세서에서 사용되는 바와 같은, 단수 형태의 표현들은 문맥상 명확히 달리 표시하지 않는다면 복수 형태 표현들을 또한 포함하도록 의도된 것이다. 용어들 "포함한다" 및/또는 "포함하는"이, 본 명세서에서 사용될 때, 그 기재된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들 및/또는 이들의 그룹들의 존재 혹은 추가를 제외하는 것이 아님이 또한 이해될 것이다. 본 명세서에서 사용되는 바와 같은, 용어 "및/또는"은 관련된 나열 항목들 중 하나 이상의 나열된 항목들 중 임의의 항목 혹은 이들의 모든 조합들을 포함한다. 본 명세서에서 사용되는 바와 같은, "X와 Y 사이" 및 "약 X와 Y 사이"와 같은 어구들은 X 및 Y를 포함하는 것으로 해석돼야 한다. 본 명세서에서 사용되는 바와 같은, "약 X와 Y 사이"와 같은 어구들은 "약 X와 약 Y 사이"를 의미한다. 본 명세서에서 사용되는 바와 같은, "약 X로부터 Y까지"와 같은 어구들은 "약 X로부터 약 Y까지"를 의미한다.
본 명세서에서 사용되는 바와 같은, "하드웨어"는 개별 컴포넌트들, 집적 회로, 애플리케이션-특정 집적 회로, 현장 프로그래밍가능 게이트 어레이, 또는 다른 적절한 하드웨어의 조합을 포함할 수 있다. 본 명세서에서 사용되는 바와 같은, "소프트웨어"는, 하나 이상의 프로세서들(여기서, 프로세서는 하나 이상의 마이크로컴퓨터(microcomputer)들 또는 다른 적절한 데이터 프로세싱 유닛(data processing unit)들, 메모리 디바이스들, 입력-출력 디바이스들, 디스플레이들, 데이터 입력 디바이스들(예컨대, 키보드 혹은 마우스), 주변기기들(예컨대, 프린터들 및 스피커들), 관련된 드라이버들, 제어 카드(control card)들, 파워 소스(power source)들, 네트워크 디바이스들, 도킹 스테이션 디바이스(docking station device)들, 또는 프로세서 혹은 다른 디바이스들과 연계되어 소프트웨어 시스템들의 제어 하에서 동작하는 다른 적절한 디바이스들을 포함함) 상에서의, 하나 이상의 오브젝트(object)들, 에이전트(agent)들, 쓰레드(thread)들, 코드(code)의 라인(line)들, 서브루틴(subroutine)들, 개별 소프트웨어 애플리케이션들, 둘 이상의 소프트웨어 애플리케이션들에서 동작하는 코드의 둘 이상의 라인들 또는 다른 적절한 소프트웨어 구조들을 포함할 수 있거나, 또는 다른 적절한 소프트웨어 구조들을 포함할 수 있다. 하나의 예시적 실시예에서, 소프트웨어는, 오퍼레이팅 시스템과 같은 범용 소프트웨어 애플리케이션에서 동작하는 코드의 하나 이상의 라인들 또는 다른 적절한 소프트웨어 구조들, 그리고 특수 목적 소프트웨어 애플리케이션에서 동작하는 코드의 하나 이상의 라인들 또는 다른 적절한 소프트웨어 구조들을 포함할 수 있다. 본 명세서에서 사용되는 바와 같은, 용어 "결합시키다" 및 동종의 용어들, 예컨대, "결합시키는" 및 "결합된"은 물리적(예컨대, 구리 전도체) 연결, (예컨대, 데이터 메모리 디바이스의 무작위로 할당된 메모리 위치들을 통한) 가상 연결, (예컨대, 반도체 디바이스의 논리적 게이트(logical gate)들을 통한) 논리적 연결, 다른 적절한 연결들, 또는 이러한 연결들의 적절한 조합을 포함할 수 있다. 용어 "데이터"는 데이터를 사용, 전달 혹은 저장하기 위한 적절한 구조를 지칭할 수 있는데, 예컨대, 데이터 필드(data field), 데이터 버퍼(data buffer), 데이터 값 및 송신자/수신자 어드레스 데이터를 갖는 데이터 메시지(data message), 수신 시스템 또는 컴포넌트로 하여금 데이터, 또는 데이터의 전자 프로세싱을 위한 다른 적절한 하드웨어 혹은 소프트웨어 컴포넌트들을 사용하여 기능을 수행하도록 하는 데이터 값 및 하나 이상의 연산자(operator)들을 갖는 제어 메시지(control message)를 지칭할 수 있다.
일반적으로, 소프트웨어 시스템은 미리결정된 데이터 필드들에 응답하여 미리결정된 기능들을 수행하기 위해 프로세서 상에서 동작하는 시스템이다. 예를 들어, 시스템은 시스템이 수행하는 기능 및 시스템이 기능을 수행하는 데이터 필드들에 의해 정의될 수 있다. 본 명세서에서 사용되는 바와 같은, 네임(NAME) 시스템(여기서, 네임(NAME)은 전형적으로 시스템에 의해 수행되는 일반적인 기능의 명칭임)은 프로세서 상에서 동작하도록 구성됨과 아울러 개시된 데이터 필드들에 관해 개시된 기능을 수행하도록 구성된 소프트웨어 시스템을 지칭한다. 특정 알고리즘이 개시되지 않는다면, 관련된 데이터 필드들을 사용하여 기능을 수행하기 위해 본 발명의 기술분야에서 숙련된 자에게 알려진 임의의 적절한 알고리즘이 본 개시내용의 범위 내에 있는 것으로 고려된다. 예를 들어, 송신자 어드레스 필드(sender address field), 수령자 어드레스 필드(recipient address field), 및 메시지 필드(message field)를 포함하는 메시지를 발생시키는 메시지 시스템은, 버퍼 디바이스 혹은 버퍼 시스템과 같은 프로세서의 적절한 시스템 혹은 디바이스로부터 송신자 어드레스 필드, 수령자 어드레스 필드, 및 메시지 필드를 획득할 수 있는, 그리고 송신자 어드레스 필드, 수령자 어드레스 필드, 및 메시지 필드를 적절한 전자 메시지 포맷(예컨대, 전자 메일 메시지(electronic mail message), TCP/IP 메시지, 또는 송신자 어드레스 필드, 수령자 어드레스 필드, 및 메시지 필드를 갖는 임의의 다른 절절한 메시지 포맷)으로 조립(assemble)할 수 있는, 그리고 네트워크와 같은 통신 매체를 통해 프로세서의 전자 메시징 시스템들 및 디바이스들을 사용하여 전자 메시지를 전송할 수 있는, 프로세서 상에서 동작하는 소프트웨어를 포함하게 된다. 본 발명의 기술분야에서 통상의 기술을 가진 자는 앞서의 개시내용에 근거하여 특정 애플리케이션에 대한 특정 코딩을 제공할 수 있게 되는데, 앞서의 개시내용은 본 개시내용의 예시적 실시예들을 제시하도록 의도된 것이지, 적절한 프로그래밍 언어에서 프로그래밍 혹은 프로세서들에 익숙하지 않은 누군가와 같은 본 발명의 기술분야에서 통상의 기술 수준 아래의 누군가에 대한 지침을 제공하도록 의도된 것이 아니다. 기능을 수행하기 위한 특정 알고리즘이 흐름도 형태로 또는 다른 적절한 포맷들로 제공될 수 있는데, 여기서 데이터 필드들 및 관련된 기능들은 동작들의 예시적 순서로 제시될 수 있고, 이 경우 순서는 적절하게 재정렬될 수 있고 그리고 한정하는 것으로 명시적으로 기재되지 않는다면 한정의 의미를 갖도록 의도된 것이 아니다.
앞에서-개시된 실시예들은 예시의 목적들을 위해 제시되었고, 그리고 본 발명의 기술분야에서 통상의 기술을 가진 자로 하여금 본 개시내용을 실시할 수 있게 하기 위해 제시되었으며, 하지만 본 개시내용은 개시된 형태들에 한정되거나 완벽히 국한되도록 의도된 것이 아니다. 많은 비실질적 수정들 및 변경들이 본 개시내용의 범위 및 사상으로부터 벗어남이 없이 본 발명의 기술분야에서 통상의 기술을 가진 자들에게 명백할 것이다. 청구항들의 범위는 개시되는 실시예들 및 임의의 이러한 수정을 광범위히게 포괄하도록 의도된 것이다. 더욱이, 다음의 조항(clause)들은 본 개시내용의 추가적인 실시예들을 나타내고, 그리고 본 개시내용의 범위 내에 있는 것으로 고려돼야 한다.
조항 1, 자동화된 제조 동작(automated manufacturing operation)들로부터의 광폭 데이터(wide data)를 프로세싱하기 위한 프로세스 제어 툴(process control tool): 특징 선택자(feature selector); 분석 서버(analysis server); 및 시각화 엔진(visualization engine), 여기서, 특징 선택자는, 적어도 하나의 제조 프로세스 애플리케이션(manufacturing process application)으로부터 프로세스 입력 데이터를 수신하는 것(여기서, 프로세스 입력 데이터는 복수의 관찰(observation)들 및 관련된 변수(variable)들을 포함함);
식별된 범주형 변수(categorical variable)들을 수치형 변수(numerical variable)들로 변환(convert)하고 그리고 식별된 시-계열 데이터(time-series data)를 고정된 수의 구간(interval)들로 변환하는 것; 그리고 예측자 값(predictor value)들과 결과 변수(outcome variable) 간의 관계들의 강도들의 척도가 되는 통계치들(statistics)을 컴퓨팅(compute)하는 것을 행하도록 구성되고, 분석 서버는, 예측자 값들 간의 상호작용(interaction)들을 식별하기 위해 적어도 하나의 동작을 수행하도록 구성되고, 시각화 엔진은, 제조 동작들을 관리하는데 사용하기 위해 상호작용들을 디스플레이(display)하도록 구성된다.
조항 2, 조항 1의 프로세스 제어 툴에서, 특징 선택자는 또한, 수신된 프로세스 입력 데이터를 각각의 관찰 내의 각각의 변수에 대해 하나의 행(row)을 갖는 스택 포맷(stacked format)으로 변환하도록 구성된다.
조항 3, 조항 1의 프로세스 제어 툴에서, 식별된 범주형 변수들은 임팩트-코딩 기법(impact-coding technique)을 사용하여 수치형 변수들로 변환된다.
조항 4, 조항 2의 프로세스 제어 툴에서, 특징 선택자는 또한, 컴퓨팅된 통계치들에 근거하여 예측자 값들을 정렬(order)하는 것; 예측자 값들을 임계 값(threshold value)에 근거하여 예측자 값들의 서브세트(subset)로 필터링(filter)하는 것; 그리고 서브세트를 광폭 포맷(wide format)으로 피봇(pivot)하는 것을 행하도록 구성된다.
조항 5, 조항 4의 프로세스 제어 툴에서, 분석 서버는, 피봇된 서브세트의 예측자 값들을 수신하는 것; 그리고 서브세트 내의 예측자 값들 간의 상호작용들을 식별하기 위해 최대 가능성 계산(maximum Likelihood computation)들 및 미리-정의된 검색(pre-defined search)들 중 적어도 하나를 수행하는 것을 행하도록 구성된다.
조항 6, 조항 1의 프로세스 제어 툴에서, 분석 서버는 또한, 인-메모리(in-memory), 인-가상-메모리(in-virtual-memory), 및 멀티쓰레드(multithreaded) 계산(computation)들 중 적어도 하나의 계산에서 동작하도록 구성된다.
조항 7, 조항 1의 프로세스 제어 툴에서, 특징 선택자 및 분석 서버는 동시에(concurrently) 그리고 비동기적으로(asynchronously) 작동한다.
조항 8, 조항 1의 프로세스 제어 툴에서, 분석 서버는 전용 분석 서버(dedicated analysis server)이다.
조항 9, 조항 1의 프로세스 제어 툴에서, 프로세스 입력 데이터는 광폭 데이터 세트(wide data set) 또는 광폭 및 대규모 데이터 세트(wide and big data set)를 갖는 것으로서 특징지어진다.
조항 10, 자동화된 제조 동작들로부터의 광폭 데이터를 프로세싱하는 방법, 이러한 방법은: 적어도 하나의 제조 프로세스 애플리케이션으로부터 프로세스 입력 데이터를 수신하는 것(여기서, 프로세스 입력 데이터는 복수의 관찰들 및 관련된 변수들을 포함함); 식별된 범주형 변수들을 수치형 변수들로 변환하고 그리고 식별된 시-계열 데이터를 고정된 수의 구간들로 변환하는 것; 예측자 값들과 결과 변수 간의 관계들의 강도들의 척도가 되는 통계치들을 컴퓨팅하는 것; 예측자 값들 간의 상호작용들을 식별하기 위해 적어도 하나의 동작을 수행하는 것; 그리고 제조 동작들을 관리하는데 사용하기 위해 상호작용들을 디스플레이하는 것을 포함한다.
조항 11, 조항 10의 방법은 또한, 수신된 프로세스 입력 데이터를 각각의 관찰 내의 각각의 변수에 대해 하나의 행을 갖는 스택 포맷으로 변환하는 것을 포함한다.
조항 12, 조항 10의 방법은 또한, 식별된 범주형 변수들을 임팩트-코딩 기법을 사용하여 수치형 변수들로 변환하는 것을 포함한다.
조항 13, 조항 11의 방법은 또한, 컴퓨팅된 통계치들에 근거하여 예측자 값들을 정렬하는 것; 예측자 값들을 임계 값에 근거하여 예측자 값들의 서브세트로 필터링하는 것; 그리고 서브세트를 광폭 포맷으로 피봇하는 것을 포함한다.
조항 14, 조항 13의 방법은 또한, 피봇된 서브세트의 예측자 값들을 수신하는 것; 그리고 서브세트 내의 예측자 값들 간의 상호작용들을 식별하기 위해 최대 가능성 계산들 및 미리-정의된 검색들 중 적어도 하나를 수행하는 것을 포함한다.
조항 15, 비-일시적 컴퓨터 판독가능 저장 매체(non-transitory computer readable storage medium)로서, 이러한 비-일시적 컴퓨터 판독가능 저장 매체는 자동화된 제조 동작들로부터의 광폭 데이터를 프로세싱하기 위한 프로세서에 의해 실행가능한 컴퓨터 명령들의 세트를 포함하고, 여기서 컴퓨터 명령들은, 적어도 하나의 제조 프로세스 애플리케이션으로부터 프로세스 입력 데이터를 수신하는 것(여기서, 프로세스 입력 데이터는 복수의 관찰들 및 관련된 변수들을 포함함); 식별된 범주형 변수들을 수치형 변수들로 변환하고 그리고 식별된 시-계열 데이터를 고정된 수의 구간들로 변환하는 것; 예측자 값들과 결과 변수 간의 관계들의 강도들의 척도가 되는 통계치들을 컴퓨팅하는 것; 예측자 값들 간의 상호작용들을 식별하기 위해 적어도 하나의 동작을 수행하는 것; 그리고 제조 동작들을 관리하는데 사용하기 위해 상호작용들을 디스플레이하는 것을 행하도록 구성된다.
조항 16, 조항 15에 기재된 바와 같은 비-일시적 컴퓨터 판독가능 저장 매체는 또한, 수신된 프로세스 입력 데이터를 각각의 관찰 내의 각각의 변수에 대해 하나의 행을 갖는 스택 포맷으로 변환하도록 구성된 컴퓨터 명령들을 포함한다.
조항 17, 조항 15에 기재된 바와 같은 비-일시적 컴퓨터 판독가능 저장 매체는 또한, 식별된 범주형 변수들을 수치형 변수들로 변환하기 위해 임팩트-코딩 기법을 사용하도록 구성된 컴퓨터 명령들을 포함한다.
조항 18, 조항 16에 기재된 바와 같은 비-일시적 컴퓨터 판독가능 저장 매체는 또한, 컴퓨팅된 통계치들에 근거하여 예측자 값들을 정렬하는 것; 예측자 값들을 임계 값에 근거하여 예측자 값들의 서브세트로 필터링하는 것; 서브세트를 광폭 포맷으로 피봇하는 것; 그리고 서브세트 내의 예측자 값들 간의 상호작용들을 식별하기 위해 최대 가능성 계산들 및 미리-정의된 검색들 중 적어도 하나를 수행하는 것을 행하도록 구성된 컴퓨터 명령들을 포함한다.
조항 19, 조항 15에 기재된 바와 같은 비-일시적 컴퓨터 판독가능 저장 매체는 또한, 분석 서버가 또한, 인-메모리, 인-가상-메모리, 및 멀티쓰레드 계산들 중 적어도 하나의 계산에서 예측자 값들과 적어도 하나의 결과 변수 간의 상호작용들을 식별하기 위해 적어도 하나의 동작을 수행하도록 되어 있게 구성된 컴퓨터 명령들을 포함한다.
조항 20, 조항 15에 기재된 바와 같은 비-일시적 컴퓨터 판독가능 저장 매체에서, 명령들의 서브세트는 명령들의 또 하나의 다른 서브세트와 동시에 그리고 비동기적으로 동작한다.
본 개시내용의 실시예들의 앞서의 설명은 예시 및 설명의 목적들을 위해 제시되었다. 본 개시내용을 개시된 정확한 형태에 한정시키거나 완벽히 국한시키도록 의도되지 않았고, 수정들 및 변경들이 앞서의 가르침들에 비추어 가능하며, 또는 본 개시내용의 실시로부터 획득될 수 있다. 실시예들은, 본 발명의 기술분야에서 숙련된 자가, 본 개시내용을 고려되는 특정 사용에 맞게 다양한 실시예들에서 그리고 다양한 수정들로 이용할 수 있게 하기 위해 본 개시내용 및 그 실제 응용의 원리들을 설명하기 위해서 선택되었고 기술되었다. 다른 대체물들, 수정들, 변경들, 및 생략들이 본 개시내용의 범위로부터 벗어남이 없이 실시예들의 설계, 동작 조건들, 및 정렬에서 행해질 수 있다. 예시적 실시예들의 이러한 수정들 및 조합들, 뿐만 아니라 다른 실시예들은 본 설명을 참조할 때 본 발명의 기술분야에서 숙련된 사람들에게 명백할 것이다. 따라서, 첨부된 청구항들이 임의의 이러한 수정들 혹은 실시예들을 포함하는 것이 의도된다.
Claims (20)
- 자동화된 제조 동작(automated manufacturing operation)들로부터의 광폭 데이터(wide data)를 프로세싱하기 위한 프로세스 제어 툴(process control tool)로서,
상기 프로세스 제어 툴은,
특징 선택자(feature selector)와;
분석 서버(analysis server)와;
시각화 엔진(visualization engine)을 포함하고,
상기 특징 선택자는,
적어도 하나의 제조 프로세스 애플리케이션(manufacturing process application)으로부터 프로세스 입력 데이터를 수신하는 것과, 여기서 상기 프로세스 입력 데이터는 복수의 관찰(observation)들 및 관련된 변수(variable)들을 포함하고,
식별된 범주형 변수(categorical variable)들을 수치형 변수(numerical variable)들로 변환(convert)하고 그리고 식별된 시-계열 데이터(time-series data)를 고정된 수의 구간(interval)들로 변환하는 것과, 그리고
예측자 값(predictor value)들과 결과 변수(outcome variable) 간의 관계들의 강도(strength)들의 척도가 되는 통계치들(statistics)을 컴퓨팅(compute)하는 것을 행하도록 되어 있고,
상기 분석 서버는,
예측자 값들 간의 상호작용(interaction)들을 식별하기 위해 적어도 하나의 동작을 수행하도록 되어 있고,
상기 시각화 엔진은,
상기 제조 동작들을 관리하는데 사용하기 위해 상기 상호작용들을 디스플레이(display)하도록 되어 있는 것을 특징으로 하는 프로세스 제어 툴. - 제1항에 있어서,
상기 특징 선택자는 또한, 상기 수신된 프로세스 입력 데이터를 각각의 관찰 내의 각각의 변수에 대해 하나의 행(row)을 갖는 스택 포맷(stacked format)으로 변환하도록 되어 있는 것을 특징으로 하는 프로세스 제어 툴. - 제1항에 있어서,
상기 식별된 범주형 변수들은 임팩트-코딩 기법(impact-coding technique)을 사용하여 수치형 변수들로 변환되는 것을 특징으로 하는 프로세스 제어 툴. - 제2항에 있어서,
상기 특징 선택자는 또한,
상기 컴퓨팅된 통계치들에 근거하여 상기 예측자 값들을 정렬(order)하는 것과,
상기 예측자 값들을 임계 값(threshold value)에 근거하여 예측자 값들의 서브세트(subset)로 필터링(filter)하는 것과, 그리고
상기 서브세트를 광폭 포맷(wide format)으로 피봇(pivot)하는 것을 행하도록 되어 있고,
상기 광폭 포맷에서 각각의 변수는 도표형 데이터세트(tabular dataset)에서 자기 자신의 열(column)을 갖도록 표현되는 것을 특징으로 하는 프로세스 제어 툴. - 제4항에 있어서,
상기 분석 서버는,
상기 피봇된 서브세트의 예측자 값들을 수신하는 것과, 그리고
상기 서브세트 내의 상기 예측자 값들 간의 상호작용들을 식별하기 위해 통계 및 모델링 동작(statistical and modeling operation) 및 미리-정의된 검색(pre-defined search)들 중 적어도 하나를 수행하는 것을 행하도록 되어 있고,
상기 통계 및 모델링 동작은, 회귀 알고리즘(regression algorithm)들, 뉴럴 네트워크(neural network)들, 심층-학습 네트워크(deep-learning network)들, 및 재귀 분할 알고리즘(recursive partitioning algorithm)들 중 적어도 하나를 포함하는 것을 특징으로 하는 프로세스 제어 툴. - 제1항에 있어서,
상기 분석 서버는 또한,
인-메모리(in-memory), 인-가상-메모리(in-virtual-memory), 및 멀티쓰레드(multithreaded) 계산(computation)들 중 적어도 하나의 계산에서 동작하도록 되어 있는 것을 특징으로 하는 프로세스 제어 툴. - 제1항에 있어서,
상기 특징 선택자 및 상기 분석 서버는 동시에(concurrently) 그리고 비동기적으로(asynchronously) 작동하는 것을 특징으로 하는 프로세스 제어 툴. - 제1항에 있어서,
상기 분석 서버는 전용 분석 서버(dedicated analysis server)인 것을 특징으로 하는 프로세스 제어 툴. - 제1항에 있어서,
상기 프로세스 입력 데이터는 광폭 데이터 세트(wide data set) 또는 광폭 및 대규모 데이터 세트(wide and big data set)를 갖는 것으로서 특징지어지는 것을 특징으로 하는 프로세스 제어 툴. - 자동화된 제조 동작들로부터의 광폭 데이터를 프로세싱하는 방법으로서,
상기 방법은,
적어도 하나의 제조 프로세스 애플리케이션으로부터 프로세스 입력 데이터를 수신하는 것과, 여기서 상기 프로세스 입력 데이터는 복수의 관찰들 및 관련된 변수들을 포함하고;
식별된 범주형 변수들을 수치형 변수들로 변환하고 그리고 식별된 시-계열 데이터를 고정된 수의 구간들로 변환하는 것과;
예측자 값들과 결과 변수 간의 관계들의 강도들의 척도가 되는 통계치들을 컴퓨팅하는 것과;
예측자 값들 간의 상호작용들을 식별하기 위해 적어도 하나의 동작을 수행하는 것과; 그리고
상기 제조 동작들을 관리하는데 사용하기 위해 상기 상호작용들을 디스플레이하는 것을 포함하는 것을 특징으로 하는 광폭 데이터를 프로세싱하는 방법. - 제10항에 있어서,
상기 방법은 또한, 상기 수신된 프로세스 입력 데이터를 각각의 관찰 내의 각각의 변수에 대해 하나의 행을 갖는 스택 포맷으로 변환하는 것을 포함하는 것을 특징으로 하는 광폭 데이터를 프로세싱하는 방법. - 제10항에 있어서,
상기 방법은 또한, 상기 식별된 범주형 변수들을 임팩트-코딩 기법을 사용하여 수치형 변수들로 변환하는 것을 포함하는 것을 특징으로 하는 광폭 데이터를 프로세싱하는 방법. - 제11항에 있어서,
상기 방법은 또한,
상기 컴퓨팅된 통계치들에 근거하여 상기 예측자 값들을 정렬하는 것과,
상기 예측자 값들을 임계 값에 근거하여 예측자 값들의 서브세트로 필터링하는 것과, 그리고
상기 서브세트를 광폭 포맷으로 피봇하는 것을 포함하는 것을 특징으로 하는 광폭 데이터를 프로세싱하는 방법. - 제13항에 있어서,
상기 방법은 또한,
상기 피봇된 서브세트의 예측자 값들을 수신하는 것과, 그리고
상기 서브세트 내의 상기 예측자 값들 간의 상호작용들을 식별하기 위해 최대 가능성 계산(maximum Likelihood computation)들 및 미리-정의된 검색들 중 적어도 하나를 수행하는 것을 포함하는 것을 특징으로 하는 광폭 데이터를 프로세싱하는 방법. - 비-일시적 컴퓨터 판독가능 저장 매체(non-transitory computer readable storage medium)로서, 상기 비-일시적 컴퓨터 판독가능 저장 매체는 자동화된 제조 동작들로부터의 광폭 데이터를 프로세싱하기 위한 프로세서에 의해 실행가능한 컴퓨터 명령들의 세트를 포함하고,
상기 컴퓨터 명령들은,
적어도 하나의 제조 프로세스 애플리케이션으로부터 프로세스 입력 데이터를 수신하는 것과, 여기서 상기 프로세스 입력 데이터는 복수의 관찰들 및 관련된 변수들을 포함하고;
식별된 범주형 변수들을 수치형 변수들로 변환하고 그리고 식별된 시-계열 데이터를 고정된 수의 구간들로 변환하는 것과;
예측자 값들과 결과 변수 간의 관계들의 강도들의 척도가 되는 통계치들을 컴퓨팅하는 것과;
예측자 값들 간의 상호작용들을 식별하기 위해 적어도 하나의 동작을 수행하는 것과; 그리고
상기 제조 동작들을 관리하는데 사용하기 위해 상기 상호작용들을 디스플레이하는 것을
행하도록 되어 있는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체. - 제15항에 있어서,
상기 비-일시적 컴퓨터 판독가능 저장 매체는 또한, 상기 수신된 프로세스 입력 데이터를 각각의 관찰 내의 각각의 변수에 대해 하나의 행을 갖는 스택 포맷으로 변환하도록 되어 있는 컴퓨터 명령들을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체. - 제15항에 있어서,
상기 비-일시적 컴퓨터 판독가능 저장 매체는 또한, 상기 식별된 범주형 변수들을 수치형 변수들로 변환하기 위해 임팩트-코딩 기법을 사용하도록 되어 있는 컴퓨터 명령들을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체. - 제16항에 있어서,
상기 비-일시적 컴퓨터 판독가능 저장 매체는 또한,
상기 컴퓨팅된 통계치들에 근거하여 상기 예측자 값들을 정렬하는 것과,
상기 예측자 값들을 임계 값에 근거하여 예측자 값들의 서브세트로 필터링하는 것과,
상기 서브세트를 광폭 포맷으로 피봇하는 것과, 그리고
상기 서브세트 내의 상기 예측자 값들 간의 상호작용들을 식별하기 위해 최대 가능성 계산들 및 미리-정의된 검색들 중 적어도 하나를 수행하는 것을
행하도록 되어 있는 컴퓨터 명령들을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체. - 제15항에 있어서,
상기 비-일시적 컴퓨터 판독가능 저장 매체는 또한, 상기 분석 서버가 또한, 인-메모리, 인-가상-메모리, 및 멀티쓰레드 계산들 중 적어도 하나의 계산에서 예측자 값들과 상기 적어도 하나의 결과 변수 간의 상호작용들을 식별하기 위해 적어도 하나의 동작을 수행하도록 되어 있게 구성된 컴퓨터 명령들을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체. - 제15항에 있어서,
상기 명령들의 서브세트는 상기 명령들의 또 하나의 다른 서브세트와 동시에 그리고 비동기적으로 동작하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862780095P | 2018-12-14 | 2018-12-14 | |
US62/780,095 | 2018-12-14 | ||
PCT/US2019/066386 WO2020124041A1 (en) | 2018-12-14 | 2019-12-13 | Process control tool for processing big and wide data |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210103506A true KR20210103506A (ko) | 2021-08-23 |
Family
ID=71070913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217021987A KR20210103506A (ko) | 2018-12-14 | 2019-12-13 | 대규모 및 광폭 데이터를 프로세싱하기 위한 프로세서 제어 툴 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11727021B2 (ko) |
KR (1) | KR20210103506A (ko) |
CN (1) | CN113518983A (ko) |
DE (1) | DE112019006218T5 (ko) |
GB (1) | GB2594855A (ko) |
WO (1) | WO2020124041A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111914003B (zh) * | 2020-08-14 | 2021-09-07 | 东方财富信息股份有限公司 | 一种基于云平台的大数据分析系统 |
US12061935B2 (en) * | 2020-12-03 | 2024-08-13 | Boe Technology Group Co., Ltd. | Computer-implemented method for defect analysis, computer-implemented method of evaluating likelihood of defect occurrence, apparatus for defect analysis, computer-program product, and intelligent defect analysis system |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601005B1 (en) * | 1996-11-07 | 2003-07-29 | Rosemount Inc. | Process device diagnostics using process variable sensor signal |
US8538934B2 (en) * | 2011-10-28 | 2013-09-17 | Microsoft Corporation | Contextual gravitation of datasets and data services |
EP2917837B1 (en) * | 2012-11-09 | 2019-01-02 | Coherent Logix Incorporated | Real time analysis and control for a multiprocessor system |
US10496927B2 (en) * | 2014-05-23 | 2019-12-03 | DataRobot, Inc. | Systems for time-series predictive data analytics, and related methods and apparatus |
US10366346B2 (en) * | 2014-05-23 | 2019-07-30 | DataRobot, Inc. | Systems and techniques for determining the predictive value of a feature |
US9886486B2 (en) * | 2014-09-24 | 2018-02-06 | Oracle International Corporation | Enriching events with dynamically typed big data for event processing |
US10459932B2 (en) * | 2014-12-18 | 2019-10-29 | Business Objects Software Ltd | Visualizing large data volumes utilizing initial sampling and multi-stage calculations |
US10839024B2 (en) * | 2016-06-20 | 2020-11-17 | Tibco Software Inc. | Detecting important variables and their interactions in big data |
JP6345346B2 (ja) * | 2015-05-28 | 2018-06-20 | 三菱電機株式会社 | 分析装置及び分析方法及び分析プログラム |
US10846276B2 (en) * | 2015-06-30 | 2020-11-24 | Ebay Inc. | Search engine optimization by selective indexing |
US10649874B2 (en) * | 2015-12-30 | 2020-05-12 | Teradata Us, Inc. | Long-duration time series operational analytics |
US10430743B2 (en) * | 2016-02-24 | 2019-10-01 | Bank Of America Corporation | Computerized system for simulating the likelihood of technology change incidents |
JP6896759B2 (ja) * | 2016-03-23 | 2021-06-30 | フォグホーン システムズ, インコーポレイテッドFoghorn Systems, Inc. | リアルタイムデータフロープログラミングにおけるパターン駆動型反応の合成 |
US10252145B2 (en) * | 2016-05-02 | 2019-04-09 | Bao Tran | Smart device |
US10732620B2 (en) * | 2016-08-01 | 2020-08-04 | General Electric Company | System and method for inspecting machinery |
US20180293462A1 (en) * | 2017-03-31 | 2018-10-11 | H2O.Ai Inc. | Embedded predictive machine learning models |
US11621969B2 (en) * | 2017-04-26 | 2023-04-04 | Elasticsearch B.V. | Clustering and outlier detection in anomaly and causation detection for computing environments |
US11157782B2 (en) * | 2017-11-16 | 2021-10-26 | International Business Machines Corporation | Anomaly detection in multidimensional time series data |
-
2019
- 2019-03-13 US US16/352,608 patent/US11727021B2/en active Active
- 2019-12-13 GB GB2110045.8A patent/GB2594855A/en not_active Withdrawn
- 2019-12-13 DE DE112019006218.2T patent/DE112019006218T5/de active Pending
- 2019-12-13 KR KR1020217021987A patent/KR20210103506A/ko unknown
- 2019-12-13 WO PCT/US2019/066386 patent/WO2020124041A1/en active Application Filing
- 2019-12-13 CN CN201980091998.1A patent/CN113518983A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE112019006218T5 (de) | 2021-09-02 |
GB2594855A (en) | 2021-11-10 |
US20200192895A1 (en) | 2020-06-18 |
WO2020124041A1 (en) | 2020-06-18 |
CN113518983A (zh) | 2021-10-19 |
US11727021B2 (en) | 2023-08-15 |
GB202110045D0 (en) | 2021-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10824761B2 (en) | Digital pattern prognostics | |
US10990568B2 (en) | Machine learning for automated model generation with constraints | |
US9324038B2 (en) | Method and system for clustering, modeling, and visualizing process models from noisy logs | |
US20160253229A1 (en) | Event log analysis | |
US10839024B2 (en) | Detecting important variables and their interactions in big data | |
WO2021084286A1 (en) | Root cause analysis in multivariate unsupervised anomaly detection | |
US10599648B2 (en) | Optimized storage solution for real-time queries and data modeling | |
US10248919B2 (en) | Task assignment using machine learning and information retrieval | |
US11568173B2 (en) | Method and apparatus for processing test execution logs to detremine error locations and error types | |
US11954126B2 (en) | Systems and methods for multi machine learning based predictive analysis | |
US20210248105A1 (en) | Labeling software applications running on nodes of a data center | |
CN112148766A (zh) | 利用人工神经网络模型进行数据抽样的方法和系统 | |
US20170147675A1 (en) | High dimensional clusters profile generation | |
KR20220151650A (ko) | 대용량 고속 스트림 데이터로부터 예측 분석들을 동적으로 발생시키기 위한 알고리즘적 학습 엔진 | |
CN114902246A (zh) | 用于大数据的快速交互式探索的系统 | |
KR20210103506A (ko) | 대규모 및 광폭 데이터를 프로세싱하기 위한 프로세서 제어 툴 | |
US20220121988A1 (en) | Computing Platform to Architect a Machine Learning Pipeline | |
US20210201164A1 (en) | Method and system for identifying relevant variables | |
US12079239B2 (en) | Systems and methods for automatically deriving data transformation criteria | |
JP2022544018A (ja) | 正準相関分析に基づく時系列およびテキストコメントにおける教師なしコンセプト発見およびクロスモーダル検索 | |
US20220092452A1 (en) | Automated machine learning tool for explaining the effects of complex text on predictive results | |
US11630663B2 (en) | Compressing multi-attribute vector into a single eigenvalue for ranking subject matter experts | |
CN114297385A (zh) | 模型训练方法、文本分类方法、系统、设备及介质 | |
CN114154006A (zh) | 一种图像搜索方法及相关装置 | |
KR102614051B1 (ko) | 그래프 데이터베이스를 이용한 이상 징후 탐지 방법및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램 |