一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种任务调度方法和半导体工艺设备与流程

2022-05-11 12:28:01 来源:中国专利 TAG:


1.本发明涉及半导体技术领域,特别是涉及一种任务调度方法和半导体工艺设备。


背景技术:

2.目前,随着自动化技术的发展,可以在半导体设备启动多个任务。基于现有技术方案,在设备中存在正在进行中的任务时,会在待启动任务中选择与正在进行中的任务能够兼容且等待时间最久的任务作为下一个启动的任务。但是,这样无法确定待启动任务的准确时间,也无法对多个待启动任务进行合理规划。
3.由此,目前的任务调度方法无法实现任务调度的实时最优化,会造成资源浪费,进而导致设备产能低下。


技术实现要素:

4.本发明实施例所要解决的技术问题是设备产能低下。
5.为了解决上述问题,本发明实施例公开了一种任务调度方法,应用于半导体工艺设备,半导体工艺设备在同一批次工艺进程中加工多个物料,每一个物料对应一个待启动任务,待启动任务均包括多道工序,任务调度方法包括:
6.获取所有待启动任务的任务数据;任务数据包括待启动任务对应的所有工序对应的工序号、加工时长、加工位置以及加工位置停滞时长,其中,工序号为工序编码,加工时长为完成每道工序所需的时长,加工位置为进行每道工序时,物料在半导体工艺设备中的位置,加工位置停滞时长为物料在完成每道工序后在对应加工位置的停滞时间;
7.将每个待启动任务的任务数据均输入至任务调度模型,输出每个待启动任务的启动时刻;任务调度模型以执行所有待启动任务所需总时长最短为目标函数,任务调度模型的约束条件与任务数据相关联;
8.根据每个待启动任务的启动时刻,对待启动任务进行任务调度。
9.本发明实施例公开了一种半导体工艺设备,半导体工艺设备在同一批次工艺进程中加工多个物料,每一个物料对应一个待启动任务,待启动任务均包括多道工序,半导体工艺设备包括:
10.控制器,用于获取所有待启动任务的任务数据;任务数据包括待启动任务对应的所有工序对应的工序号、加工时长、加工位置以及加工位置停滞时长,其中,工序号为工序编码,加工时长为完成每道工序所需的时长,加工位置为进行每道工序时,物料在半导体工艺设备中的位置,加工位置停滞时长为物料在完成每道工序后在对应加工位置的停滞时间;
11.将每个待启动任务的任务数据均输入至任务调度模型,输出每个待启动任务的启动时刻;任务调度模型以执行所有待启动任务所需总时长最短为目标函数,任务调度模型的约束条件与任务数据相关联;
12.根据每个待启动任务的启动时刻,对待启动任务进行任务调度。
13.根据本发明的实施例,通过获取包括待启动任务对应的所有工序对应的工序号、加工时长、加工位置以及加工位置停滞时长的任务数据;将任务数据输入至以执行所有待启动任务所需总时长最短为目标函数且约束条件与任务数据相关联的任务调度模型,输出每个待启动任务的启动时刻;这里,以最小化总加工时长为目标对所有待启动任务进行规划,结合任务数据可以得到每一个待启动任务的启动时刻,可以高效有序的规划任务的启动,最后,根据启动时刻,对待启动任务进行任务调度,可以提升任务完成效率,进而提升设备产能。
附图说明
14.图1示出了本实施例提供的一种半导体工艺设备的结构示意图;
15.图2示出了本实施例提供的一种任务工序的流程图;
16.图3示出了本实施例提供的一种任务调度方法的流程图;
17.图4示出了本实施例提供的一种半导体工艺设备结构示意图。
具体实施方式
18.下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
19.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
20.首先,结合图1对发明中涉及到的半导体工艺设备进行简要说明。
21.本发明中涉及到的半导体工艺设备可以划分为station模块、tank模块、fr、一个whr机械手、一个晶圆收发器(wafer transceiver,wtr)机械手、4个dual手(duallifter)。具体机台结构图如图1所示。
22.其中,半导体工艺设备可以包括多个station模块:半导体工艺设备可以包括18个station模块,集合表示为st={shelf1,shelf2,shelf3,shelf4,shelf5,shelf6,shelf7,shelf8,shelf9,shelf10,shelf11,shelf12,shelf13,shelf14,shelf15,shelf16,pdo1,pdo2}。晶圆架(shelf)用于临时存放片盒(foup),一个foup中可以存放一组wafer(晶圆或者晶片)。每一个shelf上最多可以放置一个foup,shelf上有传感器可以检测foup的个数(0或1)。半导体工艺设备中共有16个shelf,至多可以存放16个foup。、
23.两个扫描模块(pdo,包括ll1、ll2):pdo是实现开关foup门并进行检测(mapping)
功能的模块。当物料进机台被放置在pdo上时,pdo执行开门操作对foup中的晶圆做mapping校验,避免物料残留,和晶圆放置异常。
24.存储单元(stocker),一个stocker可以包括16个shelf:stocker是用于临时放置foup的缓存区,stocker上最多可以放置16个foup,stocker上放置前开式晶圆传送盒(front opening unified pod,foup)的部件称为架子(shelf),每个shelf上有一个传感器可以检测当前是否有foup存在。该部件主要是用来支持多任务同时运行的功能。
25.其中,前开式晶圆传送盒(front opening unified pod,foup)。这是半导体制程中被使用来保护、运送、并储存晶圆的一种容器,而其主要的组成元件为一个能容纳晶圆的前开式容器并有一个前开式的门框专司容器的开闭,是一种自动化传送系统重要的传载容器。
26.半导体工艺设备包括依次设置的多个校准台(tank)模块,如12个tank模块,tank模块就半导体工艺设备来说可以称之为工艺槽。表示为集合tk={tank1(t1),tank2(t2),tank3(t3),tank4(t4),tank5(t5),tank6(t6),tank7(t7),tank8(t8),dry,wtc,iobuffer,eewd}。
27.其中,dry为干燥工艺单元,用于对物料执行drying工艺操作,确保工艺任务(即job)完成后的物料是干燥的。
28.校验模块(iobuffer)用于对物料执行align校准操作。
29.暂存模块(wtc)用于将同一任务的物料合并放置在一个tank中以同时进行工艺操作。
30.eewd,用于对抓取不同酸槽中物料的机械手执行洗手操作,降低机械手对不同酸工艺单元中酸的污染。
31.12个tank:包含wtc、iobuffer(在iobuffer中需要做align校准)、eewd(洗手槽)及用于进行相应的工艺操作的tank。示例性地,tank1、tank3、tank5、tank7分别是酸工艺槽,tank2、tank4、tank6、tank8则是水槽,dry为干燥工艺槽。tank1与tank2,tank3与tank4、tank5与tank6、tank7与tank8之间均有各自的dual手,存在dual手的tank之间wafer的传输可通过dual手传输,其余tank中wafer的传输均通过wtr传送,最后通过干燥槽干燥后传出机台。
32.半导体工艺设备可以包括一个fouprobot机械手、一个whr机械手、一个wtr机械手、多个duallifter机械手。
33.foup机械手:下文中简称为fr手,负责对foup的传送。foup机械手可以在shelf与pdo之间进行双向移动,一次抓取一个foup。任务中主要实现:启动任务后,根据晶圆的工艺路径将foup从stocker传送至pdo1或pdo2,任务结束后,将foup传送至缓冲区stocker。该机械手仅仅在pdo1、pdo2、stocker区域内活动。
34.晶圆抓取机械手(wafer handling robot,whr)为负责干燥的物料的传送的机械手,whr可以在pdo与wtc之间进行双向移动,whr一次可以抓取一组wafer。负责将pdo上的foup中的晶圆抓取到wtc中。该机械手仅仅在wtc与pdo区域之间活动。
35.晶圆传输机械手(wafer transferringrobot,wtr):负责不使用双槽机械手(duallifter)的tank之间的潮湿物料的传送,wtr可以在不使用双槽机械手(duallifter)的两个tank模块之间进行双向移动。负责晶圆的传送,主要负责在tank和tank之间传送晶
圆。该机械手的仅仅在tank模块区域活动。
36.双起重机械手(duallifter robot):下文简称dual手,负责潮湿物料的传送的机械手,dual手可以在与其对应的固定的两个tank之间进行双向移动。
37.上述设备的4个dual手分别存在tank1与tank2之间,只负责tank1与tank2之间物料的传输、tank3与tank4之间、只负责tank3与tank4之间物料的传输、tank5与tank6之间的dual只负责tank5与tank6之间物料的传输、tank7与tank8之间的dual只负责tank7与tank8之间物料的传输。
38.本发明实施例涉及的半导体工艺设备在同一批次工艺进程中加工多个物料,每一个物料对应一个待启动任务。比如,物料可以为晶圆,一个待启动任务用于加工一个晶圆,待启动任务在加工晶圆的过程中均包括多道工序。
39.示例性地,待启动任务的多道工序具体可以如下:
40.shelf

pdo1/pdo2

wtc

iobuffer

tank3-tank4-wtr

tank5-tank6-wtr

tank1-tank2-wtr

tank7-tank8-wtr

dry-wtr

wtc

pdo1/pdo2

sh elf。
41.任务包括的多道具体工序流程,具体可以参照图2所示的流程图:
42.步骤1、fr手将foup从shelf传送至pdo做扫描(mapping),并打开foup门。
43.步骤2、whr手将pdo上foup中的晶圆传送至wtc中。其中,待启动任务可以指定pdo1和pdo2中的单个pdo进行扫描。
44.步骤3、fr手将pdo上的空foup放回stocker对应的shelf上。
45.步骤4、wtr手将wtc中晶圆放置到iobuffer中进行校验操作。
46.步骤5、所有晶圆在机台内按照工厂端的recipe完成工艺。
47.步骤6、完成工艺后送去干燥槽干燥。
48.步骤7、最后通过干燥槽干燥后传出机台。
49.步骤8、fr手将shelf上的空foup传送至pdo。
50.步骤9、工艺结束后,whr将wtc上的晶圆移至pdo上的foup内。
51.步骤10、fr手将pdo上的foup放回stocker对应的shelf上。
52.本发明实施例提供的任务调度方法至少可以应用于下述应用场景中,下面进行说明。
53.目前,半导体工艺设备在同一批次的工艺进程中需要加工多个物料,每一个物料对应一个待启动任务。待启动任务在加工物料的过程中又都包括多道工序。由于已经启动任务的工序是在不断被完成的,所以可能出现已启动任务和待启动任务在第一时刻是不兼容的,但随着已启动任务的工序进度的更新,在第一时刻之后的第二时刻,已启动任务和待启动任务是可以兼容的。
54.基于现有技术方案,通常在等待启动的任务列表中挑选与已经启动的任务能够兼容且等待时间最久的任务,进行启动。基于此,一方面,随着已启动任务的进行,已启动任务的工序进度是在实时更新的,但是判断兼容的过程没有更新,这会造成兼容判断不准确,进而导致原本可以启动的任务无法启动;另一方面,无法对待启动任务进行规划,也就无法得到待启动任务的准确的启动时刻。
55.因此,基于现有技术方案,无法实现任务调度的实时最优化,会造成资源浪费,进而导致设备产能低下。
56.基于上述应用场景,下面对本发明实施例提供的任务调度方法进行详细说明。
57.图3为本发明实施例提供的一种任务调度方法的流程图。
58.如图3所示,该任务调度方法可以包括步骤310-步骤330,半导体工艺设备在同一批次工艺进程中加工多个物料,每一个物料对应一个待启动任务,待启动任务均包括多道工序,具体如下所示:
59.步骤310,获取所有待启动任务的任务数据;任务数据包括待启动任务对应的所有工序对应的工序号、加工时长、加工位置以及加工位置停滞时长,其中,工序号为工序编码,加工时长为完成每道工序所需的时长,加工位置为进行每道工序时,物料在半导体工艺设备中的位置,加工位置停滞时长为物料在完成每道工序后在对应加工位置的停滞时间。
60.步骤320,将每个待启动任务的任务数据均输入至任务调度模型,输出每个待启动任务的启动时刻;任务调度模型以执行所有待启动任务所需总时长最短为目标函数,任务调度模型的约束条件与任务数据相关联。
61.步骤330,根据每个待启动任务的启动时刻,对待启动任务进行任务调度。
62.本发明提供的任务调度方法中,通过获取包括待启动任务对应的所有工序对应的工序号、加工时长、加工位置以及加工位置停滞时长的任务数据;将任务数据输入至以执行所有待启动任务所需总时长最短为目标函数且约束条件与任务数据相关联的任务调度模型,输出每个待启动任务的启动时刻;这里,以最小化总加工时长为目标对所有待启动任务进行规划,结合任务数据可以得到每一个待启动任务的启动时刻,可以高效有序的规划任务的启动,最后,根据启动时刻,对待启动任务进行任务调度,可以提升任务完成效率,进而提升设备产能。
63.下面,对步骤310-步骤330的内容分别进行描述:
64.涉及步骤310。
65.获取所有待启动任务的任务数据;任务数据包括待启动任务对应的所有工序对应的工序号、加工时长、加工位置以及加工位置停滞时长。
66.其中,工序号为工序编码,如:1、2、3
……
,或者a、b、c
……

67.加工时长为完成每道工序所需的时长,不同工序对应的加工时长不同;其中,各个加工位置的加工时长是预设值。如pdo的加工时长是从开foup门开始,完成扫描过程,到关闭foup门为止所经过的预设时长d,晶圆架的加工时长为0,wtc的加工时长为0。
68.加工位置为进行每道工序时,物料在半导体工艺设备中的位置;各个加工位置的停滞时长是预设值。
69.加工位置停滞时长为物料在完成每道工序后在对应加工位置的停滞时间。
70.以扫描模块为例,说明上述涉及到的任务数据。对于任务数据“2,5秒,pdo,10秒”,说明:工序号为2号的工序,加工时长为5秒,加工位置在扫描模块(pdo),加工位置停滞时长为10秒。
71.一种可能的实施例中,为了更准确地构建任务调度模型,可以对半导体工艺设备进行分析,明确该设备中可能出现的工序和流程,步骤310之前,方法还包括:
72.分析半导体工艺设备,得到设备信息;设备信息至少包括:半导体工艺设备的硬件信息,由半导体设备加工的物料,以及待启动任务包括的多道工序;设备信息用于构建任务调度模型。
73.半导体工艺设备的硬件信息,硬件信息可以一定程度的确定工序的设置情况;由半导体设备加工的物料,不同物料的加工工序不同,因此需要明确半导体设备加工的物料;待启动任务包括的多道工序,每个待启动任务包括的多道工序可能各不相同,为了准确调度,所以需要明确待启动任务包括的多道工序。
74.由此,通过分析半导体工艺设备,得到设备信息,然后再根据设备信息以及待启动任务的工序,构建目标函数以及构建约束条件集合,可以更准确构建任务调度模型。
75.具体地,半导体工艺设备可以为清洗机设备,物料为晶圆,加工位置包括晶圆架、扫描模块、暂存模块、校验模块、校准台以及晶圆传输机械手。
76.晶圆架(shelf)、扫描模块(pdo)、暂存模块(wtc)、校验模块(iobuffer)、校准台(tank)以及晶圆传输机械手(wtr)。
77.这里,本实施例中,建模过程将运输(移动)资源进行了规划,也即将属于运输(移动)资源的机械手,加入到了物料(晶圆)工序路径中。通过将机械手加入到物料的工序路径中,能够更加准确地建立任务调度模型。
78.涉及步骤320。
79.步骤320,将任务数据输入至任务调度模型,输出每个待启动任务的启动时刻;任务调度模型以执行所有待启动任务所需总时长最短为目标函数,任务调度模型的约束条件与任务数据相关联。
80.在一种可能的实施例中,在步骤320之前,还可以包括以下步骤:
81.构建目标函数,目标函数包括:与执行所有待启动任务所需时长相关的最小化函数;
82.构建约束条件集合,约束条件集合包括与所有待启动任务的任务数据相关的约束条件;
83.根据目标函数和约束条件集合构建任务调度模型。
84.具体地,上述涉及到的目标函数具体可以如下所示:
[0085][0086]
其中,h是物料序号,o={o1,o2,

,on}:各物料的工序集合;oh是物料h的工序数量;lt
hi
是物料h的第i道工序的结束时刻;
[0087]
表示在最晚一个完成的物料完成所有工序的结束时刻,min是最小值计算,即用于求解完成所有物料的所有工序的最早结束时刻,因此上述公式(1)用于表示所有待启动任务所需时长相关的最小化函数。
[0088]
其中,上述涉及到的根据目标函数和约束条件集合构建任务调度模型,具体可以包括以下步骤:
[0089]
基于混合整数规划对目标函数和约束条件集合进行数学建模,得到任务调度模型。
[0090]
混合整数规划(mixed integer programming,mip)指部分决策变量限制为整数的整数规划问题。
[0091]
数学建模的过程具体包括:构建变量,即任务数据,基于变量生成约束条件和目标
函数。然后通过求解器对构建的道德任务调度模型进行求解,最后输出的变量结果就是得到满足约束条件的变量最优解。
[0092]
其中,约束条件包括:
[0093]
物料的每道工序的开始时刻、加工时长以及加工位置停滞时长之和,等于物料的每道工序的结束时刻;
[0094]
物料的第i道工序的结束时刻与物料的第i道工序的加工位置停滞时长之差,等于物料的第i 1道工序的开始时刻;
[0095]
对于同一个目标加工位置,仅可实现一个物料在对应目标加工位置上加工;
[0096]
若物料的第i道工序先于另一个物料的第j道工序在目标加工位置上加工,则物料的第i道工序的结束时刻与物料的第i道工序的加工位置停滞时长之差,小于或等于另一个物料的第j道工序的开始时刻;
[0097]
其中,i,j为工序号,且均为正整数;开始时刻、加工时长,加工位置停滞时长以及结束时刻均大于或等于零。
[0098]
下面分别对上述约束条件分别进行解释说明:
[0099]
首先,为了准确计算每道工序的结束时刻,在通常的开始时刻与加工时长之和等于结束时刻的关系中,加入了停滞时长。这是因为要考虑机械手的约束,由于在工艺区只有一个机械手,当物料a在一个tank中加工完成被机械手取走后,此时机械手正在运输物料a,这个tank并不能马上再放入下一个物料b,因此,这个tank的实际释放时间并不是它完成加工被取走的时间,而是当物料a被运输到其下一个加工位置时的时间。
[0100]
以工序“shelf

pdo1/pdo2

wtc

iobuffer

tank3-tank4-wtr

tank5-tank6-wtr

tank1-tank2-wtr

tank7-tank8-wtr

dry-wtr

wtc

pdo1/pdo2

shelf”为例,当物料a在tank4中加工完成被wtr机械手取走后,此时机械手正在运输物料a,这个tank4并不能马上再放入下一个物料b。
[0101]
也就是说,从工序的开始时刻开始,在经过了加工时长,以及经过了物料在完成工序后在对应加工位置的停滞时长之后,该加工位置的工序可以真正的结束。
[0102]
因此,第一约束条件:物料的每道工序的开始时刻、加工时长以及加工位置停滞时长之和,等于物料的每道工序的结束时刻。由此,可以准确计算每道工序的结束时刻。第一约束条件具体可以如下所示:
[0103]
et
hi
d
hi
stop
hi
=lt
hi
,h∈e,i∈onꢀꢀꢀꢀ
(2)
[0104]
et
hi
:物料h的第i道工序的开始时刻;
[0105]dhi
:物料h的第i道工序的加工时长;
[0106]
stop
hi
:物料h的第i道工序加工完成后加工位置的停滞时长;
[0107]
lt
hi
:物料h的第i道工序的结束时刻。
[0108]
n={1,2,

,n}:物料集合;
[0109]
上述公式表示物料h的第i道工序的开始时刻 加工时长 物料h的第i道工序加工完成后加工位置的停滞时长等于物料h的第i道工序的结束时刻。
[0110]
其次,实际上物料的第i道工序在开始时刻起,经过物料的第i道工序的加工时长之后就完成了,此时物料是可以进入物料的第i 1道工序的状态,即物料的第i道工序的实际完成时刻等于物料的第i道工序的开始时刻与物料的第i道工序的加工时长之和,即物料
的第i道工序的实际完成时刻等于物料的第i道工序的结束时刻与物料的第i道工序的加工位置停滞时长之差。
[0111]
由于第i道工序的结束时刻等于物料的第i道工序的开始时刻、物料的第i道工序的加工时长以及物料的第i道工序的加工位置停滞时长之和。所以物料的第i 1道工序的开始时刻需要在物料的第i道工序的结束时刻减去物料的第i道工序的加工位置停滞时长得到。
[0112]
因此,第二约束条件:物料的第i道工序的结束时刻与物料的第i道工序的加工位置停滞时长之差,等于物料的第i 1道工序的开始时刻。
[0113]
第二约束条件具体可以如下所示:
[0114]
et
hi 1
=lt
hi-stop
hi
,h∈n,i∈onꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0115]
et
hi
:物料h的第i道工序的开始时刻;
[0116]
stop
hi
:物料h的第i道工序加工完成后加工位置的停滞时长;
[0117]
lt
hi
:物料h的第i道工序的结束时刻。
[0118]
n={1,2,

,n}:物料集合;
[0119]
上述公式表示物料的第i道工序的结束时刻与物料的第i道工序的加工位置停滞时长之差,等于物料的第i 1道工序的开始时刻。
[0120]
以工序“shelf

pdo1/pdo2

wtc

iobuffer

tank3-tank4-wtr

tank5-tank6-wtr

tank1-tank2-wtr

tank7-tank8-wtr

dry-wtr

wtc

pdo1/pdo2

shelf”为例,物料的在tank7加工的工序的结束时刻与物料的在tank7加工的工序的加工位置停滞时长之差,等于物料的在tank8加工的工序的开始时刻。
[0121]
接着,为了保证各道工序之间是不互相冲突的,需要限制在一个加工位置上,两个物料工序的先后顺序只能有一种情况,即对于目标加工位置k,要么物料h的工序先于物料l的工序,要么物料l的工序先于物料h的工序。
[0122]
因此,第三约束条件:对于同一个目标加工位置,仅可实现一个物料在对应目标加工位置上加工。
[0123]
第三约束条件具体可以如下所示:
[0124]
x
khilj
x
kljhi
=1,h,l∈n,i,j∈on,k∈k
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0125]
其中,
[0126][0127]
n={1,2,

,n}:物料集合;
[0128]
k={1,2,

,n}:物料加工位置集合;
[0129]
x
khilj
表示物料h的第i道工序先于物料l的第j道工序在加工位置k上加工;x
kljhi
物料l的第j道工序先于物料h的第i道工序在加工位置k上加工,由于两者之和为1,所以两者之间一个为0,一个为1,因此可知对于同一个目标加工位置,仅可实现一个物料在对应目标加工位置上加工。
[0130]
接着,为了保证各个待启动任务之间是不互相冲突的,需要限制物料的后一道工序的开始时刻不能先于与之相邻的该物料的前一道工序的实际完成时刻。因此,若物料的第i道工序先于另一个物料的第j道工序在目标加工位置上加工,则物料的第i道工序的实
际完成时刻小于或等于另一个物料的第j道工序的开始时刻。由于前述说明过物料的第i道工序的实际完成时刻等于物料的第i道工序的结束时刻与物料的第i道工序的加工位置停滞时长之差。因此,可以得到:
[0131]
第四约束条件:若物料的第i道工序先于另一个物料的第j道工序在目标加工位置上加工,则物料的第i道工序的结束时刻与物料的第i道工序的加工位置停滞时长之差,小于或等于另一个物料的第j道工序的开始时刻。第四约束条件,具体可以如下所示:
[0132]
lt
hi-stop
hi
≤et
lj
m(1-x
khilj
),h,l∈n,i,j∈on,k∈k
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0133]
n={1,2,

,n}:物料集合;
[0134]
m:很大的正数,用于实现模型线性化,示例性地,可以为完成预设数量的物料加工的总时长,预设数量远大于实际需要加工的物料数量。
[0135]
若物料h的第i道工序先于物料l的第j道工序在加工位置k上加工,则x
khilj
为1,那么第四约束条件的不等式右侧为et
lj

[0136]
因此,上述不等式表示如果物料h的第i道工序先于物料l的第j道工序在加工位置k上加工,则物料h的第i道工序的结束时刻与物料h的第i道工序加工完成后加工位置的停滞时间之差小于或等于物料l的第j道工序的开始时刻。
[0137]
若物料h的第i道工序不先于物料l的第j道工序在加工位置k上加工,则x
khilj
为0,那么第四约束条件的不等式右侧为很大的正数,不等式关系自然成立。
[0138]
最后,工序号应为正整数,开始时刻、加工时长,加工位置停滞时长以及结束时刻应该是大于或等于零的。
[0139]
因此,第五约束条件:其中,i,j为工序号,且均为正整数;开始时刻、加工时长,加工位置停滞时长以及结束时刻均大于或等于零。
[0140]
第五约束条件,具体可以如下所示:
[0141]
stop
hi
,d
hi
,et
hi
,lt
hi
≥0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0142]
上述公式,表示变量取值约束,i,j、开始时刻、加工时长,停滞时长,以及结束时刻为正整数。
[0143]
另外,考虑到晶圆传输机械手在实际的工艺过程中的运行情况,需要对晶圆传输机械手之前的工序位置的停滞时长进行约束,由于在工艺区只有一个晶圆传输机械手,当物料a在一个tank中加工完成被晶圆传输手取走后,此时晶圆传输机械手正在运输物料a,这个tank并不能马上再放入下一个物料b,因此,这个tank的实际释放时间并不是它完成加工被取走的时间,而是当物料a被运输到其下一个加工位置时的时间。
[0144]
因此上述涉及到的约束条件还可以包括:
[0145]
第六约束条件,若物料的第i 1道工序的加工位置为晶圆传输机械手,则物料的第i道工序的加工位置停滞时长为晶圆传输机械手的运行时间;
[0146]
否则物料的第i道工序的加工位置停滞时长为0。
[0147]
如果物料的第i 1道工序位置为晶圆传输机械手,那么物料的第i道工序加工完成后加工位置的停滞时间为机械手的运行时间,否则停滞时间为0。
[0148]
以工序流程“shelf

pdo1/pdo2

wtc

iobuffer

tank3-tank4-wtr

tank5-tank6-wtr

tank1-tank2-wtr

tank7-tank8-wtr

dry-wtr

wtc

pdo1/pdo2

shelf”为例,如果物料的第i 1道工序位置为晶圆传输机械手,那么物料的第i道工序加工完成后加工位置,即
tank4,tank6,tank2,tank8的停滞时间为机械手的运行时间,否则停滞时间为0。
[0149]
由此,通过控制停滞时长的值,来描述物料的第i道工序所在的加工位置实际被释放的时间,能够准确地限制的加工位置实际被释放的时间。
[0150]
第六约束条件,具体可以如下所示:
[0151]
stop
hi
=d
hi 1 if i 1 iswtrelse 0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0152]dhi
:物料h的第i道工序的加工时间;
[0153]
stop
hi
:物料h的第i道工序加工完成后加工位置的停滞时间
[0154]
上述公式表示如果物料h的第i 1道工序位置为wtr机械手,那么物料h的第i道工序加工完成后加工位置的停滞时间为机械手的运行时间,否则停滞时间为0。
[0155]
在一种可能的实施例中,步骤320中,具体可以包括以下步骤:
[0156]
对任务调度模型进行计算,得到每个待启动任务的启动时刻以及执行所有待启动任务所需的最小总时长。
[0157]
示例性地,机台中正在运行的任务为任务1,任务1包括多道工序,而此时有一个任务2也包括多道工序,任务1的工序和任务2的工序是部分重合的,因此,任务1与任务2不兼容,经过上述任务调度模型的求解结果模型得到变量et
hi
的结果,就可以获得任务2的第1道工序的开始时间,也就是任务2的启动时刻。
[0158]
由此,通过对任务调度模型进行计算,可以得到每个待启动任务的启动时刻,即便正在机台中的任务与待进入机台的任务工艺路径存在冲突,仍然可以给出一个具体的启动时刻,并且该启动时刻不会带来死锁问题,因为任务调度模型可以得到每一个任务在设备的移动情况,基于此给出的任务启动时刻必然不会使任务发生死锁。所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。根据本发明实施例,不会带来上述死锁问题。
[0159]
涉及步骤330。
[0160]
步骤330,根据每个待启动任务的启动时刻,对待启动任务进行任务调度。
[0161]
经过本发明实施例中任务调度模型的求解结果模型得到每个待启动任务的启动时刻,可以确定待启动任务的第一道工序的开始时刻,也就是待启动任务的启动时刻。
[0162]
本发明实施例,以最小化最大物料加工时间为目标的混合整数规划模型高效解决了寻找任务启动时机的问题,以产能最高为目标对所有待启动任务进行规划,模型中的变量et
hi
表示的是物料h的第i道工序的开始时刻,那么对于每一个物料的第0道工序的开始时间,就是它的启动时刻。其中,变量et
hi
是通过求解模型后输出的结果之一。而且可以避免任务启动而带来的死锁问题,还可以极大提升生产效率。
[0163]
综上,在本发明实施例中,通过获取包括待启动任务对应的所有工序对应的工序号、加工时长、加工位置以及加工位置停滞时长的任务数据;将任务数据输入至以执行所有待启动任务所需总时长最短为目标函数且约束条件与任务数据相关联的任务调度模型,输出每个待启动任务的启动时刻;这里,以最小化总加工时长为目标对所有待启动任务进行规划,结合任务数据可以得到每一个待启动任务的启动时刻,可以高效有序的规划任务的启动,最后,根据启动时刻,对待启动任务进行任务调度,可以提升任务完成效率,进而提升设备产能。
[0164]
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组
合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0165]
参照图4,示出了本发明实施例的一种半导体工艺设备的结构框图,该半导体工艺设备在同一批次工艺进程中加工多个物料,每一个物料对应一个待启动任务,待启动任务均包括多道工序,该半导体工艺设备410,包括,
[0166]
控制器411,用于获取所有待启动任务的任务数据;任务数据包括待启动任务对应的所有工序对应的工序号、加工时长、加工位置以及加工位置停滞时长,其中,工序号为工序编码,加工时长为完成每道工序所需的时长,加工位置为进行每道工序时,物料在半导体工艺设备中的位置,加工位置停滞时长为物料在完成每道工序后在对应加工位置的停滞时间;
[0167]
将每个待启动任务的任务数据均输入至任务调度模型,输出每个待启动任务的启动时刻;任务调度模型以执行所有待启动任务所需总时长最短为目标函数,任务调度模型的约束条件与任务数据相关联;
[0168]
根据每个待启动任务的启动时刻,对待启动任务进行任务调度。
[0169]
在本发明一个可选的实施例中,控制器411,还用于:
[0170]
构建目标函数,目标函数包括:与执行所有待启动任务所需时长相关的最小化函数;
[0171]
构建约束条件集合,约束条件集合包括与所有待启动任务的任务数据相关的约束条件;
[0172]
根据目标函数和约束条件集合构建任务调度模型。
[0173]
在本发明一个可选的实施例中,约束条件包括:
[0174]
物料的每道工序的开始时刻、加工时长以及加工位置停滞时长之和,等于物料的每道工序的结束时刻;
[0175]
物料的第i道工序的结束时刻与物料的第i道工序的加工位置停滞时长之差,等于物料的第i 1道工序的开始时刻;
[0176]
对于同一个目标加工位置,仅可实现一个物料在对应目标加工位置上加工;
[0177]
若物料的第i道工序先于另一个物料的第j道工序在目标加工位置上加工,则物料的第i道工序的结束时刻与物料的第i道工序的加工位置停滞时长之差,小于或等于另一个物料的第j道工序的开始时刻;
[0178]
其中,i,j为工序号,且均为正整数;开始时刻、加工时长,加工位置停滞时长以及结束时刻均大于或等于零。
[0179]
在本发明一个可选的实施例中,半导体工艺设备为清洗机设备,物料为晶圆,加工位置包括晶圆架、扫描模块、暂存模块、校验模块、校准台以及晶圆传输机械手。
[0180]
在本发明一个可选的实施例中,约束条件还包括:
[0181]
若物料的第i 1道工序的加工位置为晶圆传输机械手,则物料的第i道工序的加工位置停滞时长为晶圆传输机械手的运行时间;
[0182]
否则物料的第i道工序的加工位置停滞时长为0。
[0183]
在本发明一个可选的实施例中,控制器411,具体用于:对任务调度模型进行计算,得到每个待启动任务的启动时刻以及执行所有待启动任务所需的最小总时长。
[0184]
在本发明一个可选的实施例中,控制器411,还用于:分析半导体工艺设备,得到设备信息;设备信息至少包括:半导体工艺设备的硬件信息,由半导体设备加工的物料,以及待启动任务包括的多道工序;设备信息用于构建任务调度模型。
[0185]
在本发明一个可选的实施例中,控制器411,具体用于:基于混合整数规划对目标函数和约束条件集合进行数学建模,得到任务调度模型。
[0186]
在本发明一个可选的实施例中,半导体工艺设备410还包括:
[0187]
求解器,用于对任务调度模型进行计算,得到每个待启动任务的启动时刻以及执行所有待启动任务所需的最小总时长。
[0188]
综上,在本发明实施例中,通过获取包括待启动任务对应的所有工序对应的工序号、加工时长、加工位置以及加工位置停滞时长的任务数据;将任务数据输入至以执行所有待启动任务所需总时长最短为目标函数且约束条件与任务数据相关联的任务调度模型,输出每个待启动任务的启动时刻;这里,以最小化总加工时长为目标对所有待启动任务进行规划,结合任务数据可以得到每一个待启动任务的启动时刻,可以高效有序的规划任务的启动,最后,根据启动时刻,对待启动任务进行任务调度,可以提升任务完成效率,进而提升设备产能。
[0189]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0190]
本发明实施例还提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述一种任务调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0191]
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述一种任务调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0192]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0193]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0194]
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0195]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设
备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0196]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0197]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0198]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0199]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0200]
以上对本发明所提供的一种任务调度方法和一种半导体工艺设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献