data-dictionary

FPSADMIN.THP_TOOL_WEEK_HIST

Data Dictionary

>

FPSADMIN Tables

> FPSADMIN.THP_TOOL_WEEK_HIST

Table FPSADMIN.THP_TOOL_WEEK_HIST"

See comments in THP_APD_TOOL_WEEK_HIST view.

  • Schema: FPSADMIN

  • Tablespace: FPSDATAHIST

  • Foreign keys: THP_TOOL_WEEK_H_FK_STWK: START_WEEK REFERENCES FPSINPUT.CAL_WORK_WEEKS (START_WEEK)


Column

Type

Nullable

Comment

FACILITY

VARCHAR2(6)

Facility is included in almost every join in the DWH so this represents a definitive split. A route must have all steps on tools in the same facility. A tool must process all lots in the same facility. If your site has multiple buildings where lots run on routes using tools in multiple buildings then everything should be one facility. For example, multiple Fab buildings. But if your site has independent facilities like Fab and Test and Assembly where lot may progress from one to the next but on different routes then these should be different facilities. Since this column is in virtually every table it is critical that the value here is exactly matches what is in the MES if the MES has facility. Use facility_display for the display friendly name displayed in applications. See site_name comment for client/site/facility example. (* from FPSINPUT.GEN_FACILITIES)

TOOL

VARCHAR2(16)

Tool is generally just the main tool. The exception is when different entities on the tool run completely independently and it is physically impossible to run wafers of the same lot across multiple entities. In this exception case, we may want to assign the entities to different eqp_types and therefore we should define each entity as a tool. Please note that when we do this there is no indication whatsoever that these different entities are on the same tool. (* from FPSINPUT.EQP_TOOLS)

PROCESS

VARCHAR2(50)

Process defines what occurs at a step. Different steps can share the same process if they are identical. Process should normally determine allowed tools and recipe although it can be overridden by step, route, prd, lot, and experiment for exceptions. Each process is dynamically assigned to one or more eqp_type-process_family combinations with use_pct. One process_family is determined to be primary. If grouping is done correctly, a process should only be one eqp_group with no crossover. (* from FPSINPUT.RTG_PROCESSES)

EST_MACHINE_RECIPE

VARCHAR2(100)

Estimated machine recipe what we estimate will be the machine recipe based on information from the Recipe Management System. It is used in combination with process for throughput calculations and setup change penalty calculations. It is not necessary to estimate for all processes since this is always used in combination however it needs to be NA rather than blank since it is part of the primary key of most THP tables. Hopefully when this is not NA it should match the actual machine recipe logged for each lot during processing. (* from FPSINPUT.RTG_TOOL_ASSIGNMENTS)

ACTUAL_MACHINE_RECIPE

VARCHAR2(100)

Machine recipe used to process the lot as logged during processing by the tool. (* from FPSINPUT.WIP_EVENT_HIST)

EST_CH_USED

VARCHAR2(24)

Estimate of which chambers will used to process this lot based on assignments and status (* from FPSBASE.WIP_LOT_HIST)

ACTUAL_CH_USED

VARCHAR2(24)

Here is where we can log the actual_ch_used directly if we know it. We have three ways to determine actual_ch_used in WIP_LOTS_REALTIME which populates WIP_STEP_HIST: 1) Log it directly in this colum for an event where the logged_entity is the main tool. 2) Log events to each of the chambers used in WIP_EVENT_HIST. 3) Log events to each of the chambers used in WIP_WAFER_HIST. (* from FPSINPUT.WIP_EVENT_HIST)

IS_PARALLEL_OTHER_CH

CHAR(1)

NOTE: Currently this is not set and is always N! This flag is for chamber tools where the job is running on some chambers while another job is running on entirely different chambers. For example, we expect a job on chambers AB to be faster running alone than when running in parallel with another job on chambers CD.

DURABLE_THP_VARIATION

VARCHAR2(64)

When this column is populated that means that we have a choice of durable families and that processing time for the lot/recipe depends on which durable family is chosen. The most common use case is 8 pin and 16 pin probe cards. This will be blank for reticles and other cases where the throughput is not dependent on the durable. This is part of the primary key of our throughput logic where nulls are filled in as NA since PK columns cannot be null. In our first example, we have a recipe WAFER_TEST_1 that we use for a whole bunch of different prds. Each prd requires its own probe card but for throughput purposes we do not care about the prd. We just care about the recipe which is WAFER_TEST_1 and we would set duration_thp_variation to 8pin or 16pin. Then we would group all prds that use WAFER_TEST_1 and ran with an 8 pin probe card together in the same THP record. Our second example is similar to the first but for throughput purposes each prd will be different. We would set duration_thp_variation to the durable family for this case. In our third example, the recipe is different for each prd. In this case, we would set duration_thp_variation to either 8pin and 16pin or to the durable family and get the same result. (* from FPSINPUT.RTG_DURABLE_FAMILIES)

START_WEEK

DATE

Work weeks must be 7 days in duration and the start of the work week must be the start of one of the work days. (* from FPSINPUT.CAL_WORK_WEEKS)

AFTER_LAST_WFR_AVG_SEC

NUMBER(9,3)

AVG_DISCS_PER_JOB

NUMBER(3,1)

AVG_QTY_PER_JOB

NUMBER(8,1)

N

BEFORE_FIRST_WFR_AVG_SEC

NUMBER(9,3)

BOTTLENECK_CASCADE_RATE

NUMBER(4,3)

This is the maximum fraction of total process time which overlaps with the previous job, within the same data set as used for effective_cascade_rate. We make the optimistic assumption that if this tool were truly a bottleneck, suboptimal cascades could be managed in such a way that they would all be optimal. (* from FPSBASE.THP_EQPTYPE_WEEK_HIST)

BY_WFR_NUM_INTS

NUMBER(7)

BY_WFR_NUM_JOBS

NUMBER(6)

CH_TYPE_CNT

VARCHAR2(128)

N

This value is a summarizing of ch_used which we use for grouping of throughput. The assumption is that throughput will be the same if the same number of chambers of the same type are used. (* from FPSINPUT.THP_EXTERNAL)

EFFECTIVE_CASCADE_LENGTH

NUMBER(5,3)

This is the ratio of the total number of jobs to the number of non-cascading jobs. (Again, discarding outliers beyond the 10%-90% range for total process time.) (* from FPSBASE.THP_EQPTYPE_WEEK_HIST)

EFFECTIVE_CASCADE_RATE

NUMBER(4,3)

This is the weighted average of the fraction of total process time which overlaps with the previous job. This will always be less than or equal to the bottleneck_cascade_rate (outliers beyond 10%-90% for total process time are thrown out). (* from FPSBASE.THP_EQPTYPE_WEEK_HIST)

ENDED_AVG_SEC

NUMBER(6)

N

ENDED_STD_DEV

NUMBER(9,3)

EQP_TYPE

VARCHAR2(50)

N

Each tool is assigned an EQP_TYPE and all tools in the same type are identical meaning that they should run at the same throughput when running the same process with the same chamber type count. We also expect similar availability since these tools are identical. However tools in the same EQP_TYPE may have different chamber configurations and may run different groups of processes. (* from FPSINPUT.EQP_TYPES)

FIRSTU_BY_JOB_AVG_SEC

NUMBER(9,3)

N

FIRSTU_BY_JOB_STD_DEV

NUMBER(9,3)

N

FIRSTU_BY_WFR_AVG_SEC

NUMBER(9,3)

FIRSTU_BY_WFR_STD_DEV

NUMBER(9,3)

FIRST_WAFER_AVG_SEC

NUMBER(9,3)

FIRST_WAFER_STD_DEV

NUMBER(9,3)

INT_BY_JOB_AVG_SEC

NUMBER(9,3)

N

INT_BY_JOB_STD_DEV

NUMBER(9,3)

N

INT_BY_WFR_AVG_SEC

NUMBER(6)

INT_BY_WFR_STD_DEV

NUMBER(6)

IS_BATCH_THP

CHAR(1)

N

This is a critical value for throughput calculations. Throughput for batch tools is the same regardless of the qty in the batch. Throughput for non-batch tools varies based on the qty in the job. Usually this is Y when max_batch_size_carriers > 1 but not always. We can have tools who load multiple carriers together but whose throughput is calculated per unit. We can also have tools who load only single carriers but whose throughput is calculated per batch. (* from FPSINPUT.EQP_TYPES)

NUM_JOBS

NUMBER(6)

N