Data Dictionary
>
FPSBASE Views
> FPSBASE.WIP_WAFER_HIST_LOOP
View FPSBASE.WIP_REF_LOTS_COLS_W_DD_PRTN
This is the second refreshed table in our WIP_LOTS hierarchy. This view includes columns which either depend on data_date or which use a "partition by" clause. That means that when we refresh this table repeatedly in the RealTime job that nearly all records will be updated even those for lots which had no activity. Fortunately this table has a small number of columns so it should refresh relatively quickly. All columns which do not depend on data_date and which do not use a "partition by" clause are in WIP_LOTS_COLS_NO_DD_PRTN. Since nearly every record in this table will be different on each refresh, there is a question to use DBPR or DBPM. We found that DBPR is faster (13 sec to 18 sec) but also uses quite a bit more CPU according to ADM_TOP_SQL_SNAPSHOT. We generally use DBPR but either is acceptable, especially since we improved ADM_LOAD_EVENT_HIST_VIA_APD to call this with ADM_TABLE_MATCH_COMMIT in DWH-2755. The four tables WIP_LOTS_REALTIME, WIP_LOTS_STATIC, WIP_LOTS_COLS_NO_DD_PRTN, and WIP_LOTS_COLS_W_DD_PRTN are joined together in the WIP_LOTS_PLUS view which is used by nearly everything including DASH_P_WIP_LOTS. The initial logic in this view gives a rough estimate of when lots which have not started processing will complete their current step. This rough estimate only applies to lots which do not have an estimated completion from an external reservation nor from Scheduler. Obviously when we have either of those more accurate estimates we will use them. This rough estimate is not expected to perfect but the main goal is to smooth out WIP bubbles so that we do not estimate that all lots waiting at a step will arrive to the next step at the same time. Here is how this rough estimate logic works: 1) We find all lots which have estimated complete times. These include lots which are processing, which have an external estimate, or which have a Scheduler end time. 2) We find the latest of these estimated complete times for the process family and consider that time to be the starting point for lots without estimates. 3) We estimate the interval at which lots will move out of this process family. Note this has nothing to do with tools because we do not know the tool. In fact, this estimate move interval for the process family is approximately the estimated complete interval for each tool divided by the number of tools. Then we adjust this estimate specifically for each lot based on its throughput and on the current availability of tools in the process family. This is not perfect nor is it intended to be but it is reasonable. 4) We cumulate this estimated move interval for all lots in the process family sorted by status (dispatched first, hold last), priority, and age. 5) We add this cumulate after the last estimate from #1. EXAMPLE: Lot A1 is processing on tool A and estimated to complete at 1:00. Lot A2 is also processing on tool A estimated to complete at 2:00. Lot B1 is processing on tool B and estimate to complete at 1:30. Lot B2 is dispatched to tool B with no estimated complete. Lots 4 and 5 are waiting. The last estimated complete for the process family is 2:00. Estimated move interval for the process family is 25 minutes per lot so the cumulated interval is 25 for lot B2, 50 for lot 4, and 75 for lot 5. We add this cum to the last estimated complete of 2:00 so we get an estimated complete of 2:25 for lot B2, 2:50 for lot 4, and 3:15 for lot 5. Note how we do not care which tool lots B2, 4, and 5 will use. In fact, B2's estimate is based on the last estimated complete of 2:00 from tool A even though we know the lot is dispatched to B.
|
Column |
Comment |
|---|---|
|
LOT |
A lot is a group of units that process together. Usually lot_id or lot_number in MES. All units in a lot are in the same carrier but there may be multiple lots in a carrier. (* inherited from FPSINPUT.WIP_LOTS_STATIC) |
|
CRITICAL_RATIO |
The critical ratio (days until due / days of CT left) for the lot (* inherited from FPSAPP.SCH_W_H_S_LOTS) |
|
CURR_STEP_EARLIEST_COMP_INST |
|
|
CURR_STEP_EST_COMP_INST |
|
|
CURR_STEP_EST_COMP_REASON |
|
|
DAYS_BEHIND |
|
|
EST_BEG_INST_TOOL_FOR_TTS |
|
|
EST_COMP_INST_BANK |
|
|
EST_COMP_INST_CUM_MOVE |
|
|
EST_COMP_INST_HOLD |
|
|
EST_COMP_INST_IF_BEG_NOW |
|
|
EST_COMP_INST_SCHED |
|
|
EST_COMP_INST_SLOW |
|
|
EST_COMP_INST_STAGING |
|
|
EST_COMP_INST_TOOL |
|
|
EST_DISP_INST_TOOL_FOR_TTS |
|
|
EST_END_INST_TOOL |
|
|
EST_END_INST_TOOL_FOR_TTS |
|
|
EST_END_TOOL_REASON |
|
|
EST_NEXT_BEG_TOOL_REASON |
|
|
EST_NEXT_BEG_INST_TOOL |
|
|
EST_RELEASE_INST |
|
|
EXP_OUT_BY_ROUTE_DAYS_BEHIND |
|
|
EXP_OUT_BY_ROUTE_INST |
|
|
EXP_OUT_BY_ROUTE_START_WEEK |
|
|
EXP_OUT_BY_ROUTE_WEEK |
|
|
FIRST_WFR_BEG_INST |
Time when the first wafer of the job started processing. (* inherited from FPSBASE.WIP_STEP_HIST) |
|
FIRST_WFR_END_INST |
Time when the first wafer of the job finished processing. (* inherited from FPSBASE.WIP_STEP_HIST) |
|
IS_NMV_NOW |
|
|
IS_QUEUE_TIMER_EXPIRED |
|
|
LAST_END_PROC_INST_FOR_TTS |
|
|
LAST_WFR_BEG_INST |
Time when the last wafer of the job started processing. (* inherited from FPSBASE.WIP_STEP_HIST) |
|
LAST_WFR_END_INST |
Time when the last wafer of the job finished processing. (* inherited from FPSBASE.WIP_STEP_HIST) |
|
NEXT_BEG_INST_TOOL_FOR_TTS |
|
|
NMV_SORT_INST |
|
|
NUM_WFRS_BEG |
|
|
NUM_WFRS_ENDED |
|
|
OUT_INST_EXPECTED |
|
|
OVR_PROCESS_STATE_DETAILS |
This column will override the process state details for the Dashboard if populated. It is important to note that this column is technically independent from the process_state which is calculated based on events from WIP_EVENT_HIST. For example, immediately after a lot is dispatched, this column might still have a message about WAIT when the process state just changed to DISP. To reduce the duration of these discrepancies, you should refresh WIP_LOTS_VERIFY in the RealTime job or at least every 1-2 minutes if you populate this column. (* inherited from FPSINPUT.WIP_LOTS_VERIFY) |
|
OVR_STEP_COMP_INST |
Specify a time when the lot will complete the step. We will use this mainly for banks and staging steps with a release plan. For steps that require processing on a tool, please use ovr_est_end_inst instead. (* inherited from FPSINPUT.WIP_LOTS_VERIFY) |
|
PULL_POINT_DETAILS_W_FILLIN |
|
|
PULL_POINT_INST_W_FILLIN |
|
|
PULL_POINT_PACE_DETAILS |
|
|
PULL_POINT_PACE_INST |
|
|
QUEUE_TIMER_DESCRIPTION |
|
|
QUEUE_TIMER_DISPLAY |
|
|
QUEUE_TIMER_REMAIN_SEC |
|
|
RN_BY_TOOL_FOR_TTS |
|
|
SCHEDULE_STATUS |
|
|
SCHEDULE_STATUS_COLOR |
|
|
SHOULD_HIGHLIGHT_AGE_FOR_HOLD |
|
|
STEP_HOLD_SEC |
|
|
STEP_HOLD_SEC_CURR_DAY |
|
|
STEP_HOLD_SEC_CURR_SHIFT |
Time on hold at the current step during the current shift (* inherited from FPSBASE.WIP_STEP_HIST) |
|
STEP_SEC_CURR_DAY |
|
|
STEP_SEC_CURR_SHIFT |
|
|
TIME_TO_NEXT_MOVE |
|
|
WAIT_SEC_TO_SCHED |
The lot may be scheduled but must not be allowed to dispatch or start until this number of seconds has elapsed. (* inherited from FPSINPUT.WIP_LOTS_STATIC) |
|
WAIT_TO_SCHED_REASON |