CN108736881B - 电路结构最优化装置以及机器学习装置 - Google Patents

电路结构最优化装置以及机器学习装置 Download PDF

Info

Publication number
CN108736881B
CN108736881B CN201810326636.3A CN201810326636A CN108736881B CN 108736881 B CN108736881 B CN 108736881B CN 201810326636 A CN201810326636 A CN 201810326636A CN 108736881 B CN108736881 B CN 108736881B
Authority
CN
China
Prior art keywords
circuit configuration
fpga
fpga device
state
learning
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201810326636.3A
Other languages
English (en)
Other versions
CN108736881A (zh
Inventor
和泉均
栗原健一郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Publication of CN108736881A publication Critical patent/CN108736881A/zh
Application granted granted Critical
Publication of CN108736881B publication Critical patent/CN108736881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17764Structural details of configuration resources for reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/08Thermal analysis or thermal optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Logic Circuits (AREA)
  • Architecture (AREA)
  • Detection And Correction Of Errors (AREA)
  • Numerical Control (AREA)

Abstract

本发明提供一种电路结构最优化装置以及机器学习装置。该电路结构最优化装置具备学习FPGA器件的电路结构的机器学习装置,该机器学习装置将FPGA器件的电路结构数据以及表示FPGA器件的错误产生状态的FPGA错误产生状态数据作为表示环境的当前状态的状态变量进行观测,另外,取得表示FPGA器件工作状态的适当与否判定结果的判定数据。于是,使用这些状态变量和判定数据,将FPGA器件的电路结构与FPGA错误产生状态数据关联起来进行学习。

Description

电路结构最优化装置以及机器学习装置
技术领域
本发明涉及电路结构最优化装置以及机器学习装置。
背景技术
有一种相对于制造时固定所有电路的普通集成电路,在出货后由用户设定所希望的电路结构而发挥功能的器件即可编程逻辑器件(PLD:Programmable Logic Device)。作为这种器件的一种的FPGA(Field Programmable Gate Array现场可编程门阵列),通过组合能够编程的逻辑组件即逻辑块,从单纯的逻辑电路到包括存储器要素的复杂电路,能够根据需要,在使用FPGA的现场构成并使用。在FPGA中,能够在封装上的任意位置构建这样的电路。
如果中子束进入FPGA器件,则该中子束与封装内的硼等碰撞并产生包括α射线的大量离子,该α射线成为原因,硅内部的电位反转,产生软错误。另外,作为与FPGA器件的软错误相关的现有技术,例如在日本特开2006-344223号公报和日本特开2016-167669号公报中公开检测软错误的产生的技术。
FPGA器件中软错误的发生概率根据构成FPGA器件的封装材料中包括的硼等的密度(硼浓度的高低)而变化。图9表示FPGA器件的概略结构图。
如图9所示,当在FPGA器件内有硼浓度高的区域时,在该区域软错误发生的概率变高,因此,通过在该区域不配置电路或者配置具有错误纠正功能和冗余性的耐噪音的电路,来应对软错误。
如上所述,在每个FPGA器件中,软错误产生频度高的FPGA的逻辑电路区域不同,但是为了高效地应对软错误,需要掌握在FPGA器件上的哪个位置容易产生软错误。
发明内容
因此,本发明的目的为提供能够降低FPGA器件的误动作的产生频度的电路结构最优化装置以及机器学习装置。
在本发明的电路结构最优化装置中,将FPGA器件中的软错误的产生次数与FPGA器件上的位置关联起来进行存储,收集所存储的软错误的产生次数、包括FPGA器件的处理速度、发热量、消耗功率等的FPGA器件的错误产生状态相关的数据,进行将这些作为状态数据的机器学习,从而能够导出得到FPGA器件的稳定工作的最佳的电路结构。
本发明一个方式的电路结构最优化装置进行FPGA器件的电路结构和配置的最优化,具备学习上述FPGA器件的电路结构的机器学习装置。而且,上述机器学习装置具备:观测部,其将表示上述FPGA器件的电路结构的FPGA器件的电路结构数据以及表示上述FPGA器件的错误产生状态的FPGA错误产生状态数据作为表示环境的当前状态的状态变量进行观测;判定数据取得部,其取得表示上述FPGA器件工作状态的适当与否判定结果的判定数据;以及学习部,其使用上述状态变量和上述判定数据,将上述FPGA器件的电路结构与上述FPGA错误产生状态数据关联起来进行学习。
上述状态观测部进一步将包括上述FPGA器件的发热量、消耗功率以及工作速度中的至少任意一个的FPGA器件工作状态数据作为上述状态变量进行观测,上述学习部能够将上述FPGA器件的电路结构与上述FPGA错误产生状态数据和上述FPGA器件工作状态数据的双方关联起来进行学习。
上述学习部能够具备:回报计算部,其求出与上述适当与否判定结果关联的回报;以及价值函数更新部,其使用上述回报更新表示针对上述FPGA器件的错误产生状态的上述FPGA器件的电路结构的价值的函数。
上述学习部能够通过多层构造运算上述状态变量和上述判定数据。
上述电路结构最优化装置能够进一步具备:决策部,其根据上述学习部的学习结果,输出基于上述FPGA器件的电路结构的指令值。
上述学习部能够使用关于多个工业机械分别得到的上述状态变量以及上述判定数据来学习该多个工业机械各自的上述FPGA器件的电路结构。
上述机器学习装置能够存在于云服务器中。
本发明的其他方式的机器学习装置学习FPGA器件的电路结构,具备:观测部,其将表示上述FPGA器件的电路结构的FPGA器件的电路结构数据以及表示上述FPGA器件的错误产生状态的FPGA错误产生状态数据作为表示环境的当前状态的状态变量进行观测;判定数据取得部,其取得表示上述FPGA器件工作状态的适当与否判定结果的判定数据;以及学习部,其使用上述状态变量和上述判定数据,将上述FPGA器件的电路结构与上述FPGA错误产生状态数据关联起来进行学习。
根据本发明,通过根据学习结果决定FPGA器件的电路结构,能够降低FPGA器件进行误动作的频度,并能够提高装载了FPGA器件的装置的运转率。
附图说明
图1是本发明第一实施方式的电路结构最优化装置的概略功能框图。
图2是例示电路结构数据S1的图。
图3是表示电路结构最优化装置的一个方式的概略功能框图。
图4是表示机器学习方法的一个方式的概略流程图。
图5A是说明神经元的图。
图5B是说明神经网络的图。
图6是本发明第二实施方式的电路结构最优化装置的概略的功能框图。
图7是表示装入电路结构最优化装置后的系统的一个方式的概略功能框图。
图8是表示装入电路结构最优化装置后的系统的其他方式的概略功能框图。
图9是FPGA器件的概略结构图。
具体实施方式
图1是第一实施方式的电路结构最优化装置10的概略功能框图。
电路结构最优化装置10例如能够作为用于再构成(重新配置)被装载到机械(未图示)上的FPGA器件的系统(未图示)的一部分而进行安装。电路结构最优化装置10具备:机器学习装置20,其包括用于通过所谓机器学习来自主学习配置在FPGA器件内的电路的电路结构最优值的软件(学习算法等)以及硬件(计算机的CPU等)。电路结构最优化装置10所具备的机器学习装置20所学习的电路结构最优值相当于表示FPGA器件的错误产生状态的信息与FPGA器件的电路结构之间的相关性的模型结构。
如图1的功能块所示,电路结构最优化装置10所具备的机器学习装置20具备:状态观测部22,其观测表示环境的当前状态的状态变量S,该状态变量S包括表示针对FPGA器件的错误产生的状态而设定的FPGA器件的电路结构的电路结构数据S1、表示FPGA器件的错误产生的状态的FPGA错误产生状态数据S2;判定数据取得部24,其取得表示在所设定的FPGA器件的电路结构的情况下的FPGA器件的工作状态的适当与否判定结果的判定数据D;以及学习部26,其使用状态变量S和判定数据D,将FPGA错误产生状态数据S2与电路结构数据S1关联起来进行学习。
状态观测部22可以构成为例如计算机的CPU的一个功能,另外也可以构成为例如使计算机的CPU发挥功能的软件。由状态观测部22观测的状态变量S中的电路结构数据S1能够使用例如通过熟练的电路设计人员申报并赋予电路结构最优化装置10的FPGA器件的电路结构的申报数据,或者使用从再构成FPGA器件的系统取得的FPGA器件的电路结构的数据等。
电路结构数据S1作为一例,能够使用配置在FPGA器件的各位置上的逻辑电路以及各个逻辑电路的种类。这种情况下,关于配置在FPGA器件的各位置上的逻辑电路,例如如图2所示,能够将以m×n的矩阵状分割FPGA器件上的区域而得的部分区域表现为矩阵,并通过应用逻辑电路的识别符来表现作为各个矩阵的要素配置了逻辑电路的哪一个。另外,关于逻辑电路的种类,通过识别符表现通常的逻辑电路、缩小面积后的逻辑电路(以缩小面积代替整体小功能化,由此使软错误率下降的逻辑电路)、多重化逻辑电路(通过将逻辑电路多重化而使软错误率下降的逻辑电路、逻辑电路的面积增加)、带错误纠正电路的逻辑电路(通过对逻辑电路附加ECC等错误纠正电路而使软错误率下降的逻辑电路;工作速度下降,发热量以及消耗功率增加)等的逻辑电路的构成方法的种类即可。
另外,状态变量S中的FPGA错误产生状态数据S2例如能够使用由FPGA器件的错误检测单元(未图示)检测出的值。FPGA错误产生状态数据S2作为一例,能够使用FPGA器件各个位置的软错误的产生频度。这种情况下,按照例如以m×n的矩阵状分割FPGA器件上的区域而得的每个部分区域,将软错误的产生履历存储在电路结构最优化装置10的存储器(未图示)中,计算根据该履历信息算出的FPGA器件的每个部分区域的软错误的产生频度,并进行使用即可。
FPGA错误产生状态数据S2如果能够由错误检测单元确定在FPGA器件上产生了软错误的位置(部分区域),则更新该部分区域的错误产生频度即可,另一方面,如果由错误检测单元能够确定在FPGA器件上的哪个逻辑电路中产生了软错误,则更新配置产生了该软错误的逻辑电路的所有部分区域中的错误产生频度即可。用于计算软错误的产生频度的履历信息,在每次进行FPGA器件上的逻辑电路的再构成时反馈到存储器上的保存区域(作为1个周期前的软错误的履历信息),并重新记录履历信息。
判定数据取得部24可以构成为例如计算机的CPU的一个功能,另外也可以构成为例如使计算机的CPU发挥功能的软件。判定数据取得部24所取得的判定数据D能够使用在再构成FPGA器件上的电路之后,例如根据上述FPGA器件的每一个部分区域的重新进行记录的履历信息(即FPGA器件的再构成后所存储的履历信息)而计算出的错误产生频度。另外,也能够根据需要,使用通过设置在装载有FPGA器件的装置内的热传感器等实际测量到的FPGA器件的发热量、通过消耗功率仪等实际测量到的FPGA器件的消耗功率量、通过计时器等实际测量到的FPGA器件的工作时间等。判定数据D是表示使状态变量S下的FPGA器件工作时的结果的指标。
这样,在电路结构最优化装置10所具备的机器学习装置20推进学习期间,在环境中重复实施FPGA错误产生状态数据S2的取得、FPGA器件上的逻辑电路的再构成、通过传感器等进行的判定数据D的取得。
学习部26可以构成为例如计算机的CPU的一个功能,另外也可以构成为例如使计算机的CPU发挥功能的软件。学习部26按照被总称为机器学习的任意学习算法,学习FPGA器件的电路结构。学习部26能够针对FPGA器件的电路结构反复执行基于包括上述状态变量S和判定数据D的数据集合的学习。在针对FPGA器件的再构成的学习周期的反复中,状态变量S中的FPGA错误产生状态数据S2作为根据上述被反馈的1个周期前的软错误的履历信息而计算出的软错误的产生频度。产生频度电路结构数据S1作为通过直到上次为止的学习周期而得到的FPGA器件的电路结构。判定数据D作为针对在FPGA器件的电路结构情况下的FPGA器件的工作状态的适当与否判定结果。
通过重复这样的学习周期,学习部26能够自动识别暗示FPGA器件的错误产生状态(FPGA错误产生状态数据S2)和FPGA器件的电路结构之间的相关性的特征。在开始学习算法时,FPGA错误产生状态数据S2与FPGA器件的电路结构之间的相关性实质上是未知的,但是学习部26随着学习的推进,逐渐识别表示上述相关性的特征并解释该相关性。
于是,如果FPGA错误产生状态数据S2与FPGA器件的电路结构之间的相关性被解释到某种程度能够信赖的水平,则为了进行针对当前状态(即FPGA器件的错误产生状态)应该设为哪种FPGA器件的电路结构的行动选择(即决策),能够使用学习部26反复输出的学习结果。即学习部26随着学习算法的推进,能够使FPGA器件的错误产生状态与针对该错误产生状态应该设为哪种FPGA器件电路结构的行动之间的相关性慢慢地接近最佳解。
如上所述,在电路结构最优化装置10所具备的机器学习装置20中,学习部26使用状态观测部22观测到的状态变量S和判定数据取得部24取得的判定数据D,按照机器学习算法来学习FPGA器件的电路结构。状态变量S由电路结构数据S1以及FPGA错误产生状态数据S2等难以受到干扰影响的数据构成。另外,通过取得由设置在装载有FPGA器件的装置内的热传感器等实际测量到的FPGA器件的发热量、由消耗功率计等实际测量到的FPGA器件的消耗功率量、由计时器等实际测量到的FPGA器件的工作时间、上述FPGA器件的每一个部分区域的错误产生频度等而唯一地求出判定数据D。
因此,根据电路结构最优化装置10所具备的机器学习装置20,使用学习部26的学习结果,由此能够不依靠运算或估算而自动且准确地求出与FPGA器件的错误产生状态对应的FPGA器件的电路结构。
如果能够不依靠运算或估算而自动地求出FPGA器件的电路结构,则只要掌握FPGA器件的错误产生状态(FPGA错误产生状态数据S2)就能够迅速地决定适当的FPGA器件的电路结构。因此,能够高效地进行FPGA器件的电路的再构成。
作为电路结构最优化装置10所具备的机器学习装置20的一个变形例,状态观测部22能够进一步将包括通过设置在装载有FPGA器件的装置内的热传感器等实际测量到的FPGA器件的发热量、通过消耗功率计等实际测量到的FPGA器件的消耗功率量、通过计时器等实际测量到的FPGA器件的工作时间等的FPGA工作状态数据S3作为状态变量S进行观测。这种情况下,能够将该FPGA器件的电路结构与FPGA错误产生状态数据S2和FPGA工作状态数据S3关联起来进行学习。
根据上述变形例,机器学习装置20在再构成FPGA器件的电路时,能够学习FPGA器件的电路结构,该FPGA器件的电路结构不仅考虑了该FPGA器件的每一个部分区域的错误产生频度,也考虑了FPGA器件的发热量和消耗功率量、工作速度等。通过这样,在某个错误产生状态中,在针对该错误产生状态,考虑了多个降低错误的产生频度的FPGA器件的电路结构时,能够优先选择发热量更低、消耗功率更低或工作速度更快的FPGA器件的电路结构。
作为电路结构最优化装置10所具备的机器学习装置20的其它变形例,学习部26能够使用关于装载了构成相同逻辑电路的FPGA器件的多个装置分别得到的状态变量S以及判定数据D,学习这些装置中的FPGA器件的电路结构。根据该结构,能够增加包括在一定时间得到的状态变量S和判定数据D的数据集合的量,所以能够将更多样的数据集合作为输入,提高FPGA器件的电路结构的学习速度和可靠性。
在具有上述结构的机器学习装置20中,学习部26所执行的学习算法没有被特别限定,能够采用公知的学习算法作为机器学习。图3是图1所示的电路结构最优化装置10的一个方式,表示具备作为学习算法的一例而执行强化学习的学习部26的结构。
强化学习是以下方法:观测学习对象所存在的环境的当前状态(即输入),并且在当前状态下执行预定的行动(即输出),试错地反复进行对该行动赋予什么样的回报的周期,并将使回报的统计最大化的策略(本申请的机器学习装置的情况下为FPGA器件的电路结构)作为最佳解进行学习。
在图3所示的电路结构最优化装置10所具备的机器学习装置20中,学习部26具备:回报计算部28,其根据状态变量S求出FPGA器件的工作状态的适当与否判定结果(相当于在接下来的学习周期中使用的判定数据D)相关联的回报R;以及价值函数更新部30,其使用回报R来更新表示FPGA器件的电路结构的价值的函数Q。学习部26通过由价值函数更新部30重复函数Q的更新来学习针对FPGA器件的错误产生状态的FPGA器件的电路结构。
说明由学习部26执行的强化学习的算法的一例。该例子的算法作为Q学习(Q-learning)被知晓,是将行动主体的状态s与在该状态s下行动主体能够选择的行动a作为独立变量,学习表示在状态s下选择了行动a时的行动的价值的函数Q(s,a)的方法。在状态s下选择价值函数Q成为最高的行动a的情况为最佳解。在状态s和行动a之间的相关性为未知的状态下开始Q学习,重复在任意的状态s下选择各种行动a的试错,由此反复更新价值函数Q,并接近最佳解。这里,作为在状态s下选择了行动a的结果,构成为环境(即状态s)发生了变化时,得到与该变化对应的回报(即行动a的权重)r,以选择得到更高回报r的行动a的方式引导学习,由此能够使价值函数Q在比较短的时间内接近最佳解。
一般能够如下述的式(1)那样表示价值函数Q的更新式。在式(1)中,st以及at分别是时刻t的状态以及行动,状态通过行动at变化为st+1。rt+1是通过状态从st变化为st+1而得到的回报。maxQ的项表示在时刻t+1进行了成为最大的价值函数Q(在时刻t认为)的行动a时的Q。α以及γ分别是学习系数以及折扣率,通过0<α≤1、0<γ≤1任意设定。
Figure BDA0001626788170000081
当学习部26执行Q学习时,状态观测部22观测到的状态变量S以及判定数据取得部24取得的判定数据D相当于更新式(上述式(1))的状态s,应该怎样变更针对当前状态(即FPGA器件的错误产生状态)的FPGA器件的电路结构的行动相当于更新式的行动a,回报计算部28求出的回报R相当于更新式的回报r。因此,价值函数更新部30通过使用了回报R的Q学习重复更新表示针对当前状态的FPGA器件的电路结构的价值的函数Q。
回报计算部28求出的回报R,例如在决定了FPGA器件的电路结构后根据该FPGA器件的电路结构使FPGA器件工作时,
(i)当该FPGA器件的工作状态被判定为“适当”时(例如FPGA器件的各部分区域的软错误产生频度在能够容许的范围内时,FPGA器件的发热量在能够容许的范围内时,FPGA器件的消耗功率量在能够容许范围内时,FPGA器件的工作速度在能够容许范围内时等),设为正(+)的回报R,
(ii)当该FPGA器件的工作状态被判定为“不适当”时(例如FPGA器件的各部分区域的软错误产生频度在能够容许的范围外时,FPGA器件的发热量在能够容许的范围外时,FPGA器件的消耗功率量在能够容许范围外时,FPGA器件的工作速度在能够容许范围外时等),设为负(-)的回报R。
回报R的绝对值在正的回报和负的回报下可以相同也可以不同。另外,作为判定的条件,可以组合判定数据D中包括的多个值进行判定。进一步,在求出关于FPGA器件的各部分区域中的软错误产生频度的回报时,回报计算部28可以使用各部分区域中的软错误产生频度的最大值和上位的预定部分区域的软错误产生频度的平均值等统计值来进行适当与否的判定。
另外,不仅能够将FPGA器件的工作状态的适当与否判定结果设定为“适当”以及“不适当”两种,也能够设定为多个级别。作为例子,能够构成为当FPGA器件的发热量的容许范围的最大值为Tmax时,当FPGA器件的发热量T为0≤T<Tmax/5时赋予回报R=5,当Tmax/5≤T<Tmax/2时赋予回报R=2,当Tmax/2≤T≤Tmax时赋予回报R=1。进一步,也可以设为在学习的初始阶段将Tmax设定得比较大,随着学习的推进缩小Tmax的结构。
另外,在根据学习部26学习到的结果来决定FPGA器件的电路结构时,有时即使要根据该决定好的电路结构再构成FPGA器件,也会成为错误(构成逻辑电路的面积不足,不能够进行布线等理由造成的)。这种情况下,再次重新决定针对相同状态的FPGA器件的电路结构,但是将之前回报计算部28求出的回报R作为大的负(-)回报R推进学习。通过这样,在下个周期以后,在相同的状态中不再选择该电路结构。
价值函数更新部30能够具有与通过函数Q表示的行动价值(例如数值)关联地整理了状态变量S、判定数据D和回报R而得到的行动价值表。此时,价值函数更新部30更新函数Q的行为与价值函数更新部30更新行动价值表的行为意思相同。在Q学习开始时,环境的当前状态与FPGA器件的电路结构之间的相关性是未知的,所以在行动价值表中,通过与随机决定的行动价值的值(函数Q)关联的方式准备各种状态变量S、判定数据D和回报R。另外,回报计算部28如果知道判定数据D则能够立刻计算与此对应的回报R,该计算出的值R被写入行动价值表中。
如果使用与FPGA器件的工作状态的适当与否结果对应的回报R来推进Q学习,则学习被引导到选择得到更高回报R的行动的方向。而且,根据作为在当前状态下执行所选择的行动的结果而发生变化的环境的状态(即状态变量S以及判定数据D),改写关于在当前状态下进行的行动的行动价值的值(函数Q)并更新行动价值表。通过重复该更新,越是适当的行动,显示在行动价值表中的行动价值的值(函数Q)被改写为越大的值。这样,未知的环境的当前状态(FPGA器件的错误产生状态)和针对其的行动(FPGA器件的电路结构的决定)之间的相关性逐渐变得明确。即,通过行动价值表的更新,FPGA器件的错误产生状态与FPGA器件的电路结构之间的关系逐渐接近最佳解。
参照图4,进一步说明学习部26执行的上述Q学习的流程(即机器学习方法的一个方式)。
首先,在步骤SA01中,价值函数更新部30一边参照在该时间点的行动价值表,一边随机地选择FPGA器件的电路结构,作为在由状态观测部22观测到的状态变量S所表示的当前状态下进行的行动。接着,价值函数更新部30在步骤SA02取入状态观测部22观测的当前状态的状态变量S,在步骤SA03取入判定数据取得部24取得的当前状态的判定数据D。接着,价值函数更新部30在步骤SA04根据判定数据D判断FPGA器件的电路结构是否适当,如果适当,则在步骤SA05将回报计算部28求出的正的回报R应用于函数Q的更新式,接着在步骤SA06,使用当前状态下的状态变量S以及判定数据D和回报R和行动价值的值(更新后的函数Q)来更新行动价值表。另一方面,在步骤SA04判断为FPGA器件的电路结构不适当时,在步骤SA07,将回报计算部28求出的负的回报R应用于函数Q的更新式,接着在步骤SA06,使用当前状态下的状态变量S以及判定数据D和回报R和行动价值的值(更新后的函数Q)来更新行动价值表。
学习部26通过重复步骤SA01~SA07来反复更新行动价值表,并推进FPGA器件的电路结构的学习。另外,关于判定数据D中包括的各数据,执行从步骤SA04到步骤SA07为止的求出回报R的处理以及价值函数的更新处理。
在推进上述强化学习时,例如能够使用神经网络代替Q学习。图5A示意地表示神经元的模型。图5B示意地表示组合图5A所示的神经元而构成的三层神经网络的模型。神经网络例如能够通过模拟了神经元的模型的运算装置和存储装置等构成。
图5A所示的神经元输出针对多个输入x(这里作为一例为输入x1~输入x3)的结果y。对各个输入x1~x3乘以与该输入x对应的权重w(w1~w3)。这样,神经元输出通过以下的式(2)表现的结果y。另外,在式(2)中,输入x、结果y以及权重w都是向量。另外,θ是偏置,fk是激活函数。
Figure BDA0001626788170000111
图5B所示的三层神经网络从左侧输入多个输入x(这里作为一例为输入x1~输入x3),从右侧输出结果y(这里作为一例为结果y1~y3)。在图示的例子中,对输入x1、x2、x3分别乘以对应的权重(用w1统称表示),每个输入x1、x2、x3都输入到3个神经元N11、N12、N13中。
图5B中,用z1统称表示神经元N11~N13各自的输出。z1能够视为提取输入向量的特征量而得的特征向量。在图示的例子中,对特征向量z1分别乘以对应的权重(用W2统称表示),每个特征向量z1都被输入到2个神经元N21、N22中。特征向量z1表示权重W1与权重W2之间的特征。
图5B中,用z2统称表示神经元N21~N22各自的输出。z2能够视为提取特征向量z1的特征量而得的特征向量。在图示的例子中,对特征向量z2分别乘以对应的权重(用W3统称表示),每个特征向量z2都被输入到3个神经元N31、N32、N33中。特征向量z2表示权重W2与权重W3之间的特征。最后,神经元N31~N33分别输出结果y1~y3。
另外,也能够使用所谓的深度学习的方法,该方法使用了组成三层以上的层的神经网络。
在电路结构最优化装置10所具备的机器学习装置20中,将状态变量S和判定数据D作为输入x,由学习部26进行按照上述神经网络的多层构造的运算,由此能够输出FPGA器件的电路结构(结果y)。另外,神经网络的工作模式中有学习模式和价值预测模式,例如能够在学习模式中使用学习数据集学习权重W,使用学习到的权重W在价值预测模式进行行动的价值判断。另外,在价值预测模式中也能够进行检测、分类、推理等。
上述电路结构最优化装置10的结构能够记述为由计算机的CPU执行的机器学习方法(或软件)。该机器学习方法是学习FPGA器件的电路结构的机器学习方法,具有:
·计算机的CPU将表示FPGA器件的电路结构的电路结构数据S1以及表示FPGA器件的错误产生状态的FPGA错误产生状态数据S2作为表示FPGA器件工作的环境的当前状态的状态变量S进行观测的步骤;
·取得表示FPGA器件的工作状态的适当与否判定结果的判定数据D的步骤;以及
·使用状态变量S和判定数据D,将FPGA器件的电路结构与FPGA错误产生状态数据S2关联起来进行学习的步骤。
图6表示第二实施方式的电路结构最优化装置40。
该电路结构最优化装置40具备机器学习装置50和状态数据取得部42。状态数据取得部42取得状态观测部22观测的状态变量S的电路结构数据S1以及FPGA错误产生状态数据S2作为状态数据S0。状态数据取得部42所取得的状态数据S0也能够包括FPGA工作状态数据S3。状态数据取得部42能够根据装置所具备的各种传感器、上述的错误检测装置、作业人员进行的适当的数据输入等来取得状态数据S0。
电路结构最优化装置40所具有的机器学习装置50,除了包括通过机器学习自主学习FPGA器件的电路结构的软件(学习算法等)以及硬件(计算机的CPU等),还包括将学习到的FPGA器件的电路结构作为针对再构成FPGA器件的电路结构的系统(未图示)的指令而输出的软件(运算算法等)以及硬件(计算机的CPU等)。电路结构最优化装置40所包括的机器学习装置50也能够具有由一个共通的CPU执行学习算法、运算算法等所有软件的结构。
决策部52可以构成为例如计算机的CPU的一个功能,或者可以构成为例如使计算机的CPU发挥功能的软件。决策部52根据学习部26学习到的针对FPGA器件的错误产生状态的FPGA器件的电路结构,生成FPGA器件的电路的再构成所涉及的指令值C并输出。当决策部52将FPGA器件的电路再构成所涉及的指令值C输出给再构成FPGA器件的电路结构的系统时,环境的状态(电路结构数据S1)据此发生变化。
状态观测部22在接下来的学习周期中观测状态变量S,该状态变量S包括决策部52对环境输出FPGA器件的电路结构的再构成所涉及的指令值C后发生了变化的电路结构数据S1。学习部26使用发生了变化的状态变量S来更新例如价值函数Q(即行动价值表),由此学习FPGA器件的电路结构。决策部52在学习到的FPGA器件的电路结构下根据状态变量S将FPGA器件的电路的再构成所涉及的指令值C输出给再构成FPGA器件的电路结构的系统。通过重复该周期,机器学习装置50推进FPGA器件的电路结构的学习,逐渐提高由机器学习装置50自身决定的FPGA器件的电路结构的可靠性。
具有上述结构的电路结构最优化装置40所具备的机器学习装置50具有与上述图1以及图3所示的机器学习装置20相同的效果。特别是图6所示的机器学习装置50能够根据决策部52的输出使环境的状态发生变化。另一方面,在机器学习装置20中,可以对外部装置要求相当于用于使学习部26的学习结果反映给环境的决策部52的功能。
图7表示具备工业机械60的一个实施方式的系统70。
该系统70至少具备具有相同机械结构的多个工业机械60、60’和将这些工业机械60、60’相互连接的有线/无线网络72,多个工业机械60、60’中的至少一个构成为具备上述电路结构最优化装置40的工业机械60。另外,系统70能够包括没有具备电路结构最优化装置40的工业机械60’。工业机械60、60’具有装载了在内部构成以相同目的而构成的逻辑电路的FPGA器件,并且用于再构成该FPGA器件的电路的结构。
具有上述结构的系统70由多个工业机械60、60’中具备电路结构最优化装置40的工业机械60使用学习部26的学习结果,能够不依靠运算或估算而自动且准确地求出与FPGA器件的错误产生状态对应的FPGA器件的电路结构。另外,至少一个工业机械60的电路结构最优化装置40可以构成为,根据针对其他多个工业机械60、60’分别得到的状态变量S以及判定数据D,学习所有的工业机械60、60’共通的FPGA器件的电路结构,并且由所有的工业机械60、60’共享该学习结果。因此,根据系统70,可以将更多样的数据集合(包括状态变量S以及判定数据D)作为输入,提高FPGA器件的电路结构的学习速度和可靠性。
图8表示具备了工业机械60’的其他实施方式的系统70’。
该系统70’具备机器学习装置50(或20)、具有相同机械结构的多个工业机械60’以及将这些工业机械60’与机器学习装置50(或20)相互连接的有线/无线网络72。
具有上述结构的系统70’由机器学习装置50(或20)根据针对多个工业机械60’分别得到的状态变量S以及判定数据D,学习所有的工业机械60’共通的FPGA器件的错误产生状态对应的FPGA器件的电路结构,使用该学习结果,能够不依靠运算或估算而自动且准确地求出与FPGA器件的错误产生状态对应的FPGA器件的电路结构。
系统70’具有机器学习装置50(或20)存在于在网络72中准备的云服务器等中的结构。根据该结构,不管多个工业机械60’各自存在的场所或时期,能够在必要时将必要数量的工业机械60’与机器学习装置50(或20)连接。
从事系统70、70’的作业人员在机器学习装置50(或20)开始学习后的适当的时期,能够判断由机器学习装置50(或20)进行的FPGA器件的电路结构的学习的到达度(即FPGA器件的电路结构的可靠性)是否达到了要求水平。
以上,说明了本发明的实施方式,但是本发明不只限于上述实施方式的例子,而能够通过增加适当的变更通过各种方式来实施。
例如,机器学习装置20、50所执行的学习算法、机器学习装置50所执行的运算算法、电路结构最优化装置10、40所执行的控制算法等不限于上述情况而能够采用各种算法。
另外,在上述实施方式中表示了在电路结构最优化装置10、40上由机器学习装置20、50在线进行机器学习的例子,但是也可以在FPGA器件的运用时将状态数据S和判定数据D记录为日志数据,收集所记录的日志数据,机器学习装置20、50根据从收集到的日志数据取得的状态数据S和判定数据D进行机器学习。

Claims (8)

1.一种电路结构最优化装置,进行FPGA器件的电路结构和配置的最优化,其特征在于,
该电路结构最优化装置具备学习上述FPGA器件的电路结构的机器学习装置,
上述机器学习装置具备:
状态观测部,其将表示上述FPGA器件的电路结构的FPGA器件的电路结构数据以及至少包括与上述FPGA器件上的位置相关的软错误产生频度的表示上述FPGA器件的错误产生状态的FPGA错误产生状态数据作为表示环境的当前状态的状态变量进行观测;
判定数据取得部,其取得表示上述FPGA器件的工作状态的适当与否判定结果的判定数据;以及
学习部,其使用上述状态变量和上述判定数据,识别上述FPGA器件的电路结构与上述FPGA错误产生状态数据之间的关联性,由此将上述FPGA器件的电路结构与上述FPGA错误产生状态数据关联起来进行学习。
2.根据权利要求1所述的电路结构最优化装置,其特征在于,
上述状态观测部进一步将包括上述FPGA器件的发热量、消耗功率以及工作速度中的至少任意一个的FPGA器件工作状态数据作为上述状态变量进行观测,
上述学习部识别上述FPGA器件的电路结构与上述FPGA错误产生状态数据和上述FPGA器件工作状态数据之间的关联性,由此将上述FPGA器件的电路结构与上述FPGA错误产生状态数据和上述FPGA器件工作状态数据的双方关联起来进行学习。
3.根据权利要求1或2所述的电路结构最优化装置,其特征在于,
上述学习部具备:
回报计算部,其求出与上述适当与否判定结果关联的回报;以及
价值函数更新部,其使用上述回报更新表示针对上述FPGA器件的错误产生状态的上述FPGA器件的电路结构的价值的函数。
4.根据权利要求1或2所述的电路结构最优化装置,其特征在于,
上述学习部通过多层构造运算上述状态变量和上述判定数据。
5.根据权利要求1或2所述的电路结构最优化装置,其特征在于,
上述电路结构最优化装置进一步具备:决策部,其根据上述学习部的学习结果,输出基于上述FPGA器件的电路结构的指令值。
6.根据权利要求1或2所述的电路结构最优化装置,其特征在于,
上述学习部使用关于多个工业机械分别得到的上述状态变量以及上述判定数据来学习该多个工业机械各自的上述FPGA器件的电路结构。
7.根据权利要求1或2所述的电路结构最优化装置,其特征在于,
上述机器学习装置存在于云服务器中。
8.一种机器学习装置,学习FPGA器件的电路结构,其特征在于,
该机器学习装置具备:
状态观测部,其将表示上述FPGA器件的电路结构的FPGA器件的电路结构数据以及至少包括与上述FPGA器件上的位置相关的软错误产生频度的表示上述FPGA器件的错误产生状态的FPGA错误产生状态数据作为表示环境的当前状态的状态变量进行观测;
判定数据取得部,其取得表示上述FPGA器件的工作状态的适当与否判定结果的判定数据;以及
学习部,其使用上述状态变量和上述判定数据,识别上述FPGA器件的电路结构与上述FPGA错误产生状态数据之间的关联性,由此将上述FPGA器件的电路结构与上述FPGA错误产生状态数据关联起来进行学习。
CN201810326636.3A 2017-04-13 2018-04-12 电路结构最优化装置以及机器学习装置 Active CN108736881B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-079851 2017-04-13
JP2017079851A JP6502998B2 (ja) 2017-04-13 2017-04-13 回路構成最適化装置及び機械学習装置

Publications (2)

Publication Number Publication Date
CN108736881A CN108736881A (zh) 2018-11-02
CN108736881B true CN108736881B (zh) 2020-04-17

Family

ID=63678824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810326636.3A Active CN108736881B (zh) 2017-04-13 2018-04-12 电路结构最优化装置以及机器学习装置

Country Status (4)

Country Link
US (1) US10565343B2 (zh)
JP (1) JP6502998B2 (zh)
CN (1) CN108736881B (zh)
DE (1) DE102018002781B4 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6546213B2 (ja) * 2017-04-13 2019-07-17 ファナック株式会社 回路構成最適化装置及び機械学習装置
US11194947B2 (en) * 2017-09-27 2021-12-07 Intel Corporation Systems and methods for region-based error detection and management in integrated circuits
KR20210136027A (ko) * 2019-03-20 2021-11-16 가부시키가이샤 한도오따이 에네루기 켄큐쇼 배선 레이아웃 설계 방법, 프로그램, 및 기록 매체
JP2020181105A (ja) * 2019-04-25 2020-11-05 キヤノン株式会社 投影装置およびその制御方法
CN112965854B (zh) * 2021-04-16 2022-04-29 吉林大学 一种提升卷积神经网络可靠性的方法、系统及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365731A (zh) * 2013-06-28 2013-10-23 中国科学院计算技术研究所 一种降低处理器软错误率的方法和系统
CN103902448A (zh) * 2012-12-28 2014-07-02 中国科学院深圳先进技术研究院 多核处理器软错误压力测试程序生成系统及方法
CN105786453A (zh) * 2014-12-16 2016-07-20 中国科学院沈阳自动化研究所 一种大规模plc安全参数序列保护模块和方法
CN106558959A (zh) * 2015-09-30 2017-04-05 发那科株式会社 机械学习装置和线圈制造装置
CN106557816A (zh) * 2015-09-30 2017-04-05 发那科株式会社 具备机械学习器以及组装试验器的生产设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3365581B2 (ja) * 1994-07-29 2003-01-14 富士通株式会社 自己修復機能付き情報処理装置
JP2005243937A (ja) * 2004-02-26 2005-09-08 Fujitsu Ltd 集積回路装置設計方法、当該方法を実施可能なデータ処理装置及びプログラム
US7620876B2 (en) 2005-06-08 2009-11-17 Altera Corporation Reducing false positives in configuration error detection for programmable devices
JP6045351B2 (ja) * 2013-01-08 2016-12-14 株式会社日立製作所 検証装置及び検証方法
US9805463B2 (en) * 2013-08-27 2017-10-31 Heartflow, Inc. Systems and methods for predicting location, onset, and/or change of coronary lesions
US9698779B2 (en) * 2013-10-04 2017-07-04 Texas Instruments Incorporated Reconfiguring an ASIC at runtime
DE102013225131A1 (de) * 2013-12-06 2015-06-11 Robert Bosch Gmbh Verfahren zur Fehlerüberprüfung einer hardware-konfigurierbaren Logikschaltung
JP2016167669A (ja) 2015-03-09 2016-09-15 富士通株式会社 プログラマブル論理回路装置及びそのエラー検出方法
JP6714690B2 (ja) 2016-04-26 2020-06-24 株式会社日立製作所 情報処理システム、情報処理システムの運用方法、および機械学習演算器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902448A (zh) * 2012-12-28 2014-07-02 中国科学院深圳先进技术研究院 多核处理器软错误压力测试程序生成系统及方法
CN103365731A (zh) * 2013-06-28 2013-10-23 中国科学院计算技术研究所 一种降低处理器软错误率的方法和系统
CN105786453A (zh) * 2014-12-16 2016-07-20 中国科学院沈阳自动化研究所 一种大规模plc安全参数序列保护模块和方法
CN106558959A (zh) * 2015-09-30 2017-04-05 发那科株式会社 机械学习装置和线圈制造装置
CN106557816A (zh) * 2015-09-30 2017-04-05 发那科株式会社 具备机械学习器以及组装试验器的生产设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
微处理器软错误脆弱性建模及缓解技术研究;唐柳;《中国博士学位论文全文数据库》;20170215;全文 *

Also Published As

Publication number Publication date
JP2018180951A (ja) 2018-11-15
CN108736881A (zh) 2018-11-02
DE102018002781B4 (de) 2021-07-22
US10565343B2 (en) 2020-02-18
JP6502998B2 (ja) 2019-04-17
DE102018002781A1 (de) 2018-10-18
US20180300442A1 (en) 2018-10-18

Similar Documents

Publication Publication Date Title
CN108736881B (zh) 电路结构最优化装置以及机器学习装置
US10121107B2 (en) Machine learning device and method for optimizing frequency of tool compensation of machine tool, and machine tool having the machine learning device
JP6546213B2 (ja) 回路構成最適化装置及び機械学習装置
US20220146993A1 (en) Machine learning method and machine learning device for learning fault conditions, and fault prediction device and fault prediction system including the machine learning device
JP6148316B2 (ja) 故障条件を学習する機械学習方法及び機械学習装置、並びに該機械学習装置を備えた故障予知装置及び故障予知システム
JP6619192B2 (ja) 移動軸異常負荷警告機能を有するワイヤ放電加工機
CN108628253A (zh) 异常检测装置以及机器学习装置
JP2019008675A (ja) 故障予測装置及び機械学習装置
JP6542833B2 (ja) 制御装置及び機械学習装置
US20190196454A1 (en) Chip removal apparatus and information processing apparatus
JP2017064837A (ja) 電動機に対する動作指令を学習する機械学習方法および機械学習装置並びに該機械学習装置を備えた工作機械
JP2020173551A (ja) 故障予測装置、故障予測方法、コンピュータプログラム、計算モデルの学習方法および計算モデルの生成方法
CN102016737A (zh) 使用过程数据和产量数据的过程控制
JP6711323B2 (ja) プロセスの異常状態診断方法および異常状態診断装置
CN108931959A (zh) 控制装置及机械学习装置
CN109794657A (zh) 控制装置以及机器学习装置
JP6564426B2 (ja) 部品供給装置及び機械学習装置
CN108687766B (zh) 机器人的控制装置、机器学习装置以及机器学习方法
JP2018086715A (ja) テレスコピックカバーの異常発生推定装置及び異常発生推定方法
CN110340884A (zh) 测定动作参数调整装置、机器学习装置以及系统
CN110125955B (zh) 控制装置以及机器学习装置
JP6659260B2 (ja) Plcプログラムの最適化機能を備えた制御装置及び機械学習器
JP7277303B2 (ja) 予測装置
US11940787B2 (en) Control device, method, program, and system using machine learning technology
JP6829271B2 (ja) 測定動作パラメータ調整装置、機械学習装置及びシステム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant