Site icon The Planning master-For industrial engineer

Real time dispatch in Fabs

Real-time dispatching is used to control the flow of WIP in a FAB.
The idea is to reduce WIP bubbles by spreading the WIP across the flow as evenly as possible.
Another goal is to do the best local optimization so we can maximize throughput across the various sections (photo, etch, diffusion….).
We can do this by combining global rules with local rules:
Global rules – looks at all the WIP that is running in the FAB and prioritizes the lots.

Local rules – looks at the WIP in a specific station and optimizes the throughput (for example by picking the same type of lots to run together)

Balancing the production line (global rules)

 

Problem illustration

 

Local and global optimizations:

 

 

 

 

Things to consider

  1. There is more than 1 flow running in the FAB.
  2. Not every flow has all the layers. So it is hard to define rules that apply to all layers.
  3. The rule should be easy since we want to use it with a local rule and because we want to apply it to all the different flows and the future one too.

There can be many ways to write a global rule (I will post some of them later), here is what i did:

The idea of the global rule is that it needs to balance the line to have WIP spread across the flow in order to avoid bubbles. How do we do it? I will start with the algorithm and then explain it.

Preparation

  1. For every flow there’re defined names of layers that are similar in context. For example: diffusion 01, etch 01, etch 02, photo 01, photo 02. The name gives you the section and tools needed and the number is the number of times it is repeated. Etch 01 will be the first etch layer, Etch 02 will be the second time we have an etch layer.
  2. For every flow look for the 1X cycle time in each layer. 1X will be the actual time the lot should spend on each tool if the lot was the only lot in the Fab and shouldn’t wait for anything (the figure should be in the capacity model).
  3. For each layer define the target percentage of WIP by dividing layer 1X by the entire flow 1X. That will give us the weight of each layer in the flow. That is the% target of the layer. By multiplying it by the number of lots on that flow we will get the target WIP of the layer (for each flow).

Online dispatch

  1. For every flow calculate the target WIP of the layer by multiplying the current number of lots / number of wafers by the % target of the layer.
  2. For each layer and each flow divide the actual number of lots/wafers by the target WIP of the layer. The result is the % load of the layer.
  3. Sort the layers into 5 categories using predefined parameters (I will use my parameters, but you can do it according to the weight we want the global rules to have):
    1. Extreme loading: % load of the layer  > 180%
    2. High loading: 120% < % load of the layer < 180%
    3. Normal loading: 80% < % load of the layer < 120%
    4. Low loading: 40% < % load of the layer < 80%
    5. Extremely low loading: % load of the layer < 40%
  4. The priority we will give to the lot will be based on the layer the lot is leaving and the layer it enters.
  5. Each lot gets priority. We will call it Line balance priority, by associating it to one of the cases sorted from top priority to low priority:
    1. Going fromExtreme loading layer to Extremely low loading layer
    2. Going from Extreme loading layer to Low loadinglayer
    3. Going from Extreme loadinglayer to Normal loading layer
    4. Going from High loading layerto Extremely low loading layer
    5. Going from High loading layerto Low loading layer
    6. Going from High loading layerto Normal loading layer
    7. Going from Normal loading layerto Extremely low loading layer
    8. Going from Normal loadinglayer to Low loading layer
    9. Going fromLow loading layer to Extremely low loading layer
    10. The rest of the combination can get the same low priority.
  6. Now that each lot has global priority, we introduce another global rule: the critical ratio
  7. The critical ratiois calculated by taking the expected number of days to reach the end of the flow and dividing it by the number of days between now and the due date. The bigger the number, the higher the priority.
  8. Sort first by Line balance priority, then bycritical ratio.

 

 Local dispatch rules

The idea behind a local rule is to get the best local optimization. Get the maximum moves by batching lots with similar processes.

 

Local rules examples

Implant

Diffusion

Photo

CMP+thin films

Wet

Combining local and global rules

Local and global rules usually conterdict each other. If we run by priorities (global) we will not maximize the number of moves possible. If we run by local optimization we will create WIP bubles and hold down the speed of important lots.

So, we combine both rules and get a good mix of priorities and optimization.

How to mix global and local rules?

Run the global rule and see which process is needed most. Then run this lot and all the lots that can follow it using the local rules for optimiztaion.

How it will look like?

Suppose we are looking on the implant station:

Global rule sorts the lots based on their priorities. Global rule tell us we need to run a specific lot that uses the XXX gas. So we will run this lot first and then all the lots that uses the same XXX gas, although the rest of the lots don’t have priorites. We will change the gas when we will done processing all the lots that uses this gas, or if we have to many lots waiting for a different gas (for example in the above local rule, if we have more than 60% lots waiting for a different gas and at least 100 wafers in queue).

When changing gas we will use the global rule again to pick the next gas we need to run. There are many algorithms that we can use to improve this processes and every dispatch planner should use what works for his/her fab.

 

Compliance

In order for the dispatching to give the best results we need to follow up on the compliance of the fab supervisors. The SV, usually, will look for maximum moves at all cost because that what they are measured on. So we need to introduce a compliance KPI.

As a compliance KPI i measured the percentage of times that the SV picked the first 5 lots in the dispatch list. That was a good enough compliance, since we need to remember that he/she might have other parameters that make his choice better, and that we can not predict.

When we compare compliance between SV we can see if there is a problem with the dispatch process (all SV have low compliance) or there is a problem with a specific SV that prefer local optimization over teh global optimiztaion.

 

Summery

On this article we introduce the global rule, that allow us to balance the production line  and the local rule that optimize the moves in every station.

There are many other methods that we can combine into the dispatch such us critical ratio and RND lots in the global rules and many more in the local rules.

Please let me know if  you want to know more about this subject (please leave a comment).

I will be happy if you leave a comment or send me a note to theplanningmaster@gmail.com

Exit mobile version