具体实施例
本发明的具体实施例说明如后。为求清晰,实际实施上的全部特征并未说明于本说明书。当然需了解于任何此种实际具体实施例的发展中,必须做各种特定实施例决策以达到程序开发商的特定目的,例如符合***关联及商业关联的限制。此类限制因各项实施例而异。此外需了解此种开发努力复杂且耗时,但受益于本发明的本领域普通技术人员来说,是普通工作任务。
现在参照附图,首先参照图1,显示先进工艺控制(APC)***100的简化方框图。APC***100为可交换的标准化软件组件的分布式软件***,其允许各操作批次的控制以及故障侦测/分类。软件组件执行基于半导体设备与材料国际(SEMI)计算机集成制造(CIM)架构遵循***技术规格及先进工艺控制(APC)架构的架构标准。CIM(SEMIE81-0699-CIM框架领域架构临时规格)以及APC(SEMI E93-0999-CIM框架先进工艺控制组件临时规格)规格可公开得自SEMI。这种特殊架构大为仰赖利用面向对象的编程的软件,且采用分布式对象***的对象管理组(OMG)共同对象请求经纪人架构(CORBA)及CORBA Services规格。OMG CORBA架构信息及规格也可公开获得。适合执行如此处所述APC***100功能的范例软件***为KLA-Tencor公司提供的触媒(Catalyst)***。
各组件使用CORBA接口定义语言(IDL)彼此通信,且仰赖一组共同服务来支持其交互作用。标准分布式对象服务集合由OMG定义。此类服务包括:
CORBA-用于全部直接组件对组件互动的基于标准的通信协议。标准接口可根据面向对象的远程调用通信模式定义。此类接口及全部APC通信使用IDL定义。各组件经由调用于各接口的操作而通信。数据作为操作参数和返回值通过各组件。
OMG事件服务-支持各组件间的异步通信。多种APC对象当其变更状态时发送事件。此类事件由感兴趣的事件订购者接收。于APC***内部的事件使用范例包括但非限于通信组件状态(包括错误状态),通知由故障侦测及分类软件侦测得的故障警示,以及报告机器状态及收集得的数据。
OMG交易服务-让组件找到与其互动的另一组件。当一个组件被安装时,其服务说明(服务提供者)输出至交易服务。另一组件稍后可请求符合某些标准的服务提供者列表。交易服务提供可提供所请服务的其它组件列表。该项能力于组件启动时使用让一个组件可找到其必须互动的其它组件。也用于计划启动,当计划执行组件必须找到能力提供器来提供该计划中指明的要求的能力。
此类服务在本领域内众所周知。OMG’s CORBA/IIOP规格文件以及CORBA服务规格文件广泛分散于本领域内且提供更多细节。
在所述的具体实施例中,APC***100适合控制半导体制造环境。各组件使用CORBA接口定义语言(IDL)彼此通信。合作软件组件管理工艺控制计划/策略;收集来自工艺设备、计量工具以及附加传感器的数据;使用此类信息调用各种工艺控制应用程序/运算法则;以及视需要更新工艺模式和修改/下载工具操作菜单参数。APC***100为控制半导体制造程序的工厂范围的软件***,但非本发明所需。本发明教示的策略可以任何规模应用至不同的计算机***。
于一具体实施例中,APC***100包括APC主机计算机110、数据库服务器115、117、工艺工具120、计量工具125、以及一或多个工作站130。APC***组件通过总线135互连。总线135实际包括多层且使用多种协议。APC***100的整体操作由驻在APC主机计算机110的APC***管理器140指挥。APC***管理器140提供对APC架构开发出的全部服务器的行政管理、配置、事件及状态服务;APC***100各组件的定义、分组、安装及管理;用于诊断及监视的捕捉活动及跟踪信息的集中式服务;组件配置信息的集中式仓储,包括设定数值、***环境设定;以及相依性对象及事件信道列表。但于另一具体实施例中,此类功能被划分为一或多个软件组件例如基础管理器、***管理器、记录器以及注册表(registry)。
APC***100包括工艺模块网络。此类工艺模块有时称作为“集成组件”(integration components)。集成组件作为现有工厂***接口以及提供执行APC计划的能力。“APC计划”为一种执行若干特定任务的应用程序,容后详述。集成组件显示为由APC***100内部的多项工艺资源所主控。提供特定主控位置供举例说明之用。工艺资源彼此互连,各个软件组件分散于各部计算机或为集中式,依据该***的复杂度确定。本具体实施例的各集成组件以软件实施。如本领域已知其是以C++用面向对象的编程技术编写的。APC***100的优点为其模块化结构,其提供软件组件的携带性。集成组件包括但非限于APC***管理器140;控制执行管理器150;关联工具120、125的设备接口160、165;关联加工工具120的传感器接口170;应用程序接口180;机器接口190、195;操作员接口200;及数据处理器210。
控制执行管理器150主要负责“编写(choreographing)”APC***100的操作的组件。控制执行管理器150解译APC计划,执行主脚本及副脚本,以及视事件的需要调用事件脚本。多项计划、脚本及副脚本可用于各项实务。多项计划、脚本及副脚本的特定数目及功能将依各实施例确定。例如本发明包括但非限于下列计划:
数据收集计划-传感器及机器接口使用的数据结构,其用来定义特定工艺设备须收集何种数据,以及该数据须如何回报;
持续时间计划-定义触发条件以及触发延迟,其使得传感器动作例如开始收集数据、停止收集数据的计划;
报告计划-定义如何使用收集的数据,以及何时发出信号通知数据的利用性的计划;以及
取样计划-定义数据将由外部传感器收集的频率计划;
控制计划-控制脚本集合,其被设计用来共同执行APC活动;以及
控制脚本-APC***于特定定义情况下欲执行的动作/动作顺序。
控制执行管理器150协调对一个指定工具例如工艺工具120的全部集成组件由用户定义的工艺控制计划的执行。当接到指令时,控制执行管理器150恢复计划及其关联脚本。其预处理副脚本而提供例程给主脚本及事件脚本。其也获得执行该计划需要的能力列表,如计划中载明,以及连接至可提供所需能力的适当集成组件。
然后控制执行管理器150将执行该计划的责任委派给控制执行器220。在说明的具体实施例中,控制执行管理器150使用基准控制脚本来确定欲执行的控制动作。基准工艺脚本152指定用于工艺工具例如工艺工具120,以及基准计量脚本154指定用于计量工具例如计量工具125。基准脚本152、154的进一步细节参照图2至6提供如后。
控制执行管理器150基于适当基准工艺脚本152或基准计量脚本154形成控制执行器220,以循序执行计划,且报告计划的完成或计划执行中的错误回报给控制执行管理器150。如此,控制执行管理器150负责全部执行的计划的整体管理,而各个控制执行器220仅负责执行一项计划。控制执行器220由控制执行管理器150产生,存在于整个计划期间,且于报告计划完成或计划中途失败后由控制执行管理器150所摧毁。控制执行管理器150可通过多重控制执行器220而同时开始从事多项计划。
机器接口190、195桥接于APC架构如APC***管理器140与设备接口160、165间的间隙。机器接口190、195接口加工工具或计量工具120、125与APC架构,以及支持机器的设定、激活、监视以及数据的收集。本具体实施例中,机器接口190、195主要于设备接口160、165的特定通信以及APC架构的CORBA通信间做传译。更具体地,机器接口190、195接收来自设备接口160、165的指令、状态事件以及收集得的数据,以及视需要发送给其它APC组件及事件信道。来自其它APC组件的响应由机器接口190、195接收以及路由至设备接口160、165。机器接口190、195也视需要而重新格式化以及重新结构化信息及数据。机器接口190、195支持APC***管理器140内部的开机/关机程序。也作为APC数据收集器,缓冲由设备接口160、165收集的数据,以及发送适当资料收集事件。
传感器接口170收集由传感器监控工艺工具120的操作产生的数据。传感器接口170提供适当接口环境而与外部传感器例如LabVIEW或其它传感器、基于总线的数据获得软件的通信。应用程序接口180提供适当接口环境来执行控制***即用应用程序如LabVIEW、Mathematica、Model Ware、MatLab、Simca4000及Excel。传感器可由原始设备制造商(OEM)连同工艺工具120供给,或可为得自OEM之后安装的添加传感器。传感器接口170收集传感器产生的数据。传感器可产生例如操作条件的温度及压力数据。应用程序接口180由控制执行器220取得数据且基于该数据执行计算或分析。然后将结果送回控制执行器220。机器接口190以及传感器接口170使用一组共同功能来收集欲使用的数据。设备接口160收集传感器对加工工具120收集的数据,且传送收集得的数据给机器接口190。
操作员接口200有助于晶片制造技术人员与APC***100通过图形用户接口(GUI)(图中未显示)通信。GUI可为基于Windows或UNIX的操作***。但此非实施本发明所必须。确实若干其它具体实施例可能未采用GUI,可能需经由基于磁盘操作***(DOS)的操作***通信。操作员接口200显示对话框来提供信息、请求指示以及收集额外数据。透过CORBA接口,操作员接口200组件允许技术人员于任何多种显示组同时显示多个弹出对话框。操作员接口200也维持出现跳出对话的一组显示画面。操作员接口200也提供通知操作,亦即显示带有信息和“OK”按钮的简单弹出框的单向信息。
数据处理器210接收由其它APC***100组件产生的数据,且储存该数据于数据库服务器115、117的数据储存装置230、232(例如合法数据库(rational database))。数据处理器210适合接收标准结构化查询语言(SQL)指令,或另外,数据处理器210可传译不同类型存取协议而产生SQL指令或若干其它协议指令。集中数据储存功能增加各个组件的可携带性。
基准控制脚本152、154的一般操作参照图2所示简化方框图而被说明,图2显示基准控制脚本152、154与多个共享基准存库间的连接。概略言之,基准控制脚本152、154提供于APC***100内部发展控制脚本的架构。基准控制脚本使用储存于库中的共享基准组件。在该说明的具体实施例中,共享基准组件包括用以定义控制运算法则的控制基准库240;用以定义通用数学函数(例如和、平均、中间值等)的数学基准库250;定义脚本执行的各项通信(例如与数据储存装置230、232、机器接口195、设备接口160(透过机器接口195)、操作员接口200以及其它外部组件的互动)的互动基准库260;用以定义共享的共同函数的用途基准库270;用以定义该设施特定功能或该设施其它存库240、250、260、270的例程例外的设施库280;以及层库290,用以定义呼叫基准控制脚本含括的特定操作ID的层(例如多门层)。基准库240、250、260、270、280、290可于基准控制脚本152、154操作期间控制执行器220连接。
通常,基准控制脚本152、154基于呼叫脚本含括的信息以及设施及层基准库280、290含括的信息而确定控制动作性质。基准控制脚本152、154连接至控制基准存库240而存取所需控制功能。基准控制脚本152、154链接至互动基准库260用以存取收集数据函数,该数据用以执行控制动作;以及存取与设备接口160通信函数,该函数用以更新工具120、125的操作菜单。于数学基准库250的函数视需要可由于基准控制脚本152、154或其它库的其它函数呼叫。
现在参考图3,该图显示基准工艺脚本152组织的简化方框图。基准工艺脚本152包括应用程序配置方框300、基准应用程序设定方框310,控制器常数及特定内容设定方框320,前传数据分析方框(feedforward data analysis block)330,控制线索方框(control thread block)340,危害方框350,控制动作及商业法则方框360及结果方框370。
于应用程序配置方框300内部,用户共用配置变量(user globalconfiguration variables)定义成由控制器基于来自设备接口160的呼叫信息使用。如此包括来自菜单管理***(RMS)的变量值(亦即菜单设定共用数据库)以及所需内容变量。内容变量值定义控制线索,且典型地由工具标识码、批号、操作编号等变量值组成。此外,任何所需基准变量亦为指定值。范例包括错误通知的电子邮件列表、超时值、于被视为“子(child)”批次的批次中允许的最大晶片数目、控制器使用的前一层信息(前传信息)等。
基准应用程序设定方框310使用晶片批号及数量数值,如应用程序配置方框300所设定,以及送返批号(lot number)、家庭(family)名称、亲代(parent)名称、设施、晶片数目及状态(亦即该批为亲代批次或子批次)等数值。基准应用程序设定方框310也设定控制器将发送跳出窗口的终端机内设列表以及全部弹出窗口标题的第一部分。
控制器常数及特定内容设定方框320使用先前定义的内容及RMS信息而设定控制器用来计算控制器移动数值。例如控制器常数及特定内容设定方框320使用内容信息(或“线索”指定)而根据RMS定义值设定控制模式参数值。特定实例将根据特定蚀刻腔室内容对用于控制模式的蚀刻速率设定数值,以及如RMS定义对该蚀刻腔室的蚀刻速率设定数值。此外,控制器常数及特定内容设定方框320使用如应用程序配置方框300设定的批号及层名而前传藉查询由数据库取得的信息。
前传数据分析方框330检查关联指定批次的数据数组的各个元素(elements),且对漏失数值填入缺省值。例如先前处理目标用来设定需要作为控制器使用的前传信息一部分的漏失测量值。其它设定漏失前传信息值的方法(替代使用缺省值)也可于前传数据分析方框330执行。
控制线索方框340设定查询数据储存装置230、232而存取关联目前控制线索的控制状态需要的关键及状态结构值。关键用来由数据储存装置230、232恢复线索状态。控制线索方框340搜寻以用该线索内容处理的近期批次的有序数据堆栈的线索状态数据。若发现此类值,则被送至含控制模式的用户定义函数,该函数计算并送返线索状态值。若未发现任何值于堆栈中,则控制线索方框340向上阶层搜询,且由具有该线索状态值的第一阶层层次恢复数据。堆栈以及全部阶层层次假设含有类似数据但其精度不同。
危害方框350执行数据库的查找,以及恢复批次编号值于危害堆栈(即,自从前次计量操作以来于指定线索处理的批次堆栈)。此值与于此危害类别的批次编号阈值(通常规定于RMS的值)对比。若未超越阈值,则控制器继续前进。若超越阈值,则控制器中途停止,以弹出的显示画面指示操作员由危害堆栈的批次列表中对一批次执行计量事件。
控制动作及商务法则方框360为控制器的核心。控制动作及商务法则方框360由状态及目标信息运算控制器输入(工艺菜单更新)。其结果置于通用控制结果数组。其次,控制动作及业务法则方框360执行业务法则,限制工艺菜单更新的检查,和/或根据控制器的用户输入撤销而设定工艺菜单更新。
结果方框370由控制动作及业务法则方框360取出输出,其中包括工艺菜单更新、数据计算/格式化、或事件,将其共同缓冲且格式化数据。结果方框370将缓冲后的数据送至设备接口160,且由机器接口195初始化设定/启动机器呼叫至设备接口160。其次,结果方框370将数据相对于批号以及目前内容(线索)的层次而储存于数据储存装置230、232。危害堆栈也更新目前批次作为前次计量事件以后处理的额外批次。
现在参照图4,提供简化方框图,显示基准计量脚本154的组织。基准计量脚本154包括计量工具设定方框400、应用程序配置方框410、基准应用程序设定方框420、输入工具数据方框430、控制器常数及特定内容设定方框440、控制线索方框450、模式更新方框460及结果方框470。
于计量工具设定方框400中,数据收集被初始化,任何缓冲的数据被送至控制执行器220。机器接口190也被初始化而发送设定/启动机器呼叫给设备接口165。
应用程序配置方框410与基准应用程序设定方框420执行前文就基准工艺脚本152所述同名方框的类似功能。
输入工具数据方框430暂停基准计量脚本154,等候来自数据来源的数据组,该数据来源典型为计量工具。等候此一事件的时间以及发出脚本暂停的事件名称载明于输入工具数据方框430。
控制器常数及特定内容设定方框440也执行前文就基准工艺脚本152所述相同名称方框的类似功能。
控制线索方框450设定储存目前线索之计算的控制状态至数据储存装置230、232所需关键及状态结构值。此外,控制线索方框450运算全部更新线索状态需要的数值。此项功能读取定义的通用变量且运算需要的结果。结果指出用于更新控制器的统计数字或数值,例如批次平均值、工艺速率以及与目标值或预测值的偏差。此项功能结果置于共用控制结果数组。
模式更新方框460用于执行商务法则、规格极限(spec limit)检查以及控制器重设(overrides)。此种功能读取定义的共用变量,以及设定最终结果。模式更新方框460负责设定值,该值将用于更新控制器,以及设定将记录于控制历史的数值。此项功能结果置于共用控制结果数组。
结果方框470由控制器常数及特定内容设定方框440取出输出,缓冲该输出,以及格式化数据而与设备接口165兼容。由基准计量脚本154输出的数据也写至控制历史文件。控制历史的标头系基于供给的变量名称产生。记录文件具有编码于文件第一行的标头。若计算所得标头不匹配档案第一行,则该存在的文件经重新命名而开始新的文件。
现在参照图5,该图提供根据本发明的另一具体实施例,可于单一加工工具120执行多重控制动作的多重控制器基准工艺脚本500的简化方框图。例如光微影术台阶器具有重迭控制器以及关键尺寸控制器。控制器使用来自处理后晶片的反馈而调整各个台阶器参数,例如曝光剂量、曝光时间、焦点等。沉积工具例如形成多晶硅层的工具也有多重控制器用以控制例如多晶硅晶粒大小及多晶硅层厚度等参数。
当基准工艺脚本500被呼叫时,其基于呼叫中含括的信息而确定需要的控制动作。一个批次欲被处理的内容确定将执行何种控制器。内容由操作ID、实体ID、产品ID及其它分立标识符以确定特定运行的需求定义。首先,实体ID用于确定工具类型的概略类别(例如台阶器、蚀刻剂、炉子等)。若实体ID识别该加工工具120为台阶器,则呼叫台阶器控制代码。
于台阶器句柄内部,脚本内部的内容变量经检查而确定欲呼叫哪个控制器。操作ID指示欲执行的工艺(例如多门掩膜相对于第二层间电介质层掩膜(ILD))。各个控制器应用至一组内容情况,唯有满足全部内容条件才执行。例如CD控制器可对多门掩膜执行,但不可于第二ILD掩膜工艺执行。另一方面,重迭显示控制器可于两种掩膜事件执行。
基准工艺脚本500提供弹性,基于工具集合(例如台阶器)匹配所需工具码,以及准备操作全部可利用的控制器(例如重迭、CD等控制器)。执行相同主脚本时,相同的子程序可被呼叫,但唯有目前内容需要的控制器才被激活。
多重控制器基准工艺脚本500包括应用程序配置方框510、基准应用程序设定方框520、控制器常数及特定内容设定方框530、前传数据分析方框540、控制线索方框550、危害方框560、控制动作及商务法则方框570及结果方框580。多重控制器基准工艺脚本500以类似基准工艺脚本152的方式操作,例外之处容后详述。
控制器常数及特定内容设定方框530确定适用何种控制器(例如控制器A、控制器B或二者),以及使用先前定义的内容及RMS信息来设定各个控制器用来计算控制动作。控制器常数及特定内容设定方框530也从数据库为每个要求的控制器恢复前传信息,其使用如应用程序配置方框510中设定的批号和层名来查询。前传数据分析方框540检查于和指定批号相关联的数据数组的各个元素,并对各个控制器的漏失值填补缺省值。
控制线索方框550设定查询数据储存装置230、232需要的关键及状态结构,以对各主动控制器恢复和目前控制线索关联的控制状态。关键用来由数据储存装置230、232恢复线索状态数据。控制线索方框550搜寻该线索状态数据是否于近期使用此线索内容处理的批号的有序数据堆栈。若找到此值,则此值送至含用户定义函数的控制模式,其计算并送返线索状态的值。若于堆栈中未见该值,则控制线索方框340向上方阶层搜寻,由具有该线索状态值的第一阶层层次恢复数据。该堆栈及全部阶层层次假定含有类似数据,但精度不同。
控制动作及商务法则方框570对各控制器由状态及目标数据运算控制器输入(工艺菜单更新)。由于使用多重控制器,故一部控制器可能影响其它控制器赖以确定其控制动作的状态信息。因此,控制器可被指定相对优先级值,用以确定其控制动作顺序。优先级较高的控制器可基于其控制动作的确定而更新第二控制器的状态信息数据。然后第二控制器基于修改后的状态信息确定其控制动作。由以此种方式合作,控制器将不会彼此竞争有关操作菜单的变化。
结果方框580收集来自全部主动控制器的控制动作,缓冲数据,以及格式化数据。结果方框580将缓冲后的数据送至设备接口160,借机器接口195初始化设定/启动机器呼叫至设备接口160。其次,结果方框580为目前内容(线索)对批次号码及层存储于数据储存装置230、232中的数据,以及更新危害堆栈。
现在参照图6,提供根据本发明的另一具体实施例的集成多重控制器方法的简化流程图。于方框600,工件于多个工具处理。于方框610,对多个工具中的一选定工具(例如藉控制执行管理器150)初始化基准控制脚本。初始化基准控制脚本后,控制执行器220执行其余任务。于方框620,识别一组选定工具所需控制例程。于方框630,相对以前控制动作恢复控制状态信息,为被要求控制例程,该以前的控制动作和选择的工具相关联。于方框640,得自所需该组控制例程发第一控制例程经执行而产生第一控制动作。于方框650,关联得自该组所需控制例程的第二控制例程的控制状态信息基于第一控制动作改变。于方框660,基于修改后的控制状态信息执行第二控制例程以产生第二控制动作。
上述的具体实施例仅供举例说明之用,受益于此教示内容的本领域技术人员可以不同但相当方式修改及实施本发明是显而易见的。此外,绝非意图囿限于此处所述构造或设计细节,本发明范围由权利要求界定。很明显上述具体实施例可被修改或变更,但所有这样的变化都被认为落入本发明的范围。因此保护范围由权利要求确定。