首页> 中国专利> 使用基于块的工作流程的约束编程

使用基于块的工作流程的约束编程

摘要

本文所述的实施方式提供了一种用于执行基于块的(BB)工作流程以求解与半导体制造环境相关的约束编程(CP)模型的技术。实施方式包括接收包含多个块的至少一个BB工作流程。多个块可以指定一组操作。实施方式包括访问对应于多个块的多个块定义。实施方式包括通过基于多个块定义执行该组操作来执行至少一个BB工作流程,其包括从半导体制造环境提取数据,该数据包含与制造环境中的装备相关的静态数据与动态数据,基于数据与BB工作流程中定义的至少一个约束来建立CP模型;使用求解器来确定CP模型的求解方案;以及将求解方案发布到半导体制造环境中的至少一个部件。

著录项

  • 公开/公告号CN112292644A

    专利类型发明专利

  • 公开/公告日2021-01-29

    原文格式PDF

  • 申请/专利权人 应用材料公司;

    申请/专利号CN201980037041.9

  • 发明设计人 大卫·埃弗顿·诺曼;

    申请日2019-05-08

  • 分类号G05B19/418(20060101);G06Q50/04(20060101);G06Q10/04(20060101);G06Q10/06(20060101);

  • 代理机构11006 北京律诚同业知识产权代理有限公司;

  • 代理人徐金国;赵静

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 09:41:38

说明书

技术领域

本公开内容的实施方式一般关于约束编程,且更特定为使用基于块的工作流程的约束编程的技术。

背景技术

许多不同行业的制造工厂负责生产用于生活各个方面的产品。举例而言,在半导体制造的情况下,半导体制造设施制造日常生活中普遍存在的产品(例如,微处理器、存储器芯片、微控制器、及其他半导体装置)。这些半导体装置用于各种应用,其实例包括汽车、计算机、家用电器、蜂窝式电话、及许多其他应用。此外,近年来,应用的数量以及装置(包括半导体装置)的需求都稳定增加。这种需求的增加促使制造设施越来越意识到增加产品种类以及减少交货时间。

每一制造环境都是独特且极其复杂的,通常需要大量资金以用于必要的装备、工具、设施等。因为制造是如此资本密集,即使设施效能的小幅增加(例如,按需建设、缩短从订单到交货的时间等)也会对财务业绩产生很大影响(例如,通过更精简的制造来降低成本,释放与闲置库存相关的资金等)。针对此原因,许多制造设施最近开始对于在设施中实行计划系统感兴趣,以用于管理复杂性、提供高品质、准时交货等。制造设施中的计划涉及对应该执行什么操作以及这些操作的顺序做出复杂决定。因此,许多计划系统涉及约束编程的使用。

约束编程可以用于包括计划的各种约束问题,其中计划问题涉及将任务进行计划时的时间和/或值约束。约束编程可以用于找到能够满足所有约束的求解方案。约束编程包括一组搜寻变量、对变量中的每一者的可能值设定边界的域、及一组约束。典型的计划问题涉及针对每一任务建立搜寻变量,并包括用于表示可以处理任务的装备的至少一个变量与用于表示任务的开始时间的至少另一变量。在一些情况下,变量可以包括任务的结束时间、任务暂停、任务恢复、及其他者。

用于建立约束编程模型的现有技术需要使用定制化代码。然而,定制化代码难以维护且不灵活,而难以进行修改。举例而言,在许多情况下,制造设施可能会进行改变以应对新应用、工具改善等。然而,在使用定制化代码建立的约束编程模型的情况下,适应这种改变可能需要制造设施可能无法取得的专业技术等级(例如,终端使用者可能没有编码经验等),需要足够的时间支持,需要大量的成本(例如,由于设施的复杂性)等。

发明内容

本文公开的实施方式包括制造环境中的使用基于块的(block-based,BB)工作流程的约束编程(constraint programming,CP)的方法、系统、及计算机程序产品。在一个实施方式中,公开一种用于执行基于块的(BB)工作流程以求解与半导体制造环境相关的约束编程(CP)模型的方法。该方法包括以下步骤:接收包含多个块的至少一个BB工作流程,其中多个块指定用于求解CP模型的一组操作;访问对应于多个块的多个块定义;以及通过基于多个块定义执行该组操作来执行至少一个BB工作流程,其包含:从半导体制造环境中提取数据,其中数据包含与制造环境中的装备相关的静态数据与动态数据;基于数据与BB工作流程中所定义的至少一个约束,建立CP模型;使用求解器来确定CP模型的求解方案;以及将求解方案发布到半导体制造环境中的至少一个部件(求解方案可以首先被后处理成该个部件可以使用的格式),其中求解方案用于确定半导体制造环境的制造计划。

另一实施方式提供一种包含计算机程序代码的非暂时性计算机可读取介质,计算机程序代码在执行时执行用于执行基于块的(BB)工作流程的操作,以求解与半导体制造环境相关的约束编程(CP)模型。该操作包括:接收包含多个块的至少一个BB工作流程,其中多个块指定用于求解CP模型的一组操作;访问对应于多个块的多个块定义;以及通过基于多个块定义执行该组操作来执行至少一个BB工作流程,其包含:从半导体制造环境中提取数据,其中数据包含与制造环境中的装备相关的静态数据与动态数据;基于数据与BB工作流程中所定义的至少一个约束,建立CP模型;使用求解器来确定CP模型的求解方案;以及将求解方案发布到半导体制造环境中的至少一个部件(求解方案可以首先被后处理成该个部件可以使用的格式),其中求解方案用于确定半导体制造环境的制造计划。

又一实施方式提供一种包含至少一个处理器与包含程序的存储器的系统,该程序在通过至少一个处理器执行时执行用于执行基于块的(BB)工作流程的操作,以求解与半导体制造环境相关的约束编程(CP)模型。该操作包括:接收包含多个块的至少一个BB工作流程,其中多个块指定用于求解CP模型的一组操作;访问对应于多个块的多个块定义;以及通过基于多个块定义执行该组操作来执行至少一个BB工作流程,其包含:从半导体制造环境中提取数据,其中数据包含与制造环境中的装备相关的静态数据与动态数据;基于数据与BB工作流程中所定义的至少一个约束,建立CP模型;使用求解器来确定CP模型的求解方案;以及将求解方案发布到半导体制造环境中的至少一个部件(求解方案可以首先被后处理成该个部件可以使用的格式),其中求解方案用于确定半导体制造环境的制造计划。

附图说明

为使本公开内容的上述特征可详细地被理解,简短概要如上的本公开内容的更特定描述可参照实施方式而获得,这些实施方式的一些绘示于附图中。然而,应注意,附图仅图示本公开内容的典型实施方式,而非视为对本公开内容的保护范围的限制,本公开内容可容许其他等效实施方式。

图1图示根据本公开内容的实施方式的利用基于块的约束编程(CP)部件配置的制造环境的架构的框图。

图2图示根据本公开内容的实施方式的制造环境内的基于块的CP部件的架构的框图。

图3图示根据本公开内容的实施方式的用于求解制造环境中的CP模型的具有基于块的工作流程的界面。

图4A、图4B、图4C及图4D图示根据一个实施方式的可以用于配置BB工作流程中的特定块所执行的各组操作的示例性块属性面板。

图5为图示根据本公开内容的实施方式的使用BB工作流程来求解与制造环境相关的CP模型的方法的流程图。

图6为图示根据本公开内容的实施方式的使用BB工作流程来求解与制造环境相关的CP模型的另一方法的流程图。

图7图示根据本公开内容的实施方式的利用基于块的CP部件配置的计算系统。

为促进理解,各图中相同的附图标记尽可能指定相同的要素。此外,预期一个实施方式所公开的要素可以有利地用于本文所公开的其他实施方式上,而不再赘述。

具体实施方式

本文所述的实施方式给出了使用基于块的(BB)工作流程来求解制造环境中的约束编程(CP)模型的技术。终端使用者可以使用工作流程来构建CP系统,该CP系统基于从制造环境取得的数据和/或使用者经由BB工作流程所定义的约束来建立及确定CP模型的求解方案,而求解方案可以用于在制造环境内进行计划及调度(例如,在求解方案被后处理成制造环境的一个或多个部件可以使用的格式并发布到一个或多个部件之后)。举例而言,每一工作流程包含一系列操作(例如,由工作流程的一个或多个块表示)的顺序,这些操作被执行以便确定用于CP模型的求解方案。这些操作的示例可以包括检索来自不同来源的数据、处理数据并将数据转换成不同格式、分析数据、基于数据建立CP模型(并且,在一些情况下,基于使用者定义的约束和/或参数)、确定CP模型的求解方案、处理求解方案并将求解方案转换成不同格式、基于求解方案确定制造计划、将求解方案和/或计划提供或发布到多个输出等。通过在工作流程内布置和/或修改块,(例如,在制造环境的)终端使用者可以让CP系统适应于制造环境的任何改变,而不需要具有专门的编程知识或是编写复杂的脚本及代码。

如今,制造设施具有非常复杂的环境,其中设施通常执行与产品制造相关的一些不同任务。这些任务可以包括但不限于用于维护制造环境内的工具(或装备)的任务、用于使用制造工具的任务、用于改变工具设定的任务、用于检查制造工具的任务、用于在资源(或未完成的产品)上执行一个或多个处理以制造完成的产品的任务等。在半导体制造的情况下,半导体制造处理通常分为两个部分“前端”及“后端”,两者使用不同类型的半导体制造装备。前端通常指称晶片制造。举例而言,前端制造设施通常以空白半导体晶片(例如,硅晶片)开始,并执行各种处理(例如,光刻、沉积、蚀刻、清洁、离子注入、化学及机械抛光等),以制造完成的晶片,其中在晶片上具有许多半导体裸片。后端通常指称单独半导体的组装及测试。举例而言,一旦前端生产处理完成,则将完成的晶片转移到通常执行功能(例如,将完成的晶片切割成单独的半导体裸片、测试、组装、封装等)的后端制造设施。因此,前端及后端处理可以包括由制造环境内的一些不同工具或自动化装置执行的数百个处理步骤。为了满足对于制造产品的不断增加的需求,对于制造环境而言,将制造环境内所执行的一系列复杂任务进行计划和/或控制制造环境内的工具(或工具群组)及自动化装置变得越来越重要。

为了在制造环境中执行计划,有时候使用CP模型。CP可以用于找到能够满足所有约束的求解方案。CP包括一组搜寻变量、对变量中的每一者的可能值设定边界的域、及一组约束。计划问题涉及针对每一任务建立搜寻变量:用于表示可以处理任务的装备的至少一个变量,以及用于表示任务的开始时间的至少另一变量。通常包括其他变量。在许多情况下,必须修改CP模型以考虑制造环境中的制造循环的改变(例如,处理流程的改变、处理时间的改变、不同的工具群组、引入的新工具、及类似改变)、制造环境中的问题(例如,工具故障、输出产品中的缺陷、维护操作、及类似问题)、新收到的订单、订单的改变等。保持使用现有技术所配置及维护的CP模型涉及修改定制化代码。此举可能涉及具有专门编程知识的使用者所编写的复杂的脚本及代码,并涉及大量时间、降低的生产率等。

如下面将更详细描述的,实施方式提供可以用于通过使用基于块的工作流程来定义及配置可以由(例如,制造设施的)终端使用者打开、配置、及扩展的CP处理的技术。举例而言,终端使用者可以使用本文所述的技术来扩展工作流程(例如,用于包括额外步骤等)、调整工作流程的处理顺序、配置(或自定义)工作流程内的该组操作等,而不需要理解或编写任何代码。因此,本文所述的CP系统向制造设施提供配置及维护CP处理的能力,而不论环境是否改变,并且不需要专门的编程知识或者与习知技术相关联的困难且耗时的操作。

一个实施方式包括一种用于通过基于块的(BB)CP部件执行至少一个BB工作流程以建立及求解与制造环境(例如,前端或后端半导体设施或工厂)相关的CP模型的方法。在制造环境内,可以使用一些工具(或装备)来处理原料或半成品(例如,未完成的产品),以生产完成的产品。举例而言,在半导体制造中,在前端处理、后端处理等期间,可以使用一个或多个工具来处理一个或多个批次(lot)。对于前端而言,一个或多个批次通常是指一个或多个空白半导体晶片。对于后端而言,一个或多个批次通常是指(例如,在完成的半导体晶片上的)一个或多个半导体裸片。

在一个实施方式中,BB CP部件允许确定基于制造设施及其部件的状态而建立的CP模型的求解方案。求解方案通常是指满足模型的约束的一组值(例如,要分配给CP模型中的变量的一组值)。约束通常是指应用于CP模型中的变量的约束(例如,时间和/或值约束)(例如,只有在计数器具有大于阈值的值时才能开始检查任务)。变量通常包括任务状态变量(例如,任务开始、任务结束、任务暂停、任务恢复等)、任务装备变量(例如,表示能够执行任务的站点)等。变量的域定义该变量的允许值。域为变量中的每一者的可能值设定边界。

为了建立CP模型,BB CP部件可以从制造环境中提取数据。数据可以包括静态数据(例如,源系统所使用的装备、装备的不同零件的能力等)与动态数据(例如,当前装备状态、当前由源系统的装备处理的产品、产品特征等)。BB CP部件在建立CP模型中也可以利用使用者经由BB工作流程所定义的约束。举例而言,BB CP部件可以使用多个变量、域、约束、及类似者来定义逻辑,从而建立CP模型。为了求解CP模型,BB CP部件可以将CP模型提供到CP求解器,以确定满足约束的求解方案。CP求解器的示例为Gecode,其使用搜寻引擎(例如,深度优先搜寻、分支定界等)来找到CP模型的求解方案。求解方案可以是包含所有变量的单一值的模型。BB CP部件可以将所确定的求解方案发布到至少一个装置或部件(例如,用于在制造环境中执行计划/调度等)。在某些实施方式中,针对求解方案进行后处理,以将求解方案转换成至少一个装置或部件可以使用的格式。在一些实施方式中,计划部件用于基于求解方案来确定制造计划(例如,符合求解方案中的变量的值的计划)。经过后处理的求解方案和/或计划可以被处理和/或转换成额外的装置或部件可以使用的形式,并且可以(例如,经由调度器)发布到额外的装置和/或部件。

在一个实施方式中,BB CP部件基于BB工作流程内的各种块来执行上述操作中的每一者。BB工作流程的每一块指定一组操作的一个或多个操作,该组操作在BB CP部件执行工作流程时由BB CP部件执行。使用本文所述的技术,使用者可以通过改变BB工作流程中的块的顺序、增加/移除BB工作流程中的块、增加/移除BB工作流程中的块之间的链路(例如,表示数据流)等来编辑和/或自定义(通过BB CP部件执行的)操作序列。举例而言,使用者可以经由支持拖拽输入的使用者界面来产生和/或编辑BB工作流程。此外,本文所述的技术也允许使用者利用一个或多个BB规则及报告来配置BB工作流程的一个或多个块内的一些或所有操作。举例而言,在执行BB工作流程中的一个或多个块之后,BB CP部件可以进一步评估至少一个BB子规则或报告,所述至少一个BB子规则或报告是为了执行工作流程块所指定的操作而针对各别工作流程块而配置的。以此方式让制造设施能够编辑及自定义(例如,不需要理解或编写代码)CP操作,以考虑制造设施中的任何改变。BB报告、规则、及子规则可以通过使用者建立,并允许使用者在不需要理解或编写任何代码的情况下配置BB工作流程中的每一块的操作。以此方式,本文所述的技术允许使用者自定义CP工作流程中的块的操作,其可以用于提取数据、转换数据及/或执行错误检查。

应注意,为了方便起见,关于半导体装置的制造的术语用于以下大部分描述中,以作为可以使用本文所述的技术而基于所产生的求解器来制定计划的制造生产处理的参照示例。类似地,以下实施方式中的许多使用前端及后端半导体制造设施,以作为制造环境类型的参照示例,其中本文所述的技术可以用于提供可以由终端使用者打开、扩展、及完全配置的CP系统。然而,应注意,本文所述的技术也可以应用于其他类型的制造环境(例如,在其他行业中)、制造处理等。

图1为图示可以实现本公开内容的方面的制造环境(或系统)100的架构的框图。举例而言,在一个实施方式中,制造环境100为半导体制造系统的示例。如图所示,制造环境100包括经由网络122连接的计算系统110、制造执行系统(MES)130、工厂储存系统140、调度器160、运行储存器150、及外部储存系统170。通常,网络122可以是广域网(WAN)、局域网(LAN)、无线LAN(WLAN)等。工厂储存系统140、外部储存系统170、及运行储存器150通常可以是任何类型的储存系统,并例如包括关系及/或分层数据库、分布式归档系统等。在一个实施方式中,计算系统110、MES 130、及调度器160可以是具有网络接口的任何类型的实体计算系统(例如,桌上型计算机、膝上型计算机、移动装置、平板计算机、服务器计算系统、网关计算机、及类似者)。

MES 130通常经配置以管理及控制制造环境100内的半成品(work-in-progress,WIP)的操作。举例而言,MES 130可以监测制造环境100中操作的一个或多个工具(或装备)的操作、直接从工具接收数据、分析来自工具的数据和/或收集数据。在一个实施方式中,MES 130可以将(从工具接收的)数据储存到工厂储存系统140中。储存在工厂储存系统140中的这种信息可以包括关于当前WIP、当前工具状态、制造数据等的信息。

如图所示,计算系统110包括BB CP部件120。BB CP部件120通常表示经配置以实现本文所述的一个或多种技术的逻辑(例如,软件应用程序、装置固件、ASIC等)。举例而言,BBCP部件120可以执行图5所示的方法500、图6所示的方法600和/或本文所述的任何技术(或技术的组合)。在一个实施方式中,BB CP部件120建立CP模型并通过执行使用者(例如,经由使用者界面)所定义的BB工作流程来确定CP模型的求解方案。举例而言,在半导体制造的情况下,制造系统可以执行与半导体晶片的制造相关的一些不同任务(例如,与前端处理相关联)、晶片上的半导体裸片的切割、组装、及测试(例如,与后端处理相关联)、及类似者。BBCP部件120可以从制造环境100检索数据(例如,从MES 130及其他装置/部件(例如,材料控制系统(MCS)及/或其他工具)检索数据)。在一个实施方式中,BB CP部件120基于数据(该数据首先可以转换或转变成用于CP的适当格式)并基于使用者经由BB工作流程而定义的约束来建立CP模型。然后,BB CP部件120使用求解器来确定满足CP模型的所有约束的CP模型的求解方案。求解方案可以被后处理(例如,通过将求解方案转换成与至少一个其他部件(例如,计划部件,其也可以位于计算系统110或一个单独系统上)或装置兼容的格式),然后被发布到至少一个其他部件或装置。

在一些情况下,制造系统可能需要处理大数量的批次。为了管理处理,计划部件可以基于BB CP部件120所确定的求解方案来周期性产生计划(例如,每五分钟、十分钟、或一些其他可配置的时间周期),以将一些或所有批次分配到可使用的工具、对批次进行排序等。举例而言,计划可以包括应该在哪个工具上以及在什么时间处理哪些任务的列表。在一个实施方式中,基于求解方案产生计划,然后提供到调度器160,调度器160通常经配置以(例如,根据计划)将批次调度到工具,以进行处理。举例而言,调度器160可以根据所产生的计划而让制造环境内的一个或多个装置自动化。可替代或附加地,求解方案和/或计划可以由BB CP部件120或另一部件写入(或保存)到外部储存系统170。对外部储存系统170中的求解方案、后处理结果、和/或计划进行维护允许求解方案和/或计划可以用于不同的实体。

在一个实施方式中,BB CP部件120经配置以执行一个或多个BB工作流程,以求解CP模型。BB CP部件120可以接收(例如,终端使用者经由使用者界面建立的)包括多个块的工作流程,其中工作流程中的每一块指定在BB CP部件120执行各别块时执行的一个或多个操作。相对于常规脚本解决方案,此工作流程可以更容易地编辑和/或自定义(例如,通过使用者),而不需要任何专门的编程知识。举例而言,使用者可以重新布置工作流程中的块(例如,用于调整BB CP部件120所执行的与建立或求解CP模型相关的步骤)、向工作流程增加块(例如,用于增加BB CP部件120所执行的与建立或求解CP模型相关的步骤)和/或从工作流程移除块(例如,移除BB CP部件120所执行的与建立或求解CP模型相关的步骤)。如下所述,使用者也可以利用BB子规则和/或报告来配置工作流程中的一个或多个块的指定操作。以此方式提供了可以完全配置的CP系统,而允许制造系统根据需要调整CP系统,而不存在修改定制化代码所涉及的复杂性。

在一个实施方式中,针对每一CP运行,BB CP部件120经配置以将与工作流程的块相关联的一些或所有输入和/或输出数据写入运行储存器150。此数据在CP运行的一个或多个步骤中获取制造系统的状态,使得在求解方案或基于求解方案的计划存在问题的情况下,制造系统可以再现该问题,这是因为可以从运行储存器150找到再现所发生的事物所需的所有数据。以此方式,制造系统可以通过追溯性调试系统来解决任何问题。

然而,应注意,图1仅图示制造环境100的一种可能布置。更通常而言,本领域技术人员将理解,制造系统的其他实施方式也可以经配置以根据本文所述的技术来实现CP技术。举例而言,尽管计算系统110、MES 130、及调度器160图示为单独实体,但是在其他实施方式中,这些部件可以被包括而作为一个计算系统的一部分。

图2进一步图示根据一个实施方式的相对于图1描述的BB CP部件120的示例。BBCP部件120经配置以建立及求解与制造环境100及其部件相关的CP模型。举例而言,(通过BBCP部件120建立的)CP模型可以指定基于多个变量、域、约束、及类似者的逻辑(例如,可执行程序的形式)。CP模型的求解方案可以包含一种模型,该模型包括满足CP模型的约束的变量的单一值。

如图所示,BB CP部件120包括BB工作流程引擎210、BB报告引擎220、CP引擎230、BB报告及规则(reports and rules,RR)储存系统250、及BB工作流程储存系统(例如,数据库)202。在一个实施方式中,BB工作流程引擎210与BB报告引擎220及CP引擎230互动并管理BB报告引擎220及CP引擎230,以建立及求解与制造环境100相关的CP模型。BB工作流程储存系统202包括一个或多个BB工作流程,一个或多个BB工作流程中的每一者可以用于(例如,由BB CP部件120使用)执行与建立及求解CP模型相关的操作。BB工作流程可以由使用者建立、编辑、和/或自定义,并储存在BB工作流程储存系统202中。

在一个实施方式中,BB工作流程引擎210(例如,从使用者)接收至少一个BB工作流程或(例如,从BB工作流程储存系统202等)检索至少一个BB工作流程,并以BB工作流程中所指定的顺序来执行每一块。如上所述,BB工作流程中的每一块指定当BB工作流程引擎210执行各别块时(例如,由BB报告引擎220、CP引擎230等的一者)所执行的一个或多个操作。可以包括在BB工作流程内的操作的示例包括但不限于检索关于制造设施的数据、转换及处理数据、基于数据并基于使用者所定义的BB工作流程中的约束来建立CP模型、确定CP模型的求解方案、让求解方案可以用于一个或多个请求者、保存关于制造设施的状态的信息、对CP模型、求解方案及数据执行错误检查、向使用者报告错误、基于求解方案产生计划、发布计划等。以此方式,BB工作流程引擎210可以控制BB CP部件120执行以提供求解方案的操作序列。

根据各种实施方式,取决于BB工作流程中所指定的块,BB CP部件120可以使用BB工作流程引擎210、BB报告引擎220或CP引擎230中的一者来执行各别块。举例而言,在一个实施方式中,BB CP部件120可以经由BB报告引擎220而从工厂储存系统140提取关于制造环境100的数据。在一些实施方式中,BB报告引擎220可以向其他系统和/或网络服务(例如,使用表述性状态转递(REST)或一些其他通讯协议)查询关于制造环境100的数据。举例而言,这样的数据可以包括制造环境100中的装备的描述、装备的不同零件的能力、装备的当前状态、当前正由装备所处理的产品、产品的特性、及类似者。

在提取信息之后,BB CP部件120可以使用BB报告引擎220在所提取的数据上执行一个或多个转换或处理。举例而言,从工厂储存系统140提取的数据可以是制造环境100专用或专有并与BB CP部件120不兼容的格式(或模式)。在这些情况下,BB报告引擎220可以将数据从专有格式转换成与BB CP部件120的其余部分兼容的共通模式。此外,BB报告引擎220可以评估专有格式的数据与共通模式的数据以用于错误检测,并且若检测到错误,则更正共通模式的数据中的错误,并向使用者报告错误(例如,经由电子邮件,储存在数据库中等)。在一些实施方式中,BB报告引擎220可以使用BB RR储存系统250内的至少一个BB子规则和/或报告来执行数据提取、数据转换、错误检查等。举例而言,BB报告和/或规则可以通过使用者建立,并允许使用者在不需要理解或编写任何代码的情况下配置BB工作流程中的每一块的操作。以此方式,本文所述的技术允许使用者自定义CP工作流程中的块的操作,其可以用于提取数据、转换数据和/或执行错误检查。

在一个实施方式中,一旦BB报告引擎220将所提取的数据转换成共通CP模式并在共通模式的数据上执行错误检查,则BB工作流程引擎210可以评估数据、基于数据及约束建立CP模型、确定CP模型的求解方案及类似者。在一些实施方式中,BB工作流程引擎210可以使用CP引擎230来建立CP模型及确定求解方案。应注意,尽管CP引擎230与BB报告引擎220图示为在BB CP部件120内,但是在一些实施方式中,CP引擎230和/或BB报告引擎220可以在BBCP部件120的外部。

可以利用通过使用者建立并储存在BB报告及规则(RR)储存系统250中的一个或多个BB规则和/或报告来配置CP引擎230。一个或多个BB报告可以用于配置、定义、和/或修改约束、指定设定、将数据转换成CP引擎230所理解的格式等。可附加或可替代地,可以使用(通过使用者建立的)一个或多个BB规则来为CP模型配置目标函数、确定哪些约束将控制CP模型、处理用于建立及求解CP模型的CP引擎230的结果(例如,可以包括将结果转换回共通模式等)、及类似者。

在一个实施方式中,一旦CP引擎230确定了求解方案,则CP引擎230将求解方案提供到BB工作流程引擎210,而可以将求解方案或基于求解方案的计划发布到调度器160或外部储存系统170中的至少一者。在一个实施方式中,在将求解方案或基于求解方案而确定的计划发布到调度器160或外部储存系统170中之至少一者之前,BB工作流程引擎210可以使用(例如,在BB RR储存系统250内的)至少一个BB报告和/或规则来处理求解方案(例如,将求解方案转换成制造环境所使用的格式等)。

如上所述,本文所述的技术也允许BB CP部件120评估所产生的求解方案,并在存在任何问题或错误事件时执行故障排除。举例而言,在一个实施方式中,在接收与BB工作流程中的每一块的执行相关联的输入及输出数据之后,BB工作流程引擎210将一个或多个块的一些或全部输入和/或输出数据写入运行储存器150。举例而言,针对每一CP运行,BB工作流程引擎210可以将所提取的数据、共通模式的数据、CP模型及其结果、CP模型输入及输出、所发布的求解方案及与BB工作流程中的块相关联的其他信息中的任一者写入到运行储存器。在一个实施方式中,BB工作流程引擎210写入每个CP运行唯一的(在运行储存器150内的)文件系统目录。以此方式,BB CP部件120能够针对CP运行的一个或多个步骤再现制造环境100的状态。举例而言,BB CP部件120可以经由BB报告引擎220(并且经由一个或多个BB报告及规则)评估与一个或多个步骤相关联的数据,以确定是否需要针对CP处理进行任何改变。因此,由于可以经由运行储存器150而使与CP运行的一个或多个步骤相关联的所有数据可用,本文所述的技术允许追溯性调试。

然而,应注意,图2仅图示BB CP部件120的一种可能布置。更通常而言,本领域技术人员将理解,BB CP部件120的其他实施方式也可以经配置以根据本文所述的技术来建立及求解CP模型。举例而言,尽管BB工作流程引擎210、BB报告引擎220、及CP引擎230图示为单独实体,但是在其他实施方式中,这些部件可以被包括而作为一个计算系统的一部分。

图3图示根据一个实施方式的具有可以用于确定与制造环境相关的CP模型的求解方案的BB工作流程330的使用者界面300。如图所示,使用者界面300包括块面板350与BB工作流程面板315。块面板350包括多个块,这些块允许使用者自定义BB工作流程内的操作,以确定与制造环境相关的CP模型的求解方案。在此实施方式中,每一块描绘成块功能的小图像特征。然而,应注意,通常可以利用其他方式(例如,大小、形状、颜色等)来描绘块。BB工作流程面板315图示BB工作流程330的一个示例。应注意,为了方便起见,仅图示BB工作流程330的一部分。更通常而言,本领域技术人员应理解,使用者可以建立和/或修改任何BB工作流程以包括任何数量的块。

在一个实施方式中,使用者界面(UI)300为图形使用者界面(GUI),其允许使用者将块从块面板350拖拽到BB工作流程面板315。使用者可以利用任何顺序或配置来(在BB工作流程面板315中)布置块,这允许使用者使CP系统快速适应制造环境内的任何改变,而不需要理解或编写任何代码。举例而言,块面板350中的每一块为逻辑抽象概念,其表示可以执行的与建立CP模型的求解方案相关的操作或一系列操作。在一个实施方式中,UI 300允许使用者为工作流程面板315中的每一块指定一个或多个属性。一个或多个属性可以指定块的数据源、与块相关联的一个或多个操作的定时、约束或/或与执行相关联于块的操作相关联的其他标准。在图4A至图4D中,块属性面板的示例展示于下。在一个实施方式中,BB工作流程面板315中的每一块的操作和/或属性可以储存在BB CP部件可以访问以执行每一块的一个或多个块定义文件中。

在一个实施方式中,一旦BB CP部件120执行BB工作流程,则BB CP部件120读取定义文件、将文件中所列出的操作转换成低阶脚本,以让BB CP部件120执行来建立CP模型并确定CP模型的求解方案。BB CP部件120可以将求解方案或经过后处理的求解方案提供到其他装置或部件(例如,计划部件)、对求解方案评估以检测错误、或者将求解方案或经过后处理的求解方案提供到请求求解方案的任何人。

在另一实施方式中,一旦BB CP部件120从BB工作流程储存系统202检索至少一个BB工作流程,则BB CP部件120读取并解析BB工作流程,以确定BB工作流程内的块的类型。BBCP部件120可以访问与BB工作流程内的每一类型的块相对应的一个或多个块定义。BB CP部件120可以基于BB工作流程中的块的块定义和/或属性来执行BB工作流程。举例而言,在一个实施方案中,BB CP部件120可以基于块的块类型和/或属性来确定用于执行块中的操作(例如,执行块)所调用的至少一个功能。然后,BB CP部件120可以通过使用所确定的功能来执行该组操作而执行BB工作流程。

在此特定实施方式中,BB工作流程330的此部分包括块302至329,块302至329共同指示操作序列,其可以在通过BB CP部件120执行时,导致求解与制造环境相关的CP模型。具体而言,块302定义触发BB工作流程330的初始执行的开始操作。块304定义用于将开始操作的结果写入日志文件的操作。块305及306通过“和(and)”块307连接,其是指(例如,同时)执行块305及306两者中的操作。块305定义用于加载/收集客户数据(例如,从制造环境中的一个或多个工具收集的数据)的炉建模(furnace modeling)操作。块306定义用于修改与CP处理相关联的一个或多个设定的全局设定操作。

块308定义用于基于从制造环境收集的数据并基于使用者定义的约束来建立与制造环境相关的CP模型的操作。块309至311表示用于处理与执行块308所定义的操作相关的错误(例如,“FAULT(故障)”状态)的操作,该操作包括将信息发送给与错误相关的使用者和/或其他部件。

块312定义用于将执行块308所定义的操作的结果写入日志文件的操作。块313定义用于确定CP模型的求解方案的操作。举例而言,操作可以包括使用求解器来确定求解方案。块314至318表示用于处理与执行块313所定义的操作相关的错误(例如,“FAULT(故障)”状态)的操作,该操作包括将信息发送给与错误相关的使用者和/或其他部件。块320至324表示用于处理与执行块313所定义的操作相关的不同错误(例如,“INFEASIBLE(不可行)”状态(例如,若没有满足所有约束的CP模型的可行求解方案))的操作,该操作包括将信息发送给与错误相关的使用者和/或其他部件。块326定义用于将执行块313所定义的操作的结果写入日志文件的操作。

块328表示用于将先前块的(例如,求解方案的)结果输出到文本文件(和/或将求解方案转换成不同格式、基于求解方案确定计划等)的操作。块329定义用于输出(例如,求解方案的)结果的操作(例如,将求解方案发布到一个或多个装置或部件)。在一些实施方式中,块326至329中的一者或多者也定义对求解方案进行后处理的操作,以建立可以用于其他目的的输入(例如,基于求解方案来确定计划)。

应注意,图3所描绘且如上所述的BB工作流程330仅表示可以例如通过使用者在没有编码的情况下配置的块序列的一个示例。通常,本文所述的技术可以用于修改及/或自定义任何制造环境的计划系统。

应注意,尽管BB工作流程330包括用于建立及求解CP模型的两个单独块308及313,但是这些块可以替代地组合成用于建立及求解CP模型的单一块。

图4A图示根据一个实施方式的可以用于配置BB工作流程中的特定块所执行的一组操作的示例性块属性面板415。举例而言,块属性面板415可以用于对图3中的BB工作流程330的块308或块313配置所执行的操作。在某些实施方式中,通过使用者与块的互动来启动块属性面板415(例如,在块上双击或在块上右键单击,并选择与块相关联的“块属性”选单项目)。

块属性面板415包括可以通过使用者选择和/或修改的一些属性。举例而言,块属性面板415允许使用者指定CP模型的求解器以及与建立CP模型相关的其他信息(例如,CP模型的模型数据(例如,约束))。举例而言,使用者可以使用块属性面板415来指定CP模型的约束。

图4B图示根据一个实施方式的可以用于配置BB工作流程中的特定块所执行的一组操作的示例性块属性面板420。举例而言,块属性面板420可以用于对图3中的BB工作流程330的块308或块313配置所执行的操作。块属性面板420包括可以通过使用者选择和/或修改的一些属性。举例而言,块属性面板420允许使用者指定求解器的进阶参数,以用于确定CP模型的求解方案。

图4C图示根据一个实施方式的可以用于配置BB工作流程中的特定块所执行的一组操作的示例性块属性面板425。举例而言,块属性面板425可以用于对图3中的BB工作流程330的块308或块313配置所执行的操作,或者对定义用于修改CP模型的操作的不同块配置所执行的操作。块属性面板425包括可以通过使用者选择和/或修改的一些属性。举例而言,块属性面板425允许使用者指定用于修改CP模型的模型数据。

图4D图示根据一个实施方式的可以用于配置BB工作流程中的特定块所执行的一组操作的示例性块属性面板430。举例而言,块属性面板430可以用于对图3中的BB工作流程330的块308或块313配置所执行的操作。块属性面板430包括可以通过使用者选择和/或修改的一些属性。举例而言,块属性面板430允许使用者指定用于运行CP模型的模型、运行目录及求解器超时。

应注意,图4A至图4D所描绘且如上所述的块属性面板415、420、425及430仅为可以例如通过使用者在没有编码的情况下配置的块属性面板的示例。也可以包括额外或不同的属性。

图5为根据一个实施方式的用于执行BB工作流程以确定与制造环境相关的CP模型的求解方案的方法500的流程图。如图所示,该方法开始于框502处,其中(例如,如图1所示及描述的)BB CP部件120(例如,从使用者)接收BB工作流程。BB工作流程包括多个块,多个块指定一组操作,该组操作指定用于建立及求解与制造环境相关的CP模型的操作。为了执行该组操作,在框504处,BB CP部件120访问与多个块相对应的块定义。在框506处,BB CP部件120通过执行步骤508、510、512、514及516所示的操作来执行BB工作流程。

在步骤508处,BB CP部件120(例如,经由BB报告引擎)从制造环境中提取数据。在一个实施方式中,数据包括(例如,来自制造环境中的工具或装备)装置数据,该装置数据用于描述可以用于处理的批次的数量及在制造环境中操作的一个或多个装置。数据可以包括静态数据(例如,源系统所使用的装备、装备的不同零件的能力等)与动态数据(例如,当前装备状态、当前通过源系统的装备处理的产品、产品特征等)。在一些实施方式中,BB CP部件120可以将数据从用于制造环境的第一模式(或格式)转换成第二模式。BB CP部件120也可以评估第一模式或第二模式中的至少一者中的数据以检测错误,并将任何错误向使用者报告。

在步骤510,BB CP部件120基于在步骤508处所提取的数据以及使用者(例如,经由BB工作流程)定义的至少一个约束建立CP模型。

在步骤512处,BB CP部件120使用求解器来确定CP模型的求解方案。举例而言,求解方案可以包含针对每一变量具有单一值的模型,使得所有约束满足。在一个实施方式中,BB CP部件120可以在将求解方案发布到其他装置或部件之前处理求解方案(例如,将求解方案转换成制造环境所使用的格式等)。

在步骤514处,BB CP部件120对求解方案进行后处理。举例而言,BB CP部件120可以将求解方案转换成与制造环境中的至少一个部件兼容的格式,从而可以将求解方案发布到至少一个部件。

在步骤516处,BB CP部件120将求解方案或经过后处理的求解方案发布到制造环境中的至少一个部件。在一个实施方式中,该部件包含基于求解方案来确定计划(例如,包括分配及处理顺序)的计划部件。可以基于所确定的分配及处理顺序在制造环境内让一个或多个装置自动化。举例而言,如上所述,可以将所确定的分配及处理顺序发布到调度器160,以让一个或多个装置自动化。可附加或替代地,BB CP部件120可以将求解方案写入(或保存)到制造环境中的一个或多个储存系统(例如,外部储存系统170等)。

图6为根据一个实施方式的用于执行基于块的工作流程以确定与制造环境相关的CP模型的求解方案的方法600的流程图。如图所示,该方法开始于框602处,其中BB CP部件120执行BB工作流程。对于每一块而言,BB CP部件在框604处确定该块是否是利用BB子规则或报告配置的(框604)。若是,则BB CP部件120在框606处评估BB子规则或报告,以确定在执行工作流程块时所执行的至少一个操作。在评估BB子规则或报告之后(或者若BB CP部件120确定工作流程块并未利用BB子规则或报告配置),则BB CP部件120可选择地在框608处将输入至工作流程块的输入保存到(例如,在运行储存器150中的)文件目录。在一个实施方式中,BB CP部件120可以将一些或全部输入从工作流程块保存到文件目录。在一个实施方式中,BB CP部件120可以确定不将任何输入从工作流程块保存到文件目录中(例如,在BBCP部件120可以在不需要这样的数据的情况下再现制造环境的状态等情况时)。在框610处,BB CP部件120访问与BB工作流程中的块的类型相对应的块定义。在框612处,BB CP部件120基于块的块定义及一个或多个属性来执行块内所指定的操作。举例而言,如上所述,BB CP部件120可以基于块的块定义和/或一个或多个属性来确定为执行工作流程块所要调用的至少一个功能。在框614处,BB CP部件120可选择地将输出从工作流程块保存到文件目录。在一个实施方式中,BB CP部件120可以将一些或全部输出从工作流程块保存到文件目录。在一个实施方式中,BB CP部件可以确定不将任何输出从工作流程块保存到文件目录中(例如,在BB CP部件120可以在不需要这样的数据的情况下再现制造环境的状态等的情况时)。以此方式,允许CP系统在CP运行的每一步骤处再现制造环境的状态,这可以用于在出现错误事件的情况下对CP处理进行故障诊断。

图7图示根据一个实施方式的经配置以执行基于块的工作流程来确定与制造环境相关的CP模型的求解方案的计算系统700。如图所示,计算系统700包括但不限于中央处理单元(CPU)705、网络接口715、存储器720、及存储装置740,其中每一者都连接到总线717。计算系统700也可以包括将I/O装置712(例如,键盘、鼠标、及显示装置)连接到计算系统700的I/O装置接口710。此外,在本公开内容的上下文中,计算系统700所图示的计算元件可以对应于实体计算系统(例如,数据中心的系统),或者可以是计算云端内所执行的虚拟计算实例。

CPU 705检索并执行储存于存储器720中的编程指令,以及储存及检索驻留在存储器720中的应用数据。互连或总线717用于在CPU 705、I/O装置接口710、存储装置740、网络接口715及存储器720之间传送编程指令及应用数据。应注意,CPU 705被包括以代表单一CPU、多个CPU、具有多个处理核心的单一CPU及类似者。通常存储器720被包括以代表随机存取存储器。存储装置740可以是盘片驱动器储存装置。尽管图示为单一单元,但是存储装置740可以是固定和/或可移动储存装置的组合(例如,固定盘片驱动器、可移动存储卡或光储存器、网络附接储存(NAS)、或储存区域网(SAN))。

作为说明之用,存储器720包括BB CP部件730,BB预测部件730包括BB报告引擎732、BB工作流程引擎734及CP引擎736。存储装置740包括BB工作流程742、工厂数据744及BB规则及报告746。此外,尽管未图示,但是存储器720也可以包括调度器160、计划部件等。在一个实施方式中,BB工作流程引擎734执行BB工作流程742的块中的每一者。举例而言,如上所述,BB工作流程742中的每一块可以指定在执行每一块时所执行的一个或多个操作。此外,可以利用(例如,储存在BB规则及报告746中的)一个或多个BB报告及规则来配置一个或多个操作。如上所述,当执行工作流程块时,BB工作流程引擎734可以进一步与BB报告引擎732及CP引擎736互动。

出于说明的目的,给出了本公开内容的各种实施方式的描述,但是并非意欲穷举或约束于所公开的实施方式。在不背离所描述的实施方式的范围及精神的情况下,许多修改及变化对于本领域技术人员是显而易见的。选择本文使用的术语是为了最好地解释实施方式的原理、实际应用、或针对市场中发现的技术的技术改良,或者是让本领域技术人员能够理解本文所公开的实施方式。

本领域技术人员应理解,本公开内容的方面可以体现为系统、方法、或计算机程序产品。因此,本公开内容的方面可以采取完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)、或组合软件及硬件方面的实施方式的形式,其在本文中通常都可以称为“电路”、、“模块”或“系统”。此外,本公开内容的方面可以采取体现在一个或多个计算机可读取介质中的计算机程序产品的形式,所述一个或多个计算机可读取介质具有在其上体现的计算机可读取程序代码。

可以使用一个或多个计算机可读取介质的任何组合。计算机可读取介质可以是计算机可读取信号介质或计算机可读取储存介质。计算机可读取储存介质例如可以是但不限于电、磁、光、电磁、红外、或半导体系统、设备、或装置、或前述的任何合适的组合。计算机可读取储存介质的更具体示例(非详尽列表)将包括以下内容:具有一条或多条线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光学储存装置、磁储存装置、或任何上述的适当组合。在本文档的上下文中,计算机可读取储存介质可以是任何实体介质,其可以包含或储存程序,以供指令执行系统、设备、或装置使用或与其结合使用。

计算机可读取介质上所包含的程序代码可以使用任何适当的介质传输,包括但不限于无线、有线、光纤电缆、RF等,或者前述的任何合适的组合。

用于执行本公开内容的方面的操作的计算机程序代码可以利用一个或多种程序语言的任何组合来编写,包括面向对象的程序语言(例如,Java、C#、Smalltalk、C++、或类似者)与常规的面向过程的程序语言(例如,“C”程序语言或类似的程序语言)。程序代码可以完全在使用者的计算机上执行、部分在使用者的计算机上执行、作为独立的软件包执行、部分在使用者的计算机上且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络而连接到使用者的计算机(包括局域网(LAN)或广域网(WAN)),或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。

以上参照根据本公开内容的实施方式的方法、设备(系统)及计算机程序产品的流程图/或框图来描述本公开内容的方面。应理解,流程图和/或框图所图示的每一框以及流程图和/或框图所图示的框的组合可以通过计算机程序指令实现。这些计算机程序指令可以提供给通用目的计算机、专用目的计算机或其他可编程数据处理设备的处理器,以生产机器,而使得经由计算机的处理器或其他可变成数据处理设备执行的指令生成用于实现流程图和/或框图中所指定的功能/动作的构件。

这些计算机程序指令也可以储存在计算机可读取介质中,并可以指示计算机、其他可编程数据处理设备或其他装置以特定方式起作用,而使得储存在计算机可读取介质中的指令产生包括实现流程图和/或框图中所指定的功能/动作的指令的制造制品。

附图中的流程图及框图图示根据本公开内容的各种实施方式的系统、方法、及计算机程序产品的可能实现的架构、功能、及操作。在这方面,流程图或框图中的每一框可以表示包括用于实现所指定的逻辑功能的一个或多个可执行指令的模块、片段或指令的一部分。在一些替代实施方案中,框中所提到的功能可以不依照附图所图示的顺序发生。举例而言,取决于所涉及的功能,连续图示的两个框实际上可以基本上同时执行或并行执行,或者这些框有时可以利用相反的顺序执行。也应注意,框图和/或流程图所图示的每一框以及框图和/或流程图所图示的框的组合可以通过执行特定功能或动作或执行专用硬件及计算机指令的组合的基于硬件的专用目的的系统来实现。

尽管前述内容涉及本发明的实施方式,本公开内容的其他及进一步实施方式可在不脱离本公开内容的基本范围的情况下做出,且本公开内容的范围由随附权利要求书所确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号