专利名称:调度多机器人加工系统的制作方法
技术领域:
本发明通常涉及加工系统,以及更具体地说,涉及多机器人加工系统的调度。
背景技术:
现代的制造系统通常使用机器人来自动化加工。这些机器人系统能提供多个好处,诸如增加产量和精度。在半导体制造中,机器人系统允许复杂电子设备的制作。因为与半导体制造系统有关的成本和最终产品的值,这些系统的主要目标是最大化生产量。
发明内容
根据本发明,提供用于调度多机器人加工系统的技术。根据特定实施例,与其他技术相比,这些技术增加机器人系统的生产量。
根据特定实施例,用于加工半导体晶片的制造系统包括输入缓冲器,用于保持用于在系统中加工的晶片,输出缓冲器,用于保持系统中加工过的晶片,以及多个级,每个用来执行用于加工晶片的顺序中的一个加工步骤,每一级具有一个或多个台,每个台用来执行用于该级的加工。该系统还包括多个机器人,用于在各级、输入缓冲器和输出缓冲器之间传送晶片,每个机器人被指定级的一些,并用来根据按逆步骤顺序服务指定级的确定的调度来服务各级。
本发明的实施例提供各种技术好处。当适当地实现这些技术时,能增强机器人系统的生产率。由于制作晶片的高值,即使平均加工时间非常的小的改进也能随时间大大地增加盈利能力。此外,某些实施例提供控制多机器人系统来防止机器人之间的碰撞。这防止加工中对机器人和/或材料的高代价损坏。
本发明的其他技术优点从下述附图、说明书和权利要求,对本领域的技术人员来说是显而易见的。此外,尽管上面列举了具体的优点,不同实施例可以包括全部、一些或没有所列举的优点。
为更全面地理解本发明及其优点,结合附图,现在参考下述说明书,其中图1示例说明根据本发明的特定实施例操作的、包括机器人单元和控制器的制造系统;图2示例说明根据特定实施例操作的、包括单个机器人操作的机器人单元的制造系统;以及图3示例说明在制造过程中,用于制造系统中的机器人服务多级的方法的流程图。
具体实施例方式
图1示例说明制造系统10,具有输入缓冲器12、多个加工级14和输出缓冲器16。系统10还包括多个机器人20,用于在输入12、各级14和输出16之间传送材料。在所示的实施例中,系统10包括控制器22,用于配置和处理机器人20之间的通信。通常,系统10通过机器人20在系列级14之间搬移材料,使用一系列级14来加工材料。根据特定的实施例,每个机器人20使用确定的调度来服务一个或多个级14。例如,每个机器人20可以遵循逆加工装载算法,其中,机器人20尽快地装载每个空级14,同时按与工艺流程相反的顺序服务每个级14。因为参考这些原理描述的调度算法在加工半导体晶片的制造的加工系统中很有用,下述论述将主要集中在该应用上。然而,应理解到所公开的技术可以适用和用在许多机器人制造系统中。
在所述的实施例中,系统10包括十三级制造工艺,输入12用于保持未加工的晶片,以及输出16用于保持完成的晶片。每一级14包括一个或多个台18,每个台能独立地执行用于那一级14的加工。因此,系统10计划级14具有并行的台18。这允许系统设计者包括并行加工台18以防止瓶颈。例如,假定两级系统,其中,第二级采用第一级的两倍长。在这种情况下,在第二级内使用两个并行台能有助于防止由不同加工时间引起的瓶颈。在该图中,级14被指定标记A-M,相应地标记每一级14内的台18。因此,例如,级A包括台A1和台A2。为该示例,假定制造工艺从级A开始,以及通过连续字母直到级M。
在第一级14内,每个台18提供材料,诸如正被加工的半导体晶片的装载和卸载。因此,例如,机器人20中的一个可以处理一个或多个台18的装载和卸载。然而,在多机器人加工系统中,诸如所示的实施例,可以通过多于一个机器人20来装载和/或卸载一些级14和/或台18。因此,例如,可以指定一个机器人20装载台C1和C2,而指定另一机器人20卸载这些台。具有多个指定的机器人20的这些级14可以被称为共用级。在许多方面中,输入12和输出16可以被机器人20视为附加级14。然而,输入12可以仅要求卸载,以及类似地,输出16可以仅要求由机器人20装载。
在所示的实施例中,系统10包括三个机器人20,执行材料处理功能,包括装载、卸载和在物理位置之间传送晶片。这些机器人20的每一个表示任何适当的机械装置,包括任何适当的控制逻辑,能用来传输材料。在示例中,三个机器人20被标记为A、B和C。这些机器人提供通过各级14,从输入12至输出16移动材料。
根据具体实施例,每个机器人20被指定装载特定级14和卸载特定级14。为该论述目的,假定下述指定机器人A卸载输入12、级A、级L和级M。机器人A还装载级A、级B、级M和输出16。机器人B卸载台B、C、D、I、J和K。机器人B还装载台C、D、E、J、K和L。机器人C卸载台E、F、G和H。机器人C还装载台F、G、H和I。
该机器人指定提供四个共用级14,包括级B、级E、级I和级L。在这些共用级14的每一个中,一个机器人20装载而另一机器人20卸载。因此,例如,机器人A装载级B,而机器人B卸载级B。如将显而易见的,当输入12和输出16不一定是加工级时,机器人A可以将这些同样视为共用级。因此在加工期间,将输入12视为指定用于卸载的级,以及将输出16视为指定用于装载的级。
在操作期间,机器人20可以根据通过系统10移动晶片的多个服务算法进行操作。为最大化系统10的生产量,设计者尝试使服务算法尽可能有效地使用。为提供效率,这些服务算法通常试图最小化系统10的元件内的任何空闲时间。因为即使生产量的小的增长也会显著地增加系统10的成本效率,研究者将大量时间和费用用在开发有效的服务算法上。然而,机器人20在系统10内的潜在运动的数量实际上是无穷的。因此,找出并识别有效调度算法仍然极其困难。
已经提出的一种调度算法提供机器人20的运动的动态控制。根据这些算法,机器人20根据系统10的当前状态来确定它们的操作。例如,机器人20可以基于诸如台18已等待被服务的时间的信息,动态地识别将服务的台18。因为动态算法能响应系统10内的当前和变化条件,许多研究者觉得这些类型的算法提供优化机器人制造系统中的生产量的最大期望。然而,即使如此,当前动态调度算法在许多情况下远非最佳。
确定的调度算法,与动态调度算法相反,提供在制造工艺中将由机器人执行的一系列预定操作。当根据确定的调度算法操作时,可以使机器人20在等待台18内的加工时偶尔引入延迟。例如,假定机器人20根据调度操作,其中,下一操作要求机器人A卸载台M1,并使晶片移进输出16中。直到台M1完成晶片的加工为止,机器人20在执行所调度的操作之前进行等待。
根据特定实施例,系统10内的机器人20使用确定的调度算法,其中,每个机器人20根据周期调度进行操作。特别地,机器人20可以每个实现周期调度算法,其中,每个周期提出一系列预定操作。因此,在一些初始启动周期后,机器人20每个反复重复操作周期。在每个周期的开始和结束,系统10将处于相同的状态。即,在周期开始时,由晶片“占用”的每个台18将在周期结束时由晶片占用。通过重复操作周期,机器人20使系统10维持在稳态操作中,其中,每个周期通过系统10移动预定数目的晶片。根据特定的实施例,每个机器人20根据确定的调度进行操作,在逆工艺流程中按尽快装载的顺序服务指定级14。为示范该调度算法的操作,现在参考图2,其示例说明更简单的制造工艺。
图2示例说明制造系统40,与系统10类似,包括输入缓冲器42、多个级44和输出缓冲器46。每一级44可以包括一个或多个台48。机器人50提供在各级44之间,将材料从输入42输送到输出46中。在所示的实施例中,系统40是两级加工,以及各级被指定标记N和O。因此,例如,假定系统40在输入42处接收晶片用于加工。为开始加工,机器人50从输入42卸载晶片,然后,将晶片装载到台N中的一个。一旦在台N内完成晶片加工,机器人50可以从那一台卸载晶片,然后将晶片装载到台O中。一旦在台O内完成晶片的加工,机器人50可以从台O卸载晶片,然后将晶片装载到输出46中。此时,晶片已经通过系统40完成加工。然而,尽管该例子仅示例说明了单一晶片通过系统40移动,系统40可以同时对多个晶片进行操作。因此,在一些时刻,多个台48可以由至少一个晶片占用,其中,那些台48可以被装载、加工和/或准备卸载。
如上所述,机器人50可以根据确定的调度算法进行操作,其中,机器人50在逆加工流程中以尽快装载顺序服务各级44。对这类操作,系统40可以首先经受启动周期,其中,晶片开始流过该工艺。例如,假定系统40所有台48均为空。机器人50可以在启动周期期间执行一系列操作,使系统40进入适当的状态。在初始启动周期后,可以通过稳态操作描绘系统40,假定适当地调度机器人50。为提供稳态操作,机器人50执行操作周期,在相同的条件下开始和结束系统40。例如,假定系统40的状态是所有台48均具有装载的晶片。在一个周期期间,机器人50可以执行一系列操作来通过系统40移动晶片,当结束时,使所有台48再次由晶片占用。
为提供逆加工流程操作,机器人5以循环方式,按加工流程的逆顺序服务每一级44。对具有多个台48的那些级44,机器人50每次经过级44时服务这些台48中的一个。为论述该算法的操作,假定系统40处于当前由晶片占用所有台48的状态。作为第一操作,机器人50卸载台O以及使晶片移进输出46中。然后,机器人50尽快地装载台O。因此只要可从级N内的一个台48获得晶片,机器人50就取回那个晶片并装载级O。这时,级N内的一个台N为空。因此,机器人50从输入42取回晶片并将该晶片装载到空台N中。
此时,系统40内的所有台48均再次装载晶片。然而,因为级N包括多个并行台48,这可以被视为与初始不同的状态。例如,尽管机器人50第一遍经过级44时可以服务台O1和台N1,但机器人50的下一遍经过可以服务台O1和N2。类似地,机器人50第三遍经过级44可以服务台Q1和台N3。此时,系统40可以被视为已经返回到初始状态。因此,对该例子,在机器人50根据逆工艺调度算法操作的一个周期内,机器人50三遍经过级44,按与制造工艺相反的顺序服务级44。该操作周期将在输出46中产生三个完成的晶片。
应注意到,由该调度算法提供的周期将根据级44内的并行台48的数量,产生多个产品的加工。该数量将等于基于每一级44内的台48的数量的最小公倍数。在所示的实施例中,级N包括三个台48,而级O包括一个台48。因此,最小公倍数为3。例如,如果级N包括三个台48以及级O包括两个台48,则最小公倍数将为6。在该情况下,机器人50将执行会导致将六个加工晶片移进输出46的操作周期。尽管根据逆工艺调度算法进行操作,机器人50的每一周期将产生该最小公倍数个晶片。
再参考图1,该系统10包括各级14和机器人20的更复杂配置。在系统10内,每个机器人20可以根据用于服务其指定级14的自己的调度进行操作。根据具体实施例,每个机器人20根据用于服务其指定的级14的确定的逆工艺调度进行操作。即,每个机器人20将与工艺流程相反地工作以便服务其指定的级14。因此,机器人A将尝试按输出16、级M、级B和级A的循环顺序装载晶片。类似地,机器人B将尝试按级L、级K、级J、级E、级D和级C的循环顺序装载。机器人C将尝试按级I、级H、级G、级F和级E的循环顺序装载。
在根据该调度算法的操作中,每个机器人20将执行受上述最小公倍数决定的操作周期。因此,机器人A将执行具有两遍经过指定级14的周期,机器人B将执行具有六遍经过其指定级14的周期,以及机器人C将执行具有十二遍经过其指定级14的周期。而当每个机器人20这样根据其自己的逆工艺调度操作时,当与现有的技术相比时,系统10的最终周期能提供完成晶片的较高生产量。
为提供系统10内各种元件的配置,诸如用于机器人20的指定和调度的配置,系统10包括控制器22。控制器22可以提供系统10内操作的自动和/或手动配置。因此,例如,控制器22可以表示任何适当的中心计算机或加工设备,用于与系统10的其他元件通信并与用户或系统管理人员进行交互。
根据具体实施例,控制器22初始地提供机器人20之间的装载和卸载责任的指定。因此,不管是自动地或响应来自用户的命令,控制器22在机器人20之间划分系统10内的装载和卸载责任。然后,控制器22可以确定每个机器人20实现确定的逆工艺调度算法的特定周期。然后,控制器22能配置每个机器人20以便根据其特定调度进行操作。这为每个机器人20提供用于每一周期的一系列预定操作。
因为在多于一个机器人20之间共用一些级14,这些物理位置可以表示机器人20之间的碰撞机会。这些碰撞会导致对机器人和正在系统10内制造的产品的高成本损坏。因此,为防止这些碰撞,系统10可以实现用于机器人之间通信的一个或多个方案。这些方案允许每个机器人20识别并避免可能的碰撞。
根据特定实施例,机器人20使用中央通信平台,诸如控制器22来避免碰撞。一个这种防碰撞方案包含令牌的使用。根据该方案,每个共用级14具有准许移动物理接近那一级14的相关令牌。每当机器人20希望从那一级14装载或卸载时,机器人20必须控制相关令牌。如果那一令牌不可用,则机器人20必须等待直到该令牌变为可用为止。例如,假定级B由机器人A装载并由机器人B卸载。有时,机器人A可以请求和接收用于级B的令牌。如果机器人B希望卸载级B,机器人B必须等待直到机器人A释放用于级B的令牌为止。
另一碰撞预防方案期望在机器人20之间传送物理位置信息。根据该方案,每个机器人20能跟踪每个其他机器人20的当前位置,从而能避免可能的碰撞。例如,每个机器人20可以连续地更新在共用部件,诸如控制器22内它的当前物理位置。当确定移动时,然后每个机器人可以访问该信息来识别和避免可能的碰撞。
这些示例方案提供用于机器人20避免可能碰撞的两种技术。然而,这些技术仅提供为例子,以及系统10期望机器人20使用用于识别和避免可能的碰撞的任何适当的技术。此外,所使用的技术可以适合于解决可能在系统10内的特定类型的碰撞。因此,例如,如果能同时装载和卸载一些共用级14,则防碰撞方案不需要防止机器人20同时访问这一级14。
应理解到,系统10和系统40提供为机器人制造系统的例子,可以从实现与上述这些类似的调度算法受益。然而,尽管这些系统示例为包括用特定方式配置的特定元件,所述技术适合于实际上用在任何机器人制造工艺中。
图3是示例说明机器人20服务指定级14来实现逆工艺流程、周期调度算法的方法的流程图。根据所述调度算法,系统10初始地通过启动周期直到稳态操作是可能的。因此,在所示的方法中,机器人20在步骤80确定是否达到稳态操作。如果不是,机器人20可以识别其指定的装载级14,以及在步骤82,选择以服务具有空台18的第一指定装载级14。例如,机器人A可以检查其指定的台18(包括级A、B和M处的台18)并确定这些级14中的第一个具有空台18。机器人20可以选择来装载该空台18。
然而,如果在步骤80,机器人20确定已经达到稳态操作,则在步骤84,机器人20选择以服务最后一个服务的级14前面的其指定装载级14。例如,如果机器人A上一次装载台B1,那么,机器人A将选择服务台A1和A2中的一个。为了选择并行台18中的特定一个来装载,机器人A可以使用任何适当的技术。根据特定实施例,机器人20按循环形式服务并行台18。
在选择要服务的级14后,然后,在步骤86,机器人20确定紧接的前一级14是否由另一机器人20占用。在该步骤中,机器人20确定如果它移动到紧接的前一级14,是否将存在潜在碰撞。如果前一级未被占用,在步骤88,机器人20确定前一级是否要求在卸载之前装载。在该步骤,机器人20尝试防止共用级14处的堵塞。例如,假定共用级B处于当前被卸载状态。如果机器人B移进级B并等待完成的晶片,那么机器人A不能够装载级B。在这种情况下,机器人B将有效地锁定制造工艺。因此,通过实现步骤88,机器人20尝试防止这种死锁。
如果移动到前一级无障碍,则在步骤90,机器人20移到前一级。然后,机器人20等待晶片在那一级变为可用。为实现该等待,在步骤92,机器人20监视晶片可用性。一旦晶片变为可用,在步骤94,机器人20从前一级14卸载可用晶片,然后,在步骤96,将晶片装载到空台18中。然后,基于启动操作或周期的稳态操作,机器人20选择下一级14来服务。
因此,所示流程图提供机器人20服务指定级14以提供操作的逆工艺流程、周期调度的示例性操作方法。然而,所示的流程图仅提供操作的示例性方法,以及系统10期望机器人20使用任何适当的技术来提供逆工艺流程、周期调度。因此,系统10期望机器人20使用具有另外的步骤、更少步骤和/或不同步骤的方法,只要这些方法保持适当。例如,尽管详述了在启动期间用于操作的特定技术,系统10期望机器人20实现用于操作的任何适当的方法以达到稳态条件。同时,系统10期望机器人20使用功能性的任何适当的集中和/或分布来实现这些技术,并使用硬件和逻辑,诸如在介质中编码的软件的任何适当的组合来实现所述功能。另外,尽管由机器人20使用的调度算法可以提供一系列“预定”操作,应理解到机器人20不需要知道调度算法的特性。例如,机器人20可以使用动态确定,诸如跟踪当前选择的级14和总是移动来服务前一级14,这会产生确定的操作周期。
尽管在几个实施例中描述了本发明,可以向本领域的技术人员建议多种改变和改进,以及期望本发明包含落在本附加权利要求的范围内的这些改进和改变。
权利要求
1.一种用于加工半导体晶片的制造系统,包括输入缓冲器,用于保持用于在系统中加工的晶片;多个级,每个用来执行用于加工晶片的顺序中的一个加工步骤,每一级具有一个或多个台,每个台用来执行用于该级的加工;输出缓冲器,用于保持在系统中加工过的晶片;以及多个机器人,用于在各级、输入缓冲器和输出缓冲器之间传送晶片,每个机器人被指定各级中的一些,并用来根据按相反的步骤顺序服务指定级的确定的调度来服务各级。
2.如权利要求1所述的系统,其中,至少一级是共用级,其中,指定第一机器人装载共用级的所有台,以及指定第二机器人卸载共用级的所有台。
3.如权利要求2所述的系统,其中,第一机器人在移动物理接近共用级之前,确定物理接近共用级的运动是否可能导致与第二机器人碰撞。
4.如权利要求1所述的系统,其中,对于每个机器人,机器人根据其进行操作的调度提供具有用于该机器人的预定一系列操作的最小公倍数周期。
5.如权利要求1所述的系统,其中,对于具有多于一个台的每个级,指定装载该级的机器人按循环方式来装载各台,轮换机器人每次按与该顺序相反的顺序连续经过期间所装载的台。
6.如权利要求1所述的系统,进一步包括控制器,用来将每个机器人指定到被选级,以便将至少一个机器人指定到输入缓冲器,并将至少一个机器人指定到输出缓冲器。
7.如权利要求6所述的系统,其中,控制器进一步用来在系统的操作期间与每个机器人通信并防止机器人之间的碰撞。
8.一种用于在多机器人制造系统中加工半导体晶片的方法,所述方法包括识别多个级,每个用来执行在用于加工晶片的顺序中的一个加工步骤,每一级具有一个或多个台,每个台用来执行用于该级的加工;识别用于在各级之间传送晶片的多个机器人;指定每个机器人装载各被选级;指定每个机器人卸载各被选级;根据机器人按相反的步骤顺序服务指定级的确定的调度,来操作每个机器人。
9.如权利要求8所述的方法,其中,至少一级是共用级,该方法进一步包括指定第一机器人装载共用级的所有台,以及指定第二机器人卸载共用级的所有台。
10.如权利要求9所述的方法,进一步包括在移动第一机器人接近共用级之前,确定移动接近共用级的运动是否可能导致第一机器人和第二机器人之间的碰撞。
11.如权利要求8所述的方法,其中,对于每个机器人,机器人根据其进行操作的调度提供具有用于该机器人的预定一系列操作的最小公倍数周期。
12.如权利要求11所述的方法,其中,对于具有多于一个台的每个级,用于指定装载该级的机器人的确定的调度提供以循环方式装载各台,轮换机器人每次按与该顺序相反的顺序连续经过期间所装载的台。
13.如权利要求8所述的方法,进一步包括指定至少一个机器人卸载输入缓冲器并指定至少一个机器人装载输出缓冲器。
14.用于在多机器人制造系统中加工半导体晶片的逻辑,该逻辑编码在介质中,并当执行时用来执行下述步骤识别多个级,每个用来执行在用于加工晶片的顺序中的一个加工步骤,每一级具有一个或多个台,每个台用来执行用于该级的加工;识别用于在各级之间传送晶片的多个机器人;指定每个机器人装载被选级;指定每个机器人卸载被选级;根据机器人按相反的步骤顺序服务指定级的确定的调度,来操作每个机器人。
15.如权利要求14所述的逻辑,其中,至少一级是共用级,该逻辑进一步用来指定第一机器人装载共用级的所有台,以及指定第二机器人卸载共用级的所有台。
16.如权利要求15所述的逻辑,进一步用来在将第一机器人移动物理接近共用级之前,确定物理接近共用级的运动是否可能导致第一机器人和第二机器人之间的碰撞。
17.如权利要求14所述的逻辑,其中,对于每个机器人,机器人根据其进行操作的调度提供具有用于该机器人的预定一系列操作的最小公倍数周期。
18.如权利要求17所述的逻辑,其中,对于具有多于一个台的每个级,用于指定装载该级的机器人的确定的调度提供以循环方式装载各台,轮换机器人每次按与该顺序相反的顺序连续经过期间所装载的台。
19.如权利要求14所述的逻辑,进一步用来指定至少一个机器人卸载输入缓冲器,并指定至少一个机器人装载输出缓冲器。
20.一种用于加工半导体晶片的制造系统,包括用于识别多个级的部件,每级用来执行在用于加工晶片的顺序中的一个加工步骤,每一级具有一个或多个台,每个台用来执行用于该级的加工;用于识别用于在各级之间传送晶片的多个机器人的部件;用于指定每个机器人装载被选级的部件;用于指定每个机器人卸载被选级的部件;用于根据机器人按相反的步骤顺序服务指定级的确定的调度,来操作每个机器人的部件。
全文摘要
一种机器人制造系统,可以包括多个机器人,用于在制造工艺中的一系列级之间传送材料。为了提供改善的效率,这些机器人的每一个可以根据操作的逆工艺流程、周期调度来独立操作。
文档编号H01L21/00GK1806213SQ200480016846
公开日2006年7月19日 申请日期2004年4月12日 优先权日2003年5月16日
发明者纳塔拉贾恩·拉马纳, H.·尼尔·盖斯马尔, 切里汉·斯瑞斯卡恩达拉杨 申请人:Fsi国际公司, 得克萨斯大学达拉斯分校