KR102420514B1 - Hardware/software defect detection method using deep learning and analysis apparatus - Google Patents

Hardware/software defect detection method using deep learning and analysis apparatus Download PDF

Info

Publication number
KR102420514B1
KR102420514B1 KR1020210060207A KR20210060207A KR102420514B1 KR 102420514 B1 KR102420514 B1 KR 102420514B1 KR 1020210060207 A KR1020210060207 A KR 1020210060207A KR 20210060207 A KR20210060207 A KR 20210060207A KR 102420514 B1 KR102420514 B1 KR 102420514B1
Authority
KR
South Korea
Prior art keywords
defect
hardware
log
performance
cpu
Prior art date
Application number
KR1020210060207A
Other languages
Korean (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 KR1020210060207A priority Critical patent/KR102420514B1/en
Application granted granted Critical
Publication of KR102420514B1 publication Critical patent/KR102420514B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A hardware and software defect detection method using deep learning comprises the steps of: obtaining, by an analysis device, a performance log and an execution log for a specific task of a target device that is an object subject to defect detection; and detecting, by the analysis device, a software defect or a hardware defect for the specific task based on at least one of the performance log and the execution log. The analysis device detects a defect by comparing at least one piece of information extracted from the performance log and the execution log with a first constant value, or detects a defect based on a value obtained by calculating a second constant value on a value of the information. The first constant value or the second constant value is adjusted to a value output from a deep learning model trained by using an actual defect result and a defect detection result predicted based on a performance log and an execution log of a device.

Description

딥러닝을 이용한 하드웨어 및 소프트웨어 결함 탐지 방법 및 분석장치{HARDWARE/SOFTWARE DEFECT DETECTION METHOD USING DEEP LEARNING AND ANALYSIS APPARATUS}HARDWARE/SOFTWARE DEFECT DETECTION METHOD USING DEEP LEARNING AND ANALYSIS APPARATUS

이하 설명하는 기술은 하드웨어 및 소프트웨어 결함 탐지하는 기법에 관한 것이다.Techniques to be described below relate to techniques for detecting hardware and software faults.

4차 산업 시대가 도래하여 다양한 산업 분야에서 다양한 소프트웨어와 해당 소프트웨어가 구동하는 하드웨어가 이용되고 있다. 특히, 사물 인터넷 등의 기술로 네트워크와 연결된 시스템에서는 소프트웨어 오동작이 큰 문제를 야기할 수 있다.With the advent of the fourth industrial age, various software and hardware running the software are being used in various industrial fields. In particular, software malfunction may cause a major problem in a system connected to a network using technologies such as the Internet of Things.

한국공개특허 제10-2016-0061237호Korean Patent Publication No. 10-2016-0061237

4차 산업 관련 소프트웨어는 네트워크를 통해 데이터를 공유하는 형태가 일반적이다. 따라서, 현재 동작 결함을 유발할 수 있는 요인이 다양해지고 있다. 또한, 네트워크의 상태나 소프트웨어의 실행 상황에 따라 결함 탐지에 필요한 조건이 동적으로 변경될 수 있다. Software related to the 4th industry generally shares data through a network. Accordingly, factors that may cause an operation defect are currently being diversified. In addition, the conditions required for defect detection may be dynamically changed according to the network status or software execution status.

이하 설명하는 기술은 실시간으로 장치의 실행 로그 및 성능 로그를 기준으로 장치의 결함 여부를 탐지하되, 딥러닝 모델을 이용하여 결함 탐지에 사용되는 상수값을 동적으로 조절하는 기법을 제공하고자 한다.The technique to be described below detects whether a device is defective based on the execution log and performance log of the device in real time, and provides a technique for dynamically adjusting a constant value used for fault detection using a deep learning model.

딥러닝을 이용한 하드웨어 및 소프트웨어 결함 탐지 방법은 분석장치가 결함 탐지 대상인 타깃 장치의 특정 태스크에 대한 성능 로그 및 실행 로그를 획득하는 단계 및 상기 분석장치가 상기 성능 로그 및 상기 실행 로그 중 적어도 하나를 기준으로 상기 특정 태스크에 대한 소프트웨어 결함 또는 하드웨어 결함을 탐지하는 단계를 포함한다. 상기 분석장치는 상기 성능 로그 및 상기 실행 로그에서 추출한 적어도 하나의 정보를 제1 상수값과 비교하여 결함을 탐지하거나, 상기 정보의 값에 제2 상수값을 연산한 값을 기준으로 결함을 탐지하고, 상기 제1 상수값 또는 상기 제2 상수값은 장치의 성능 로그 및 실행 로그를 기준으로 예측되는 결함 탐지 결과와 실제 결함 결과를 이용하여 학습되는 딥러닝 모델에서 출력되는 값으로 조절된다.A hardware and software defect detection method using deep learning includes the steps of, by an analysis device, obtaining a performance log and an execution log for a specific task of a target device that is a target of defect detection, and the analysis device based on at least one of the performance log and the execution log and detecting a software defect or a hardware defect for the specific task. The analysis device detects a defect by comparing at least one piece of information extracted from the performance log and the execution log with a first constant value, or detects a defect based on a value obtained by calculating a second constant value on the value of the information, , the first constant value or the second constant value is adjusted to a value output from a deep learning model that is learned using a defect detection result predicted based on a performance log and an execution log of the device and an actual defect result.

하드웨어 및 소프트웨어 결함을 탐지하는 분석장치는 결함 탐지 대상인 타깃 장치의 특정 태스크에 대한 성능 로그 및 실행 로그를 입력받는 입력장치, 성능 로그 및 실행 로그를 기준으로 예측되는 결함 탐지 결과와 실제 결함 결과를 이용하여 학습된 딥러닝 모델을 저장하는 저장장치 및 상기 성능 로그 및 상기 실행 로그에서 추출한 적어도 하나의 정보를 제1 상수값과 비교하여 결함을 탐지하거나, 상기 정보의 값에 제2 상수값을 연산한 값을 기준으로 상기 특정 태스크에 대한 소프트웨어 결함 또는 하드웨어 결함을 탐지하는 연산장치를 포함한다. 상기 연산장치는 상기 특정 태스크에 대하여 결함을 탐지한 결과를 상기 딥러닝 모델에 입력하고, 상기 딥러닝 모델이 출력하는 값을 기준으로 상기 제1 상수값 또는 상기 제2 상수값을 조절한다.An analysis device that detects hardware and software defects uses the input device that receives the performance log and execution log for a specific task of the target device, which is the target device for defect detection, and the defect detection result and actual defect result predicted based on the performance log and execution log. A storage device that stores the learned deep learning model and at least one information extracted from the performance log and the execution log is compared with a first constant value to detect a defect, or a second constant value is calculated on the value of the information and an arithmetic unit for detecting a software defect or a hardware defect for the specific task based on the value. The computing device inputs a result of detecting a defect for the specific task into the deep learning model, and adjusts the first constant value or the second constant value based on a value output by the deep learning model.

이하 설명하는 기술은 시스템 상황이나 결함 유형에 따라 결함 탐지에 필요한 기준값을 동적으로 조절하여 보다 정확한 결함 탐지가 가능하다.The technology to be described below enables more accurate defect detection by dynamically adjusting the reference value required for defect detection according to system conditions or defect types.

도 1은 하드웨어 및 소프트웨어 결함을 탐지하는 시스템에 대한 예이다.
도 2는 결함 탐지 모듈의 동작에 대한 예이다.
도 3은 결함 구분 모듈의 동작에 대한 예이다.
도 4는 하드웨어 및 소프트웨어 결함을 탐지하는 분석장치의 동작에 대한 예이다.
도 5는 학습 모델의 학습 과정에 대한 예이다.
도 6은 하드웨어 및 소프트웨어 결함을 탐지하는 분석장치의 구성에 대한 예다.
1 is an example of a system for detecting hardware and software faults.
2 is an example of the operation of the defect detection module.
3 is an example of the operation of the defect classification module.
4 is an example of an operation of an analysis device for detecting hardware and software defects.
5 is an example of a learning process of a learning model.
6 is an example of the configuration of an analysis device for detecting hardware and software defects.

이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the technology to be described below can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the technology described below to specific embodiments, and it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the technology described below.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various components, but the components are not limited by the above terms, and only for the purpose of distinguishing one component from other components. used only as For example, a first component may be named as a second component, and similarly, the second component may also be referred to as a first component without departing from the scope of the technology to be described below. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설명된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In terms of terms used herein, the singular expression should be understood to include the plural expression unless the context clearly dictates otherwise, and terms such as "comprises" include the described feature, number, step, operation, element. , parts or combinations thereof are to be understood, but not to exclude the possibility of the presence or addition of one or more other features or numbers, step operation components, parts or combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Prior to a detailed description of the drawings, it is intended to clarify that the classification of the constituent parts in the present specification is merely a division according to the main function that each constituent unit is responsible for. That is, two or more components to be described below may be combined into one component, or one component may be divided into two or more for each more subdivided function. In addition, each of the constituent units to be described below may additionally perform some or all of the functions of other constituent units in addition to the main function it is responsible for. Of course, it can also be performed by being dedicated to it.

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in performing the method or operation method, each process constituting the method may occur differently from the specified order unless a specific order is clearly described in context. That is, each process may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

이하 설명하는 기술은 소프트웨어와 하드웨어로 구성된 특정 장치의 동작을 분석하여 하드웨어(HW) 또는/및 소프트웨어(SW) 동작에 결함이 있는지 탐지하는 기법이다. 결함 탐지 대상(분석 대상)이 되는 장치를 타깃 장치라고 명명한다. 예컨대, 타깃 장치는 서버, PC, 스마트기기, IoT 장치, 액세스 포인트, RSU, 차량 등이 될 수 있다. 타깃 장치는 일반적으로 네트워크에 연결되는 다양한 유형의 장치 중 어느 하나일 수 있다. 또는 타깃 장치는 폐쇄된 시스템(closed system)에 연결된 장치일 수도 있다.The technique to be described below is a technique for detecting whether there is a defect in the operation of hardware (HW) and/or software (SW) by analyzing the operation of a specific device composed of software and hardware. A device that is a target for defect detection (analysis target) is called a target device. For example, the target device may be a server, PC, smart device, IoT device, access point, RSU, vehicle, or the like. The target device may be any one of a variety of types of devices typically connected to a network. Alternatively, the target device may be a device connected to a closed system.

타깃 장치의 결함을 탐지하는 장치를 분석장치라고 명명한다. 분석장치는 주어진 입력 데이터를 기준으로 실시간으로 특정 타깃 장치의 결함 여부 및/또는 결함 종료를 탐지할 수 있다. 분석장치는 입력되는 데이터를 분석하여 결함을 탐지하는 장치로서 다양한 형태로 구현될 수 있다. 예컨대, 분석장치는 서버, PC, 스마트기기, 특정 장치에 내장된 칩셋, 라우터 등이 될 수 있다.A device that detects a defect in a target device is called an analysis device. The analysis device may detect whether a specific target device is defective and/or a defect termination in real time based on the given input data. The analysis device may be implemented in various forms as a device for detecting defects by analyzing input data. For example, the analysis device may be a server, a PC, a smart device, a chipset built into a specific device, a router, or the like.

분석장치는 사전에 구축한 기계학습(machine learning) 모델을 활용하여 결함 탐지 및/또는 결함 구분에 활용한다. 기계 학습은 인공 지능의 한 분야로, 컴퓨터가 학습할 수 있도록 알고리즘을 개발하는 분야를 의미한다. 학습 모델은 결정 트리, 랜덤 포레스트(random forest), KNN(K-nearest neighbor), 나이브 베이즈(Naive Bayes), SVM(support vector machine), 인공신경망(artificial neural network) 등이 있다. The analysis device utilizes a pre-built machine learning model to detect and/or classify a defect. Machine learning is a field of artificial intelligence and refers to the field of developing algorithms so that computers can learn. The learning model includes a decision tree, a random forest, a K-nearest neighbor (KNN), a naive Bayes, a support vector machine (SVM), an artificial neural network, and the like.

인공신경망은 생물의 신경망을 모방한 통계학적 학습 알고리즘이다. 다양한 신경망 모델이 연구되고 있다. 최근 딥러닝 신경망(deep learning network, DNN)이 주목받고 있다. DNN은 입력층(input layer)과 출력층(output layer) 사이에 여러 개의 은닉층(hidden layer)들로 이뤄진 인공신경망 모델이다. DNN은 일반적인 인공신경망과 마찬가지로 복잡한 비선형 관계(non-linear relationship)들을 모델링할 수 있다. DNN은 다양한 유형의 모델이 연구되었다. 예컨대, CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network), GAN(Generative Adversarial Network), RL(Relation Networks) 등이 있다.Artificial neural networks are statistical learning algorithms that mimic the neural networks of living things. Various neural network models are being studied. Recently, deep learning networks (DNNs) are attracting attention. DNN is an artificial neural network model consisting of several hidden layers between an input layer and an output layer. DNN can model complex non-linear relationships like general artificial neural networks. Various types of DNN models have been studied. For example, there are Convolutional Neural Network (CNN), Recurrent Neural Network (RNN), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Generative Adversarial Network (GAN), Relation Networks (RL), and the like.

도 1은 하드웨어 및 소프트웨어 결함을 탐지하는 시스템(100)에 대한 예이다. 도 1에서 분석장치(130, 150)가 피해 지진을 감지한다. 도 1에서 분석장치는 서버(130) 및 컴퓨터 단말(150) 형태로 도시하였다. 한편, 분석장치(130, 150)는 다양한 형태로 구현될 수 있다.1 is an example of a system 100 for detecting hardware and software faults. In FIG. 1 , the analysis devices 130 and 150 detect a damaged earthquake. In FIG. 1 , the analysis device is shown in the form of a server 130 and a computer terminal 150 . Meanwhile, the analysis devices 130 and 150 may be implemented in various forms.

타깃 장치(110)는 동작 중에 동작과 관련된 성능 로그 및 실행 로그를 생성한다. The target device 110 generates a performance log and an execution log related to the operation during operation.

분석장치(130, 150)는 타깃 장치(110)의 성능 로그 및 실행 로그를 획득한다. 분석장치(130, 150)는 타깃 장치(100)와 유선 또는 무선으로 연결되어 성능 로그 및 실행 로그를 수신할 수 있다. 또는 분석장치(130, 150)는 타깃 장치(100) 내부에 구현된 특정 장치 내지 부품일 수도 있다.The analysis devices 130 and 150 obtain a performance log and an execution log of the target device 110 . The analysis devices 130 and 150 may be connected to the target device 100 by wire or wirelessly to receive a performance log and an execution log. Alternatively, the analysis devices 130 and 150 may be specific devices or components implemented in the target device 100 .

분석장치(130, 150)는 타깃 장치(110)의 성능 로그 및 실행 로그를 분석하여 타깃 장치(110)의 결함을 실시간으로 탐지할 수 있다.The analyzers 130 and 150 may analyze a performance log and an execution log of the target device 110 to detect a defect of the target device 110 in real time.

서버(130)는 타깃 장치(110)의 성능 로그 및 실행 로그를 수신한다. 서버(130)는 수신한 성능 로그 및 실행 로그를 분석하여 타깃 장치(110)의 HW/SW 결함 여부 및/또는 결함 종류를 탐지한다. 서버(130)는 사전에 구축한 학습 모델을 이용하여 결함 탐지 결과에 따라 결함 여부 또는 결함 종료를 판단하는 기준값(상수값)을 조절할 수 있다. 이 경우 서버(130)는 조절된 기준값을 기준으로 현재 타깃 장치(110)의 결함 여부 또는 결함 종류를 판단한다. 서버(130)는 이동통신시스템 및 액세스 포인트(140)를 통해 개별 타깃 장치(11, 12) 또는 별도의 제어 센터에 타깃 장치(110)의 HW/SW 결함을 통지할 수 있다.The server 130 receives the performance log and the execution log of the target device 110 . The server 130 analyzes the received performance log and execution log to detect whether the HW/SW defect and/or the defect type of the target device 110 is present. The server 130 may adjust a reference value (a constant value) for determining whether a defect exists or whether a defect is terminated according to a defect detection result using a previously built learning model. In this case, the server 130 determines whether the current target device 110 is defective or the type of defect based on the adjusted reference value. The server 130 may notify the HW/SW defect of the target device 110 to the individual target devices 11 and 12 or a separate control center through the mobile communication system and the access point 140 .

컴퓨터 단말(150)은 타깃 장치(110)의 성능 로그 및 실행 로그를 입력받는다. 컴퓨터 단말(150)은 입력되는 성능 로그 및 실행 로그를 분석하여 타깃 장치(110)의 HW/SW 결함 여부 및/또는 결함 종류를 탐지한다. 컴퓨터 단말(150)은 사전에 구축한 학습 모델을 이용하여 결함 탐지 결과에 따라 결함 여부 또는 결함 종료를 판단하는 기준값(상수값)을 조절할 수 있다. 이 경우 컴퓨터 단말(150)은 조절된 기준값을 기준으로 현재 타깃 장치(110)의 결함 여부 또는 결함 종류를 판단한다. 컴퓨터 단말(150)은 타깃 장치(110)의 HW/SW 결함을 출력하여 사용자(20)에게 제공할 수 있다.The computer terminal 150 receives the performance log and the execution log of the target device 110 . The computer terminal 150 analyzes the input performance log and the execution log to detect whether the HW/SW defect and/or the defect type of the target device 110 is present. The computer terminal 150 may adjust a reference value (a constant value) for determining whether a defect exists or whether a defect is terminated according to a defect detection result using a previously built learning model. In this case, the computer terminal 150 determines whether the current target device 110 is defective or the type of defect based on the adjusted reference value. The computer terminal 150 may output the HW/SW defect of the target device 110 and provide it to the user 20 .

분석장치는 타깃 장치의 성능 로그 및 실행 로그를 기준으로 타깃 장치의 SW/HW 결함을 탐지한다. 한편, 성능 로그 및 실행 로그는 각각 다양한 항목의 값으로 구성될 수 있다. The analysis device detects SW/HW defects of the target device based on the performance log and execution log of the target device. Meanwhile, the performance log and the execution log may each consist of values of various items.

분석장치는 타깃 장치로부터 획득하는 데이터로부터 필요한 성능 로그 및 실행 로그를 추출하여 분석에 이용할 수 있다. 또는 타깃 장치가 분석에 필요한 성능 로그 및 실행 로그만을 분석장치에 제공할 수도 있다. The analysis device may extract necessary performance logs and execution logs from data acquired from the target device and use them for analysis. Alternatively, the target device may provide only the performance log and execution log necessary for analysis to the analysis device.

타깃 장치 또는 분석장치는 결함 탐지를 수행할 대상(타깃 장치)에서 성능 로그 및 실행 로그를 수집한다. 특히 타깃 장치에서 성능 로그 및 실행 로그를 실시간으로 수집한다고 하면, 수집 동작으로 인하여 타깃 장치의 성능이 저하될 수 있다. 따라서, 타깃 장치의 성능 저하를 최소화하기 위하여 모니터링 대상의 위치 내지 항목을 최소화할 필요가 있다. The target device or analysis device collects performance logs and execution logs from a target (target device) to perform fault detection. In particular, if the performance log and the execution log are collected in real time from the target device, the performance of the target device may be deteriorated due to the collection operation. Therefore, in order to minimize the degradation of the performance of the target device, it is necessary to minimize the location or item of the monitoring target.

(1) 모니터링 위치(1) Monitoring location

타깃 장치 또는 분석장치는 메모리/병행성 결함 및 HW/SW 결함을 분석하여 필수적으로 모니터링 되어야 하는 위치만을 모니터링할 수 있다. 예컨대, 모니터링 위치는 메모리 결함과 관련된 라이브러리의 함수, 병행성 결함과 관련된 라이브러리의 함수 및 HW/SW의 호출 경계가 되는 OS(operating system)의 시스템 콜(system call)/인터럽트 핸들러(interrupt handler)일 수 있다.The target device or analysis device may analyze memory/parallel faults and HW/SW faults to monitor only the locations that are essential to be monitored. For example, the monitoring location is a system call/interrupt handler of an operating system (OS) that is a function of a library related to a memory fault, a function of a library related to a concurrency fault, and a call boundary of HW/SW. can

(2) 모니터링 데이터(2) Monitoring data

나아가, 결함 탐지 과정의 오버헤드를 줄이기 위하여 타깃 장치 또는 분석장치가 실시간 모니터링 위치에서 수집하는 로그도 결함 탐지 및 구분에 필수적인 데이터만을 수집할 수 있다. 예컨대, 모니터링 데이터는 아래 표 1과 같을 수 있다.Furthermore, in order to reduce the overhead of the defect detection process, the log collected by the target device or the analysis device at the real-time monitoring location may also collect only data essential for defect detection and classification. For example, the monitoring data may be as shown in Table 1 below.

장치 구분Device classification 로그 구분log division 수집 데이터Collected data HWHW 성능 로그performance log 장치 성능 카운터device performance counter HWHW 성능 로그performance log 네트워크 성능 카운터 (Tx/Rx 모두)Network performance counters (both Tx/Rx) SWSW 실행 로그run log 함수 호출시 Caller에서 전달한 매개변수Parameters passed by Caller when calling a function 함수 호출시 Callee의 반환값Return value of Callee when calling a function 함수 호출이 발생한 시각The time the function call occurred HW/SWHW/SW 실행 로그run log 인터럽트 발생 현황Interrupt status

분석장치는 타깃 장치의 성능 로그 및 실행 로그를 기준으로 결함 탐지 모듈을 이용하여 1차로 결함을 탐지한다. 분석장치는 1차 탐지 결과 SW 결함인지 HW 결함인지 명확하게 분류되지 않는 경우, 타깃 장치(110)의 성능 로그 및 실행 로그를 기준으로 결함 구분 모듈을 이용하여 2차로 결함을 탐지한다. 이하 결함 탐지 모듈과 결함 구분 모듈의 동작에 대하여 설명한다.The analysis device first detects a defect using the defect detection module based on the performance log and execution log of the target device. When it is not clearly classified as a SW defect or a HW defect as a result of the primary detection, the analysis device detects the defect secondarily using the defect classification module based on the performance log and the execution log of the target device 110 . Hereinafter, the operation of the defect detection module and the defect classification module will be described.

도 2는 결함 탐지 모듈의 동작(200)에 대한 예이다. 분석장치는 결함 탐지 모듈을 이용하여 타깃 장치의 실행 로그 및 성능 로그를 분석하여 결함이 발생하였는지를 탐지한다. 결함 탐지 모듈은 분석장치의 내부에서 동작하는 기능적 구성(소프트웨어 구성)이다.2 is an example of the operation 200 of the defect detection module. The analyzer analyzes the execution log and the performance log of the target device using the defect detection module to detect whether a defect has occurred. The defect detection module is a functional configuration (software configuration) that operates inside the analysis device.

결함 탐지 모듈은 타깃 장치의 실행 로그 및 성능 로그를 입력받는다(210). The defect detection module receives the execution log and the performance log of the target device ( 210 ).

결함 탐지 모듈은 SW 결함 탐지와 HW 결함 탐지로 구분이 된다. 결함 탐지 모듈은 SW 결함 탐지와 HW 결함 탐지를 개별적으로 수행할 수 있다. The fault detection module is divided into SW fault detection and HW fault detection. The fault detection module may separately perform SW fault detection and HW fault detection.

(1) SW 결함 탐지: 결함 탐지 모듈은 메모리 관련 함수와 병행성 관련 함수의 실행 로그를 분석하여 메모리 결함이나 병행성 결함이 발생하였는지를 탐지한다. 결함 탐지 모듈은 시스템 콜 실행 로그의 실행 결과가 정상값이 아니거나 인터럽트 발생 로그가 존재할 경우에는 이를 기타 결함의 후보로 판단한다. SW 결함 탐지에서 기타 결함으로 분류된 경우, 결함 탐지 모듈은 HW 결함 탐지 결과에 따라 해당 결함을 최종적인 기타 결함으로 판단하게 된다.(1) SW fault detection: The fault detection module detects whether a memory fault or a concurrency fault has occurred by analyzing the execution log of the memory-related function and the concurrency-related function. When the execution result of the system call execution log is not a normal value or an interrupt generation log exists, the fault detection module determines it as a candidate for other faults. If it is classified as other defect in SW defect detection, the defect detection module determines the corresponding defect as the final other defect according to the HW defect detection result.

(2) HW 결함 탐지: 결함 탐지 모듈은 시스템 콜의 실행 로그와 성능 로그를 분석하여 결함을 탐지한다. 결함 탐지 모듈은 시스템 콜의 종류와 실행 결과에 따라 네트워크 결함과 장치 결함을 탐지한다. 결함 탐지 모듈은 성능 로그에서 성능 변경이 일정 범위를 벗어나는 경우 기타 결함의 후보로 판단한다. (2) HW fault detection: The fault detection module detects faults by analyzing the execution log and performance log of the system call. The fault detection module detects network faults and device faults according to the type and execution result of the system call. The fault detection module determines other faults as candidates when the performance change in the performance log is out of a certain range.

결함 탐지 모듈은 (i) HW 결함 탐지에서 기타 결함으로 판단한 성능 변경 전/후의 실행 로그가 (ii) SW 결함 탐지에서도 기타 결함으로 판단된 실행 로그인 경우에만 최종적으로 해당 실행 로그를 기타 결함으로 판단한다. 기타 결함은 SW 결함과 HW 결함인지 명확하게 구분되지 않는 경우이다. 기타 결함은 결함 구분 모듈에 전달하여, 결함 구분 모듈이 결함을 탐지하게 된다.The fault detection module finally judges the execution log as other fault only when (i) the execution log before/after the performance change determined as other fault in HW fault detection is (ii) the execution log judged as other fault in SW fault detection. . Other defects are cases where it is not clear whether SW defects and HW defects are not clearly distinguished. Other faults are transmitted to the fault identification module, so that the fault identification module detects the fault.

도 3은 결함 구분 모듈의 동작(300)에 대한 예이다. 결함 구분 모듈은 전술한 결함 탐지 모듈에서 최종적으로 기타 결함으로 판단된 경우에 대한 결함을 구분하기 위한 것이다. 분석장치는 결함 구분 모듈을 이용하여 타깃 장치의 실행 로그 및 성능 로그를 분석하여 결함을 구분(분류)한다. 3 is an example of the operation 300 of the defect classification module. The defect classification module is for classifying defects in the case where it is finally determined as other defects in the above-described defect detection module. The analysis device classifies (classifies) defects by analyzing the execution log and performance log of the target device using the defect classification module.

결함 구분 모듈은 실행 로그를 분석하여 해당 태스크(프로세스)가 정상적으로 종료(Normal termination)되었는지 확인한다(310).The fault identification module analyzes the execution log and checks whether the task (process) is normally terminated (310).

정상 종료되었다면(310의 Yes), 결함 구분 모듈은 HW에 접근하는 시스템 콜(system call)에 대한 실행 로그를 이용하여 결함을 구분한다.If it is normally terminated (Yes of 310), the fault classification module classifies the fault using the execution log for the system call accessing the HW.

결함 구분 모듈은 실행 로그의 실행 결과(execution result)와 시스템 콜 파라미터를 이용하여 소프트웨어 결함을 구분한다. The defect classification module classifies software defects by using the execution result of the execution log and the system call parameters.

결함 구분 모듈은 시스템 콜의 호출 전에 파라미터에 잘못된 값이 들어간 경우(320의 Error), 시스템 콜의 호출 이전 소프트웨어에서 파라미터에 잘못된 값을 넘겨준 것으로 판단하여 소프트웨어 결함(C)으로 구분한다. 잘못된 파라미터인지를 판단하는 것은 시스템 콜에 따라 달라진다.If an incorrect value is entered in the parameter before the system call is called (Error of 320), the fault classification module determines that the wrong value was passed to the parameter in the software before the system call is called and classifies it as a software defect (C). Determining whether a parameter is an invalid parameter depends on the system call.

파라미터가 정상적인 값이라고 해도(320의 Normal), 리턴 값이 오류 값이고, 오류 유형이 소프트웨어의 결함 유형인 경우(330의 Error) 결함 구분 모듈은 소프트웨어 결함으로 구분한다. Even if the parameter is a normal value (Normal in 320), the return value is an error value, and if the error type is a software defect type (Error in 330), the fault classification module classifies it as a software defect.

결함 구분 모듈은 시스템 콜에 대한 실행 로그에서 소프트웨어 결함으로 구분되지 않은 경우(330의 Normal), 실행 로그뿐만 아니라 성능 로그를 이용하여 결함을 구분한다. 결함 구분 모듈은 성능 로그의 HW 성능 카운터와 메모리로부터 읽어온 값을 기반으로 다음 다섯 가지의 기준에 의하여 결함을 구분한다.When the fault classification module is not classified as a software fault in the execution log for the system call (Normal of 330), the fault is classified using the performance log as well as the execution log. The fault classification module classifies faults according to the following five criteria based on the HW performance counter of the performance log and the value read from the memory.

(1) 성능이 일정하게 유지되는 동안 CPU 스위칭(switching)의 발생 여부(1) Whether CPU switching occurs while performance is kept constant

결함 구분 모듈은 성능 로그의 HW 성능 카운터 중 CPU 사이클(cycles)의 추이 변화를 통해 성능 유지 여부를 판정하고, CPU ID를 이용하여 CPU 스위칭이 발생하였는지를 판정한다. 결함 구분 모듈은 CPU 사이클이 아래 수학식 1의 범위 내에 존재하는 경우에는 성능이 일정하게 유지된다고 판정한다. The fault classification module determines whether performance is maintained by changing the trend of CPU cycles among HW performance counters in the performance log, and determines whether CPU switching occurs using CPU ID. The fault classification module determines that the performance is kept constant when the CPU cycle is within the range of Equation 1 below.

Figure 112021053916001-pat00001
Figure 112021053916001-pat00001

여기서, CPUaver는 현재 CPU 사이클 직전까지의 CPU 사이클의 평균값, CPUcounter는 CPU 사이클 카운터값, α는 CPU/프로세스 종류에 따라 달라지는 상수이다. α는 CPU/프로세스의 종류에 따라 달라지는 상수인데, 최초 설정값은 실험적으로 위양성율(false positive rate)이 가장 낮은 값으로 설정될 수 있다. 이 값은 후술할 학습 모델을 이용하여 조절되는 상수 값이 될 수 있다.Here, CPU aver is the average value of CPU cycles up to immediately before the current CPU cycle, CPU counter is a CPU cycle counter value, and α is a constant that varies depending on the CPU/process type. α is a constant that varies depending on the type of CPU/process, and the initial setting value may be experimentally set to a value having the lowest false positive rate. This value may be a constant value that is adjusted using a learning model, which will be described later.

결함 구분 모듈은 CPU 스위칭이 발생했다고 판단하면(340의 Yes), 해당 결함은 HW(CPU) 결함(A)이라고 구분한다. 일반적인 애플리케이션 수행에는 전력 소모를 최소화하기 위해 저전력 CPU만 동작하게 되고, 저전력 CPU가 처리하기에는 전력이 부족한 경우에만 고성능 CPU가 동작하기 위한 CPU 스위칭이 발생한다. 그런데 성능이 일정하게 유지되고 있으며, 반복적으로 동일한 일을 수행하는 프로세스가 실행될 때 CPU 스위칭이 발생한다면, 결함 구분 모듈은 일시적인 전압 변동과 같이 CPU에 간헐적인 결함이 발생한 것으로 판단할 수 있다.If the fault classification module determines that CPU switching has occurred (Yes of 340), the fault is classified as a HW (CPU) fault (A). In general application execution, only the low-power CPU is operated to minimize power consumption, and CPU switching occurs for the high-performance CPU to operate only when the low-power CPU has insufficient power to process. However, if performance is kept constant and CPU switching occurs when a process that repeatedly performs the same task is executed, the fault classification module can determine that an intermittent fault has occurred in the CPU, such as a temporary voltage change.

한편, CPU 스위칭은 멀티코어 CPU에서 발생한다. 단일코어 CPU의 경우는 결함 구분 모듈은 CPU 스위칭 여부를 판정하지 않고 다른 기준을 이용하여 결함을 구분한다. 즉, 결함 구분 모듈은 CPU 스위칭 판단 지점에서 CPU 스위칭은 없다고 보고 결함은 구분한다.On the other hand, CPU switching occurs in multi-core CPUs. In the case of a single-core CPU, the fault classification module does not determine whether the CPU is switched or not, but uses other criteria to classify the fault. That is, the fault classification module considers that there is no CPU switching at the CPU switching determination point and classifies the fault.

(2) CPU의 성능 저하(2) CPU performance degradation

CPU 사이클의 증가는 연산을 처리하는데 소요된 시간이 증가하였음을 나타낸다. 즉, CPU 사이클의 증가는 CPU의 성능 저하라고 할 수 있다. 결함 구분 모듈은 수학식 1을 기준으로 CPU의 성능 저하 여부를 판단할 수 있다.An increase in CPU cycles indicates that the time taken to process the operation has increased. In other words, the increase in CPU cycles can be said to decrease the performance of the CPU. The defect classification module may determine whether the performance of the CPU is degraded based on Equation (1).

CPU 성능 저하는 CPU에서 태스크 처리 중 인터럽트(interrupt) 발생, 데이터 로드/저장(load/store) 작업 지연 등 다양한 이유로 발생할 수 있다. 따라서, CPU의 성능 저하만으로는 CPU 결함을 판정하기는 어렵다. 따라서, 아래 설명할 기준을 추가로 판단하여 CPU 결함인지 여부를 판단할 수 있다. 결함 구분 모듈은 CPU 성능 저하가 발생하지만, CPU 결함(A)이 아니라면 메모리와 같은 다른 하드웨어의 결함(B)으로 판단한다(350의 No).CPU performance degradation may occur for various reasons, such as interrupts during task processing in the CPU and delays in data load/store operations. Therefore, it is difficult to determine a CPU defect only by the performance degradation of the CPU. Accordingly, it is possible to determine whether the CPU is defective by additionally determining the criteria to be described below. Although the CPU performance degradation occurs in the fault classification module, if it is not a CPU fault (A), it is determined as a fault (B) of other hardware such as memory (No of 350).

(3) 재시도/지연(Retry/stall) 발생 여부(3) Whether Retry/stall occurs

결함 구분 모듈은 CPU에서 연산을 정상적으로 수행하지 못하거나, 데이터 로드/저장에 오랜 시간이 걸리는 경우 재시도/지연이 발생한 것으로 볼 수 있다. 결함 구분 모듈은 L1 캐시 미스율(miss ratio), BPU 미스율 및 지연 카운터(stall counter)를 이용하여 재시도/지연의 발생 여부를 판단할 수 있다. 결함 구분 모듈은 L1 캐시 미스율, BPU 미스율, 지연 카운터가 각각 평균값의 범위를 벗어나는 경우, 재시도/지연이 발생한 것으로 판단할 수 있다.If the fault classification module fails to perform operations normally in the CPU or it takes a long time to load/save data, retry/delay may occur. The fault classification module may determine whether retry/delay occurs by using the L1 cache miss ratio, the BPU miss ratio, and the stall counter. When the L1 cache miss rate, the BPU miss rate, and the delay counter are out of the range of the average values, the fault classification module may determine that retry/delay has occurred.

결함 구분 모듈은 CPU 성능 저하되었는데(350의 Yes), 재시도/지연이 발생하지 않았다면, CPU가 아닌 다른 하드웨어에 결함이 있는 것으로 판정한다(360의 No).The fault classification module determines that the CPU performance is degraded (Yes of 350), but if retries/delays do not occur, hardware other than the CPU is defective (No of 360).

결함 구분 모듈은 재시도/지연이 발생하였다면, 추가적인 정보를 더 확인하여 결함을 구분한다. If retry/delay occurs, the fault classification module identifies the fault by further checking additional information.

(4) 에러 발생 여부 (4) Whether an error occurred

결함 구분 모듈은 CPU와 메모리, 외부 장치들 간에 주고받는 데이터에 에러가 발생하였는지를 확인한다(370). 결함 구분 모듈은 시스템 콜에서 리턴하는 에러 유형(error type)과 에러 카운터(error counter)의 값을 기준으로 에러 여부를 판단할 수 있다. 결함 구분 모듈은 에러 유형 < 0이거나, 또는 에러 카운터≠0인 경우 에러가 발생한 것으로 판단한다. The fault classification module checks whether an error has occurred in data exchanged between the CPU, memory, and external devices ( 370 ). The fault classification module may determine whether there is an error based on the error type returned from the system call and the value of the error counter. The fault classification module determines that an error has occurred if the error type < 0 or if the error counter ≠ 0.

결함 구분 모듈은 CPU 성능 저하 + 재시도/지연이 발생하였는데 에러가 발생하지 않은 경우, 데이터의 문제가 아니라 CPU 내부의 문제로 판단하여 CPU 결함으로 판정한다(370의 No). If an error does not occur even though CPU performance degradation + retry/delay occurs, the fault classification module determines that it is a CPU defect, not a data problem, but an internal CPU problem (No of 370).

(5) 내부 메모리 값 확인 (5) Check the internal memory value

에러가 발생한 것으로 확인이 되면(370의 Yes), 결함 구분 모듈은 에러 카운터와 메모리에 저장된 값을 기준으로 CPU 내부에서 에러가 발생한 것인지를 판단한다. 에러 카운터는 CPU 내부 캐시의 데이터에서 에러가 발생하였을 때 증가하므로, 에러 카운터가 증가하였다는 것은 CPU 내부 캐시에 결함이 존재한다는 것을 의미한다. 결함 구분 모듈은 CPU 내부 에러가 발생한 것으로 판단하면(380의 Yes), CPU 결함으로 구분한다.If it is confirmed that an error has occurred (Yes of 370), the fault classification module determines whether an error has occurred inside the CPU based on the error counter and the value stored in the memory. Since the error counter is incremented when an error occurs in the data in the CPU internal cache, an increase in the error counter means that there is a defect in the CPU internal cache. If the fault classification module determines that a CPU internal error has occurred (Yes of 380), it is classified as a CPU fault.

에러 카운터의 증가와 함께 메모리에 저장된 값도 잘못된 값(데이터)이 들어있는 경우, 결함 구분 모듈은 CPU 내부가 아니라 메모리와 같은 다른 하드웨어에서 결함이 발생한 것으로 판단한다(380의 No).If the value stored in the memory also contains an incorrect value (data) along with the increase of the error counter, the fault classification module determines that a fault has occurred in other hardware such as memory, not inside the CPU (No of 380).

정상 종료되지 않았다면(310의 No), 결함 구분 모듈은 HW에 접근하는 시스템 콜(system call)에 대한 실행 로그를 이용하여 결함을 구분한다. 결함 구분 모듈은 시스템 콜의 호출 전에 파라미터에 잘못된 값이 들어간 경우(390의 Error), 시스템 콜의 호출 이전 소프트웨어에서 파라미터에 잘못된 값을 넘겨준 것으로 판단하여 소프트웨어 결함(C)으로 구분한다. 잘못된 파라미터인지를 판단하는 것은 시스템 콜에 따라 달라진다.If it is not normally terminated (No in 310), the fault classification module classifies the fault by using the execution log for the system call accessing the HW. If an incorrect value is entered in the parameter before the system call is called (Error of 390), the fault classification module judges that the wrong value was passed to the parameter by the software before the system call was called and classifies it as a software defect (C). Determining whether a parameter is an invalid parameter depends on the system call.

파라미터가 정상적인 값이라고 해도(390의 Normal), 결함 구분 모듈은 실행 로그를 분석하여 CPU 인터럽트가 발생하였는지 확인한다(395). 결함 구분 모듈은 CPU 인터럽트가 발생하지 않은 경우(395의 No), 소프트웨어 결함으로 구분한다. Even if the parameter is a normal value (Normal of 390), the fault classification module analyzes the execution log and checks whether a CPU interrupt has occurred (395). If the CPU interrupt does not occur (No in 395), the fault classification module classifies it as a software fault.

결함 구분 모듈은 CPU 인터럽트가 발생한 경우(395의 Yes), 하드웨어 결함(CPU 또는 다른 장치)으로 구분한다. The fault classification module classifies a hardware fault (CPU or other device) when a CPU interrupt occurs (Yes of 395).

도 4는 하드웨어 및 소프트웨어 결함을 탐지하는 분석장치(400)의 동작에 대한 예이다. 도 4는 분석장치의 기능성 구성(소프트웨어 모듈)을 중심으로 동작을 설명한 예이다. 각 구성에 대하여 설명한다.4 is an example of the operation of the analysis device 400 for detecting hardware and software defects. 4 is an example explaining the operation with a focus on the functional configuration (software module) of the analysis device. Each configuration will be described.

결함 탐지 모듈(410)은 타깃 장치의 실행 로그 및 성능 로그를 입력받아 결함 탐지를 시작한다. 결함 탐지 모듈(410)의 동작은 도 2에서 설명한 바와 같다. 결함 탐지 모듈(410)은 타깃 장치의 실행 로그 및 성능 로그를 기준으로 타깃 장치의 SW 결함 및/또는 HW 결함을 탐지한다. 결함 탐지 모듈(410)은 SW 결함 또는 HW 결함으로 명확하게 판단할 수 없는 경우 기타 결함으로 분류하고, 해당 결함과 관련된 정보(성능 로그 및 실행 로그)를 결함 구분 모듈420)에 전달한다.The defect detection module 410 receives the execution log and performance log of the target device and starts defect detection. The operation of the defect detection module 410 is the same as described with reference to FIG. 2 . The defect detection module 410 detects a SW defect and/or a HW defect of the target device based on the execution log and performance log of the target device. When the defect detection module 410 cannot be clearly determined as a SW defect or a HW defect, it classifies it as another defect, and transmits information (performance log and execution log) related to the defect to the defect classification module 420 .

결함 구분 모듈(420)은 타깃 장치의 실행 로그 및 성능 로그를 입력받아 결함을 구분한다. 결함 구분 모듈(420)은 CPU 결함(HW), CPU 외 HW 결함 및 SW 결함으로 결함을 구분한다. 결함 구분 모듈(420)의 동작은 도 3에서 설명한 바와 같다.The defect classification module 420 classifies the defect by receiving the execution log and the performance log of the target device. The defect classification module 420 classifies defects into CPU defects (HW), non-CPU HW defects, and SW defects. The operation of the defect classification module 420 is the same as described with reference to FIG. 3 .

결함 탐지 모듈(410) 또는 결함 구분 모듈(420)에서 HW 결함으로 분류한 경우, HW 결함 디버깅 모듈(431)은 HW 결함을 디버깅하는데 도움을 줄 수 있는 디버깅 정보를 추출한다. HW 결함 디버깅 모듈(431)은 결함 판단에 사용된 실행 로그 및 성능 로그, 결함이 발생한 HW 장치, 시스템 콜 호출에 사용된 파라미터, 인터럽트 발생 현황, 결함이 발생하기까지의 실행 콜스택을 디버깅 정보로 추출한다. HW 결함 디버깅 모듈(431)은 추출한 디버깅 정보를 분석 결과 출력 모듈(440)로 전달할 수 있다.When the defect detection module 410 or the defect classification module 420 classifies the HW defect as a HW defect, the HW defect debugging module 431 extracts debugging information that can help debug the HW defect. The HW fault debugging module 431 records the execution log and performance log used to determine the fault, the HW device in which the fault occurred, the parameters used for the system call call, the interrupt occurrence status, and the execution call stack until the fault occurs as debugging information. extract The HW fault debugging module 431 may transmit the extracted debugging information to the analysis result output module 440 .

결함 탐지 모듈(410) 또는 결함 구분 모듈(420)에서 SW 결함으로 분류한 경우, SW 결함 디버깅 모듈(432)은 SW 결함을 디버깅하는데 도움을 줄 수 있는 디버깅 정보를 추출한다. SW 결함 디버깅 모듈(432)은 결함 판단에 사용된 실행 로그 및 성능 로그, 결함 유형, 결함과 관련된 함수를 호출할 때 사용한 파라미터, 해당 함수가 실행되기까지의 콜스택을 디버깅 정보로 추출한다. SW 결함 디버깅 모듈(432)은 추출한 디버깅 정보를 분석 결과 출력 모듈(440)로 전달할 수 있다.When the fault detection module 410 or the fault classification module 420 classifies the SW fault as a SW fault, the SW fault debugging module 432 extracts debugging information that can help debug the SW fault. The SW fault debugging module 432 extracts an execution log and performance log used for fault determination, a fault type, a parameter used when calling a function related to a fault, and a call stack until the corresponding function is executed as debugging information. The SW fault debugging module 432 may transmit the extracted debugging information to the analysis result output module 440 .

분석 결과 출력 모듈(440)은 결함 탐지 모듈(410) 또는 결함 구분 모듈(420)이 탐지한 결함이 존재하는 경우, HW 결함 디버깅 모듈(431)과 SW 결함 디버깅 모듈(432)로부터 전달받은 디버깅 정보 및 결함의 유형을 출력한다.The analysis result output module 440 provides debugging information received from the HW fault debugging module 431 and the SW fault debugging module 432 when a fault detected by the fault detection module 410 or the fault classification module 420 exists. and the type of defect.

전술한 결함 탐지 모듈(410) 또는 결함 구분 모듈(420)은 SW 결함이나 HW 결함을 판별하는 과정에서 실행 로그와 성능 로그를 분석한다. 결함 탐지 모듈(410) 또는 결함 구분 모듈(420)은 특히 성능 로그의 성능 카운터 값이 정상 범위에 속하는지 여부를 기준으로 결함을 분석한다. 즉, 결함 탐지 모듈(410) 또는 결함 구분 모듈(420)은 특정한 참조 값 내지 참조 범위와 현재 로그값에서 추출한 정보를 비교하여 결함 탐지 내지 결함 구분을 한다. 참조 값 내지 참조 범위는 특정 상수값 또는 상수값들로 정의된다.The aforementioned defect detection module 410 or defect classification module 420 analyzes an execution log and a performance log in the process of determining a SW defect or a HW defect. The defect detection module 410 or the defect classification module 420 analyzes the defect based on whether or not the performance counter value of the performance log falls within a normal range. That is, the defect detection module 410 or the defect classification module 420 performs defect detection or defect classification by comparing a specific reference value or reference range with information extracted from a current log value. A reference value or reference range is defined as a specific constant value or constant values.

학습 모듈(450)은 참조 값 내지 참조 범위를 정의하는 상수값을 조절하는 구성이다. 학습 모듈(450)은 결함 탐지 모듈(410)에 사용되는 상수값을 조절하는 결함 탐지 학습 모듈과 결함 구분 모듈(420)에 사용되는 상수값을 조절하는 결함 구분 학습 모듈을 포함한다. The learning module 450 is a configuration for adjusting a reference value or a constant value defining a reference range. The learning module 450 includes a defect detection learning module that adjusts a constant value used in the defect detection module 410 and a defect classification learning module that adjusts a constant value used in the defect classification module 420 .

학습 모듈(450)은 결함 탐지 모듈(410) 또는 결함 구분 모듈(420)의 결함 분석 결과를 결함 탐지 모듈(410), 결함 구분 모듈(420) 및 분석 결과 출력 모듈(440) 중 어느 하나로부터 전달받는다. 학습 모듈(450)은 결함 탐지 결과를 피드백받고, 결함 탐지 결과에 따라 결함 탐지 내지 결함 구분에 사용하는 상수값을 조절한다.The learning module 450 transmits the defect analysis result of the defect detection module 410 or the defect classification module 420 from any one of the defect detection module 410 , the defect classification module 420 , and the analysis result output module 440 . receive The learning module 450 receives a feedback of the defect detection result, and adjusts a constant value used for defect detection or defect classification according to the defect detection result.

학습 모듈에서 학습하는 내용은 크게 두 가지로 구분이 된다. 첫 번째는 기존의 결함 탐지 대상에 대해 결함으로 보고된 버그 레포트의 내용이고, 두 번째는 결함 탐지 및 구분 결과에 대한 피드백이다. The content to be learned in the learning module is divided into two main categories. The first is the content of a bug report reported as a defect for the existing defect detection target, and the second is feedback on the defect detection and classification results.

먼저, 학습 모듈 종래 결함 정보를 이용하여 특정 키워드와 특정 결함과의 관계를 학습한다. 학습 모델은 의사 결정 트리를 이용한 지도 학습을 이용할 수 있다. 학습데이터는 버그 레포트에서 추출된 키워드와 결함 판정 결과를 데이터 셋으로 갖는다. 키워드는 버그질라와 같은 버그 추적 시스템에 등록된 내용 중 이미 결함인지 아닌지 판정이 된 버그 레포트의 내용에서 추출될 수 있다.First, the relationship between a specific keyword and a specific defect is learned using the conventional defect information of the learning module. The learning model may use supervised learning using a decision tree. The training data has keywords extracted from bug reports and defect determination results as data sets. Keywords can be extracted from the contents of the bug report that has already been determined whether or not it is a defect among the contents registered in a bug tracking system such as Bugzilla.

두 번째로 학습 모듈이 학습하는 내용은 전술한 결함 탐지 모듈 및/또는 결함 구분 모듈에 탐지한 결과에 대한 피드백이다.Second, what the learning module learns is feedback on a result detected by the aforementioned defect detection module and/or the defect classification module.

도 5는 학습 모델의 학습 과정(500)에 대한 예이다. 이 과정은 학습 모듈이 실시간 실행 로그와 성능 로그를 수집한 후 일련의 과정을 거쳐 결함을 탐지하고 구분한 결과가 실제 결과와 맞는지 학습하는 과정이다. 학습 모듈은 학습 결과에 따라 결함 탐지 모듈과 결함 구분 모듈의 각 단계에서 사용하는 상수의 값을 조정하게 된다. 여기서, 학습 모델은 딥러닝 모델을 이용할 수 있다.5 is an example of a learning process 500 of a learning model. In this process, after the learning module collects real-time execution logs and performance logs, it goes through a series of processes to detect and classify defects and learn whether the results match the actual results. The learning module adjusts the constant value used in each step of the defect detection module and the defect classification module according to the learning result. Here, the learning model may use a deep learning model.

학습 모듈은 결함 탐지 학습 모듈과 결함 구분 학습 모듈로 구분될 수 있다. 결함 탐지 학습 모듈과 결함 구분 학습 모듈 각각에 대하여 개별적으로 학습되어야 한다.The learning module may be divided into a defect detection learning module and a defect classification learning module. Each of the defect detection learning module and the defect classification learning module should be individually learned.

학습 데이터는 HW/SW 결함 탐지 결과와 실제 결함을 분석한 결과를 사용한다. HW/SW 결함 탐지 결과는 전술한 결함 탐지 모듈 및/또는 결함 구분 모듈이 출력하는 예측 결과일 수 있다. 실제 결함을 분석한 결과는 결함 탐지 모듈 및/또는 결함 구분 모듈 예측했던 동일한 태스크에 대하여 실제 결함을 분석한 결과이다. As the training data, the results of HW/SW defect detection and actual defect analysis are used. The HW/SW defect detection result may be a prediction result output by the above-described defect detection module and/or the defect classification module. The result of analyzing the actual defect is the result of analyzing the actual defect for the same task predicted by the defect detection module and/or the defect classification module.

학습 모듈은 HW/SW 결함 탐지 결과(511)와 실제 결함을 분석한 결과(512)를 입력받는다. 학습 모듈은 각각의 결함 탐지 결과로부터 결함의 유형과 결함 탐지가 제대로 되었는지를 각각 추출하고, 그 결과를 샘플링하는 과정을 반복한다. 이 과정을 반복하면 학습 모듈은 특정한 HW/SW 결함 탐지 결과의 정확도 또는 오탐율을 확인할 수 있다. 여기서, 정확도 또는 오탐율은 학습 모듈에 HW/SW 결함 탐지 예측 결과에서 추출하는 특징에 해당한다. The learning module receives the HW/SW defect detection result 511 and the actual defect analysis result 512 as inputs. The learning module repeats the process of extracting the defect type and defect detection from each defect detection result, respectively, and sampling the result. By repeating this process, the learning module can check the accuracy or false positive rate of a specific HW/SW defect detection result. Here, the accuracy or false positive rate corresponds to a feature extracted from the HW/SW defect detection prediction result in the learning module.

학습 모듈은 특정 HW/SW 결함 탐지 예측 결과에 대한 정확도 또는 오탐율을 기준으로 HW/SW 결함 탐지 예측에 사용되는 상수값을 조절하는 정보(예컨대, 조절 비율)을 출력하게 학습된다(520).The learning module is trained to output information (eg, adjustment ratio) for adjusting a constant value used for HW/SW defect detection prediction based on the accuracy or false positive rate for a specific HW/SW defect detection prediction result ( 520 ).

예컨대, 기타 결함 중 HW 결함의 경우 결함 탐지 정확도 70% 미만, 70~80&, 80~90%, 90% 이상을 기준으로 분류하여 각각 상수값 조절 비율을 20, 15, 10, 5로 정하였다고 가정한다. For example, in the case of HW defects among other defects, it is assumed that the constant value adjustment ratio is set to 20, 15, 10, and 5, respectively, by classifying them based on the defect detection accuracy of less than 70%, 70-80&, 80-90%, and 90% or more. do.

학습 과정에서 기타 결함 중 HW 결함의 결함 탐지 정확도가 77.8%이고, 결함 탐지에 사용되는 상수값이 현재 10%라고 한다면, 학습 모듈은 결함 탐지 정확도 70~80% 구간으로 분류하여 상수값이 15% 조절될 수 있다. 이때 사용되는 상수값은 결함으로 탐지되는 성능값의 허용 범위이므로 기존 10%에서 15% 증가된 11.5%로 변경이 될 수 있다. 여기서, 상수값은 수학식 1에서의 α와 같은 값일 수도 있다.In the learning process, if the defect detection accuracy of HW defects among other defects is 77.8%, and the constant value used for defect detection is currently 10%, the learning module classifies the defect detection accuracy into 70-80% and the constant value is 15% can be adjusted. Since the constant value used at this time is the allowable range of the performance value detected as a defect, it can be changed from the existing 10% to 11.5%, which is increased by 15%. Here, the constant value may be the same as α in Equation (1).

오탐율의 경우에도 위와 비슷하게 동작하는데, 학습 과정에서 오탐율이 20% 이상, 10~20%, 5~10%, 5% 미만을 기준으로 분류하여 각각 상수값 조절 비율을 20, 15, 10, 5라고 한다면, 학습 모듈은 상수값이 감소하도록 조절할 수 있다.In the case of the false positive rate, it works similarly to the above. In the learning process, the false positive rate is classified based on 20% or more, 10~20%, 5~10%, or less than 5%, and the constant value adjustment ratio is set to 20, 15, 10, If it is 5, the learning module can adjust the constant value to decrease.

학습 모듈은 결함 탐지 또는 결함 구분에 사용되는 상수에 대한 조절값(예컨대, 조절 비율)을 출력한다(530). 이후, 결함 탐지 모듈 또는 결함 구분 모듈에 조정된 상수값이 적용될 수 있고, 결함 탐지 모듈 또는 결함 구분 모듈은 조정된 상수값을 기준으로 결함 탐지를 할 수 있다(540). 결함 탐지 모듈 또는 결함 구분 모듈이 탐지한 HW/SW 결함 탐지 결과는 다시 학습 과정에 반복적으로 사용될 수 있다. 결국 학습 모듈은 예측한 HW/SW 결함 탐지 결과(결과값, 결과 유형)에 따라The learning module outputs an adjustment value (eg, adjustment ratio) for a constant used for defect detection or defect classification ( 530 ). Thereafter, the adjusted constant value may be applied to the defect detection module or the defect classification module, and the defect detection module or the defect classification module may perform defect detection based on the adjusted constant value ( 540 ). The HW/SW defect detection result detected by the defect detection module or the defect classification module can be used repeatedly in the learning process. In the end, the learning module is based on the predicted HW/SW defect detection result (result value, result type).

도 6은 하드웨어 및 소프트웨어 결함을 탐지하는 분석장치(600)의 구성에 대한 예다. 분석장치(600)는 도 1의 분석장치(130 또는 150)에 해당하는 장치이다.6 is an example of the configuration of the analysis device 600 for detecting hardware and software defects. The analysis device 600 is a device corresponding to the analysis device 130 or 150 of FIG. 1 .

분석장치(600)는 전술한 딥러닝 모델을 이용하여 결함 탐지에 필요한 성능 조건이나 상수값을 조절하여 타깃 장치의 특정 태스크에 대한 결함을 탐지한다. 분석장치(600)는 물리적으로 다양한 형태로 구현될 수 있다. 예컨대, 분석장치(600)는 PC, 스마트 기기, 네트워크상의 서버, 데이터 처리 전용 칩셋 등의 형태를 가질 수 있다.The analysis device 600 detects a defect for a specific task of the target device by adjusting a performance condition or constant value required for defect detection using the above-described deep learning model. The analysis device 600 may be physically implemented in various forms. For example, the analysis device 600 may have the form of a PC, a smart device, a server on a network, a chipset dedicated to data processing, and the like.

분석장치(600)는 저장장치(610), 메모리(620), 연산장치(630), 인터페이스 장치(640), 통신장치(650) 및 출력장치(660)를 포함할 수 있다.The analysis device 600 may include a storage device 610 , a memory 620 , an arithmetic device 630 , an interface device 640 , a communication device 650 , and an output device 660 .

저장장치(610)는 성능 로그 및 실행 로그를 기준으로 예측되는 결함 탐지 결과와 실제 결함 결과를 이용하여 학습된 딥러닝 모델을 저장할 수 있다. 딥러닝 모델은 도 5에서 설명한 과정을 통하여 학습될 수 있다.The storage device 610 may store the learned deep learning model using the defect detection result predicted based on the performance log and the execution log and the actual defect result. The deep learning model may be learned through the process described in FIG. 5 .

저장장치(610)는 데이터 처리에 필요한 프로그램 내지 소스 코드 등을 저장할 수 있다. The storage device 610 may store programs or source codes required for data processing.

저장장치(610)는 전술한 결함 탐지 모듈, 결함 구분 모듈, 결함 디버깅 모듈, 분석 결과 출력 모듈 및 학습 모듈을 저장할 수 있다.The storage device 610 may store the above-described defect detection module, defect classification module, defect debugging module, analysis result output module, and learning module.

저장장치(610)는 입력되는 성능 로그 및 실행 로그를 저장할 수 있다. The storage device 610 may store input performance logs and execution logs.

저장장치(610)는 타깃 장치의 결함 분석 결과 또는 타깃 장치의 특정 태스크에 대한 결함 분석 결과를 저장할 수 있다. The storage device 610 may store a defect analysis result of the target device or a defect analysis result for a specific task of the target device.

메모리(620)는 분석장치(600)가 HW/SW 결함을 탐지하는 과정에서 생성되는 데이터 및 정보 등을 저장할 수 있다.The memory 620 may store data and information generated while the analysis device 600 detects a HW/SW defect.

인터페이스 장치(640)는 외부로부터 일정한 명령 및 데이터를 입력받는 장치이다. 인터페이스 장치(640)는 물리적으로 연결된 입력 장치 또는 외부 저장장치로부터 타깃 장치의 성능 로그 및 실행 로그를 입력받을 수 있다. The interface device 640 is a device that receives predetermined commands and data from the outside. The interface device 640 may receive the performance log and execution log of the target device from a physically connected input device or an external storage device.

인터페이스 장치(640)는 데이터 분석을 위한 학습모델을 입력받을 수 있다. 인터페이스 장치(640)는 학습모델 훈련을 위한 학습데이터, 정보 및 파라미터값을 입력받을 수도 있다. The interface device 640 may receive a learning model for data analysis. The interface device 640 may receive learning data, information, and parameter values for training a learning model.

통신장치(650)는 유선 또는 무선 네트워크를 통해 일정한 정보를 수신하고 전송하는 구성을 의미한다. 통신장치(650)는 외부 객체로부터 타깃 장치의 성능 로그 및 실행 로그를 수신할 수 있다. 통신장치(650)는 모델 학습을 위한 데이터도 수신할 수 있다. The communication device 650 refers to a configuration for receiving and transmitting certain information through a wired or wireless network. The communication device 650 may receive a performance log and an execution log of the target device from an external object. The communication device 650 may also receive data for model learning.

통신장치(650)는 성능 로그 및 실행 로그를 기준으로 분석된 타깃 장치에 대한 결함 탐지 결과를 외부 객체로 송신할 수 있다. The communication device 650 may transmit a defect detection result for the target device analyzed based on the performance log and the execution log to an external object.

통신장치(650) 내지 인터페이스 장치(640)는 외부로부터 일정한 데이터 내지 명령을 전달받는 장치이다. 통신장치(650) 내지 인터페이스 장치(640)를 입력장치라고 명명할 수 있다.The communication device 650 or the interface device 640 are devices that receive predetermined data or commands from the outside. The communication device 650 or the interface device 640 may be referred to as input devices.

출력장치(660)는 일정한 정보를 출력하는 장치이다. 출력장치(660)는 데이터 처리 과정에 필요한 인터페이스, 분석 결과 등을 출력할 수 있다. 출력장치(660)는 결함 탐지 결과를 출력할 수 있다. 출력장치(660)는 디버깅 정보를 출력할 수도 있다.The output device 660 is a device that outputs certain information. The output device 660 may output an interface necessary for a data processing process, an analysis result, and the like. The output device 660 may output a defect detection result. The output device 660 may output debugging information.

연산 장치(630)는 성능 로드 및 실행 로그에서 추출한 적어도 하나의 정보를 기준으로 결함을 탐지할 수 있다. 연산 장치(630)는 결함 탐지 모듈을 이용하여 도 2에서 설명한 바와 같이 SW 결함, HW 결함 또는 기타 결함으로 결함을 분류할 수 있다.The arithmetic unit 630 may detect a defect based on at least one piece of information extracted from the performance load and execution log. The calculation unit 630 may classify the defect into a SW defect, a HW defect, or other defects as described with reference to FIG. 2 using the defect detection module.

연산 장치(630)는 결함 구분 모듈을 이용하여 도 3에서 설명한 바와 같이 기타 결함을 구체적으로 CPU 결함, CPU 결함 외의 HW 결합 또는 SW 결합으로 구분할 수 있다.The arithmetic unit 630 may specifically classify other defects as CPU defects, HW combinations other than CPU defects, or SW combinations as described with reference to FIG. 3 by using the defect classification module.

연산 장치(630)는 성능 로드 및 실행 로그에서 추출한 적어도 하나의 정보 자체를 특정 상수값과 비교하여 결함을 탐지할 수 있다.The arithmetic unit 630 may detect a defect by comparing at least one piece of information extracted from the performance load and execution log with a specific constant value.

또는 연산 장치(630)는 성능 로드 및 실행 로그에서 추출한 적어도 하나의 정보의 값에 특정 상수값을 연산한 값을 기준으로 특정 태스크에 대한 소프트웨어 결함 또는 하드웨어 결함을 탐지할 수도 있다.Alternatively, the computing device 630 may detect a software defect or a hardware defect for a specific task based on a value obtained by calculating a specific constant value on the value of at least one information extracted from the performance load and execution log.

연산 장치(630)는 특정 태스크에 대하여 결함을 탐지한 결과를 딥러닝 모델에 입력하여 결함 탐지에 이용하는 상수값을 조절하는 정보(조절값 내지 조절 비율)를 출력할 수 있다. 연산 장치(630)는 조절된 상수값을 기준으로 특정 태스크에 대한 소프트웨어 결함 또는 하드웨어 결함을 탐지할 수도 있다.The computing device 630 may output information (adjustment value or adjustment ratio) for adjusting a constant value used for defect detection by inputting a result of detecting a defect for a specific task into the deep learning model. The arithmetic unit 630 may detect a software defect or a hardware defect for a specific task based on the adjusted constant value.

예컨대, 연산 장치(630)는 성능 로그로부터 직전 시점까지의 CPU 사이클 평균값과 CPU 사이클 카운터를 추출하고, 수학식 1과 같이 CPU 사이클 평균값 및 CPU 사이클 카운터을 기준으로 CPU 성능 유지 여부를 판단하고, CPU 성능이 유지된다면 CPU 외의 하드웨어 결함으로 판단할 수 있다(도 3 참조). 이때, 연산 장치(630)는 CPU 사이클 카운터가 특정 범주에 속하는지 여부를 기준으로 CPU 성능 유지 여부를 판단할 수 있다. 연산 장치(630)는 딥러닝 모델이 출력하는 조절값에 따라 수학식 1의 α를 조절하여 결함 탐지 여부를 판단할 수 있다.For example, the arithmetic unit 630 extracts the CPU cycle average value and the CPU cycle counter from the performance log to the immediately preceding time point, and determines whether to maintain CPU performance based on the CPU cycle average value and the CPU cycle counter as in Equation 1, and CPU performance If this is maintained, it can be determined as a hardware defect other than the CPU (see FIG. 3 ). In this case, the arithmetic unit 630 may determine whether to maintain CPU performance based on whether the CPU cycle counter belongs to a specific category. The computing device 630 may determine whether a defect is detected by adjusting α of Equation 1 according to the adjustment value output by the deep learning model.

연산 장치(630)는 소프트웨어 결함 또는 하드웨어 결함에 대한 결함 유형, 결함과 관련된 함수에 사용된 파라미터 및 함수가 실행될 때까지의 콜 스택을 디버깅 정보로 생성할 수 있다. The arithmetic unit 630 may generate a defect type for a software defect or a hardware defect, parameters used in a function related to the defect, and a call stack until the function is executed as debugging information.

연산 장치(630)는 데이터를 처리하고, 일정한 연산을 처리하는 프로세서, AP, 프로그램이 임베디드된 칩과 같은 장치일 수 있다.The computing device 630 may be a device such as a processor, an AP, or a chip embedded with a program that processes data and processes a predetermined operation.

또한, 상술한 바와 같은 HW 및/또는 SW 결함 탐지 방법 내지 결함 구분 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램(또는 어플리케이션)으로 구현될 수 있다. 상기 프로그램은 일시적 또는 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.In addition, the HW and/or SW defect detection method or defect classification method as described above may be implemented as a program (or application) including an executable algorithm that can be executed in a computer. The program may be provided by being stored in a temporary or non-transitory computer readable medium.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM (read-only memory), PROM (programmable read only memory), EPROM(Erasable PROM, EPROM) 또는 EEPROM(Electrically EPROM) 또는 플래시 메모리 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.The non-transitory readable medium refers to a medium that stores data semi-permanently, rather than a medium that stores data for a short moment, such as a register, cache, memory, and the like, and can be read by a device. Specifically, the various applications or programs described above are CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM (read-only memory), PROM (programmable read only memory), EPROM (Erasable PROM, EPROM) Alternatively, it may be provided while being stored in a non-transitory readable medium such as an EEPROM (Electrically EPROM) or flash memory.

일시적 판독 가능 매체는 스태틱 램(Static RAM,SRAM), 다이내믹 램(Dynamic RAM,DRAM), 싱크로너스 디램 (Synchronous DRAM,SDRAM), 2배속 SDRAM(Double Data Rate SDRAM,DDR SDRAM), 증강형 SDRAM(Enhanced SDRAM,ESDRAM), 동기화 DRAM(Synclink DRAM,SLDRAM) 및 직접 램버스 램(Direct Rambus RAM,DRRAM) 과 같은 다양한 RAM을 의미한다.Temporarily readable media include Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (Enhanced) SDRAM, ESDRAM), Synchronous DRAM (Synclink DRAM, SLDRAM) and Direct Rambus RAM (Direct Rambus RAM, DRRAM) refers to a variety of RAM.

본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.This embodiment and the drawings attached to this specification merely clearly show a part of the technical idea included in the above-described technology, and within the scope of the technical idea included in the specification and drawings of the above-described technology, those skilled in the art can easily It will be apparent that all inferred modified examples and specific embodiments are included in the scope of the above-described technology.

Claims (10)

분석장치가 결함 탐지 대상인 타깃 장치의 특정 태스크에 대한 성능 로그 및 실행 로그를 획득하는 단계; 및
상기 분석장치가 상기 성능 로그 및 상기 실행 로그 중 적어도 하나를 기준으로 상기 특정 태스크에 대한 소프트웨어 결함 또는 하드웨어 결함을 탐지하는 단계를 포함하되,
상기 분석장치는 상기 성능 로그 및 상기 실행 로그에서 추출한 적어도 하나의 정보를 제1 상수값과 비교하여 결함을 탐지하거나, 상기 정보의 값에 제2 상수값을 연산한 값을 기준으로 결함을 탐지하고,
상기 제1 상수값 또는 상기 제2 상수값은 장치의 성능 로그 및 실행 로그를 기준으로 예측되는 결함 탐지 결과와 실제 결함 결과를 이용하여 학습되는 딥러닝 모델에서 출력되는 값으로 조절되는 딥러닝을 이용한 하드웨어 및 소프트웨어 결함 탐지 방법.
acquiring, by the analysis device, a performance log and an execution log for a specific task of a target device that is a defect detection target; and
Detecting, by the analysis device, a software defect or a hardware defect for the specific task based on at least one of the performance log and the execution log,
The analysis device detects a defect by comparing at least one piece of information extracted from the performance log and the execution log with a first constant value, or detects a defect based on a value obtained by calculating a second constant value on the value of the information, ,
The first constant value or the second constant value is a value output from a deep learning model that is learned using a defect detection result predicted based on a performance log and an execution log of the device and an actual defect result using deep learning. How to detect hardware and software faults.
제1항에 있어서,
상기 분석장치는 상기 성능 로그 및 상기 실행 로그 중 적어도 하나를 기준으로 소프트웨어 결함 또는 하드웨어 결함을 1차 탐지하고,
상기 1차 탐지 결과 소프트웨어 결함 또는 하드웨어 결함으로 분류되지 않는 경우, 상기 분석장치는 상기 실행 로그로부터 추출한 실행 결과, 상기 실행 로그로부터 추출한 시스템 콜 파라미터 및 상기 성능 로그로부터 추출한 하드웨어 성능 카운터를 이용하여 상기 특정 태스크에 대하여 CPU 결함, CPU 외의 하드웨어 결함 또는 소프트웨어 결함 중 어느 하나로 결함을 구분하는 딥러닝을 이용한 하드웨어 및 소프트웨어 결함 탐지 방법.
According to claim 1,
The analysis device first detects a software defect or a hardware defect based on at least one of the performance log and the execution log,
When the first detection result is not classified as a software defect or a hardware defect, the analysis device uses the execution result extracted from the execution log, the system call parameter extracted from the execution log, and the hardware performance counter extracted from the performance log to determine the specific A hardware and software defect detection method using deep learning that classifies a task into any one of a CPU defect, a non-CPU hardware defect, or a software defect.
제1항에 있어서,
상기 분석장치는 상기 성능 로그로부터 직전 시점까지의 CPU 사이클 평균값과 CPU 사이클 카운터를 추출하고, 상기 CPU 사이클 평균값 및 상기 CPU 사이클 카운터을 기준으로 CPU 성능 유지 여부를 판단하고, CPU 성능이 유지된다면 CPU 외의 하드웨어 결함으로 판단하는 딥러닝을 이용한 하드웨어 및 소프트웨어 결함 탐지 방법.
According to claim 1,
The analysis device extracts the CPU cycle average value and CPU cycle counter from the performance log to the immediately preceding time point, determines whether CPU performance is maintained based on the CPU cycle average value and the CPU cycle counter, and if the CPU performance is maintained, hardware other than the CPU A hardware and software defect detection method using deep learning that judges defects as defects.
제3항에 있어서,
상기 분석장치는 상기 CPU 사이클 카운터가 특정 범주에 속하는지 여부를 기준으로 CPU 성능 유지 여부를 판단하되,
상기 특정 범주는 상기 CPU 사이클 평균값과 상기 제2 상수값을 기준으로 결정되고, 상기 제2 상수값은 상기 딥러닝 모델이 출력하는 조절값에 따라 조절되는 딥러닝을 이용한 하드웨어 및 소프트웨어 결함 탐지 방법.
4. The method of claim 3,
The analysis device determines whether to maintain CPU performance based on whether the CPU cycle counter belongs to a specific category,
The specific category is determined based on the CPU cycle average value and the second constant value, and the second constant value is a hardware and software defect detection method using deep learning that is adjusted according to an adjustment value output by the deep learning model.
제1항에 있어서,
상기 분석장치는 상기 소프트웨어 결함 또는 상기 하드웨어 결함에 대한 결함 유형, 결함과 관련된 함수에 사용된 파라미터 및 상기 함수가 실행될 때까지의 콜 스택을 디버깅 정보로 생성하는 단계를 더 포함하는 딥러닝을 이용한 하드웨어 및 소프트웨어 결함 탐지 방법.
According to claim 1,
Hardware using deep learning further comprising the step of generating, by the analysis apparatus, a defect type for the software defect or the hardware defect, a parameter used for a function related to the defect, and a call stack until the function is executed as debugging information and software flaw detection methods.
결함 탐지 대상인 타깃 장치의 특정 태스크에 대한 성능 로그 및 실행 로그를 입력받는 입력장치;
성능 로그 및 실행 로그를 기준으로 예측되는 결함 탐지 결과와 실제 결함 결과를 이용하여 학습된 딥러닝 모델을 저장하는 저장장치; 및
상기 성능 로그 및 상기 실행 로그에서 추출한 적어도 하나의 정보를 제1 상수값과 비교하여 결함을 탐지하거나, 상기 정보의 값에 제2 상수값을 연산한 값을 기준으로 상기 특정 태스크에 대한 소프트웨어 결함 또는 하드웨어 결함을 탐지하는 연산장치를 포함하되,
상기 연산장치는 상기 특정 태스크에 대하여 결함을 탐지한 결과를 상기 딥러닝 모델에 입력하고, 상기 딥러닝 모델이 출력하는 값을 기준으로 상기 제1 상수값 또는 상기 제2 상수값을 조절하는 하드웨어 및 소프트웨어 결함을 탐지하는 분석장치.
an input device for receiving a performance log and an execution log for a specific task of a target device that is a defect detection target;
a storage device for storing a deep learning model trained using a defect detection result predicted based on a performance log and an execution log and an actual defect result; and
A defect is detected by comparing at least one piece of information extracted from the performance log and the execution log with a first constant value, or a software defect for the specific task based on a value obtained by calculating a second constant value on the value of the information; a computing unit that detects hardware faults;
The computing device inputs a result of detecting a defect for the specific task into the deep learning model, hardware for adjusting the first constant value or the second constant value based on a value output by the deep learning model; An analysis device that detects software defects.
제6항에 있어서,
상기 연산장치는 상기 성능 로그 및 상기 실행 로그 중 적어도 하나를 기준으로 소프트웨어 결함 또는 하드웨어 결함을 1차 탐지하고,
상기 1차 탐지 결과 소프트웨어 결함 또는 하드웨어 결함으로 분류되지 않는 경우, 상기 연산장치는 상기 실행 로그로부터 추출한 실행 결과, 상기 실행 로그로부터 추출한 시스템 콜 파라미터 및 상기 성능 로그로부터 추출한 하드웨어 성능 카운터를 이용하여 상기 특정 태스크에 대하여 CPU 결함, CPU 외의 하드웨어 결함 또는 소프트웨어 결함 중 어느 하나로 결함을 구분하는 하드웨어 및 소프트웨어 결함을 탐지하는 분석장치.
7. The method of claim 6,
The computing device first detects a software defect or a hardware defect based on at least one of the performance log and the execution log,
When the first detection result is not classified as a software defect or a hardware defect, the computing unit uses the execution result extracted from the execution log, the system call parameter extracted from the execution log, and the hardware performance counter extracted from the performance log to determine the specific An analysis device that detects hardware and software faults that classify faults as either CPU faults, non-CPU hardware faults, or software faults for a task.
제6항에 있어서,
상기 연산장치는 상기 성능 로그로부터 직전 시점까지의 CPU 사이클 평균값과 CPU 사이클 카운터를 추출하고, 상기 CPU 사이클 평균값 및 상기 CPU 사이클 카운터을 기준으로 CPU 성능 유지 여부를 판단하고, CPU 성능이 유지된다면 CPU 외의 하드웨어 결함으로 판단하는 하드웨어 및 소프트웨어 결함을 탐지하는 분석장치.
7. The method of claim 6,
The arithmetic unit extracts the CPU cycle average value and CPU cycle counter from the performance log to the immediately preceding time point, determines whether CPU performance is maintained based on the CPU cycle average value and the CPU cycle counter, and if the CPU performance is maintained, hardware other than the CPU An analysis device that detects hardware and software defects that are judged to be defects.
제8항에 있어서,
상기 연산장치는 상기 CPU 사이클 카운터가 특정 범주에 속하는지 여부를 기준으로 CPU 성능 유지 여부를 판단하되,
상기 특정 범주는 상기 CPU 사이클 평균값과 상기 제2 상수값을 기준으로 결정되고, 상기 제2 상수값은 상기 딥러닝 모델이 출력하는 조절값에 따라 조절되는 하드웨어 및 소프트웨어 결함을 탐지하는 분석장치.
9. The method of claim 8,
The arithmetic unit determines whether to maintain CPU performance based on whether the CPU cycle counter belongs to a specific category,
The specific category is determined based on the CPU cycle average value and the second constant value, and the second constant value is an analysis device for detecting hardware and software defects that are adjusted according to the adjustment value output by the deep learning model.
제6항에 있어서,
상기 연산장치는 상기 소프트웨어 결함 또는 상기 하드웨어 결함에 대한 결함 유형, 결함과 관련된 함수에 사용된 파라미터 및 상기 함수가 실행될 때까지의 콜 스택을 디버깅 정보로 더 생성하는 하드웨어 및 소프트웨어 결함을 탐지하는 분석장치.
7. The method of claim 6,
The arithmetic unit is an analysis device for detecting hardware and software defects that further generate the software defect or a defect type for the hardware defect, parameters used in a function related to the defect, and a call stack until the function is executed as debugging information .
KR1020210060207A 2021-05-10 2021-05-10 Hardware/software defect detection method using deep learning and analysis apparatus KR102420514B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210060207A KR102420514B1 (en) 2021-05-10 2021-05-10 Hardware/software defect detection method using deep learning and analysis apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210060207A KR102420514B1 (en) 2021-05-10 2021-05-10 Hardware/software defect detection method using deep learning and analysis apparatus

Publications (1)

Publication Number Publication Date
KR102420514B1 true KR102420514B1 (en) 2022-07-13

Family

ID=82401326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210060207A KR102420514B1 (en) 2021-05-10 2021-05-10 Hardware/software defect detection method using deep learning and analysis apparatus

Country Status (1)

Country Link
KR (1) KR102420514B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102598691B1 (en) * 2022-12-15 2023-11-06 이화여자대학교 산학협력단 Detection method for variable vulnerability in software using machine learning

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100088399A (en) * 2009-01-30 2010-08-09 부산대학교 산학협력단 Apparatus and method for software faults prediction using metrics
KR20150127334A (en) * 2014-05-07 2015-11-17 현대자동차주식회사 Run-time fault detecting method using execution hooking and information tag
KR20160061237A (en) 2014-11-21 2016-05-31 삼성전자주식회사 Method of analyzing a fault of an electronic system
KR102088509B1 (en) * 2019-03-27 2020-03-12 국방과학연구소 Method and apparatus for detection of anomaly on computer system
JP2020135546A (en) * 2019-02-21 2020-08-31 京セラドキュメントソリューションズ株式会社 Information processing apparatus and trouble estimation method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100088399A (en) * 2009-01-30 2010-08-09 부산대학교 산학협력단 Apparatus and method for software faults prediction using metrics
KR20150127334A (en) * 2014-05-07 2015-11-17 현대자동차주식회사 Run-time fault detecting method using execution hooking and information tag
KR20160061237A (en) 2014-11-21 2016-05-31 삼성전자주식회사 Method of analyzing a fault of an electronic system
JP2020135546A (en) * 2019-02-21 2020-08-31 京セラドキュメントソリューションズ株式会社 Information processing apparatus and trouble estimation method
KR102088509B1 (en) * 2019-03-27 2020-03-12 국방과학연구소 Method and apparatus for detection of anomaly on computer system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102598691B1 (en) * 2022-12-15 2023-11-06 이화여자대학교 산학협력단 Detection method for variable vulnerability in software using machine learning

Similar Documents

Publication Publication Date Title
Lu et al. Making disk failure predictions {SMARTer}!
Lin et al. Predicting node failure in cloud service systems
US10805151B2 (en) Method, apparatus, and storage medium for diagnosing failure based on a service monitoring indicator of a server by clustering servers with similar degrees of abnormal fluctuation
US10871753B2 (en) Feedback loop driven end-to-end state control of complex data-analytic systems
US20210004320A1 (en) Poc platform which compares startup s/w products including evaluating their machine learning models
US11762752B2 (en) Facilitating detection of anomalies in data center telemetry
WO2022166481A1 (en) Fault prediction method for storage drive, apparatus, and device
US20240103950A1 (en) Method, computing device and computer program for detecting abnormal behavior of process equipment
US11836617B2 (en) Techniques for analytical instrument performance diagnostics
Laaber et al. Predicting unstable software benchmarks using static source code features
Wu et al. Invalid bug reports complicate the software aging situation
KR102420514B1 (en) Hardware/software defect detection method using deep learning and analysis apparatus
Byun et al. Black-box testing of deep neural networks
Su et al. Using fault injection for the training of functions to detect soft errors of dnns in automotive vehicles
CN117251114A (en) Model training method, disk life prediction method, related device and equipment
CN111444093A (en) Method and device for determining quality of project development process and computer equipment
Al-Sabbagh et al. Selective regression testing based on big data: comparing feature extraction techniques
Malhotra et al. Assessment of defect prediction models using machine learning techniques for object-oriented systems
Fried et al. Predicting parallelization of sequential programs using supervised learning
US11526162B2 (en) Method for detecting abnormal event and apparatus implementing the same method
US20220269991A1 (en) Evaluating reliability of artificial intelligence
Saarinen Adaptive real-time anomaly detection for multi-dimensional streaming data
US20220164659A1 (en) Deep Learning Error Minimizing System for Real-Time Generation of Big Data Analysis Models for Mobile App Users and Controlling Method for the Same
US20240202099A1 (en) Analysis device and method for detecting variable vulnerability in software using machine learning model
Toikka Online Detection of Change Points in Software Regression Test Case Execution Times

Legal Events

Date Code Title Description
GRNT Written decision to grant