Commercial Machine Control using Smalltalk - Experience report. Swiss company Unaxis. He's done Smalltalk for 10 years.
Core technologies are "Thin Films". 10^-6 metres in thickness. Then etch patterns. PVD, CVD, Etch/PECVD.
They produce 300mm silicon wafers, they produce those. Their equipment then puts material down on them or removes material from their surface.
To do this, it takes hundreds and hundreds of steps. Bare Wafer -> EPI -> Implant -> CVD+ALD / PVD / Oxid Diff / RTP / Plating & Spin on -> CMP -> Mask -> Lithography -> Clean -> Strip -> Dry etch -> Other wafer fab -> Repeat up to 25 times depending on product
Radial cluster tool: multiple process modules mounted around a central material/wafer handler (robot) with one or more load modules. The rooms must be really clean, with vacuum systems otherwise the wafers become ruined. Deep space pressures inside the machines.
They can work from making marks right through to packaging in to a full CPU.
Smalltalk @ Unaxis: Develop and support control system software for fully automated production equipment designed and built by Unaxis for our customers in the Semiconductor Industry.
Development environment: Cincom VW 2.5 (moving to VW 7.1). ControlWORKS framework. Shipped first system in 1997, total systems shipped: 400+. Software team: 2 locations, 10 developers, 6 support engineers, 2 managers.
Adventa created by Texas Instruments and Gores Technology Group, May 1998. Privately owned, HQ in Plano, Texas. Over 6000 semiconductor tools online using Adventa software products. Product-line includes ControlWORKS. A comprehensive machine control software framework designed for semiconductor processing equipment. Originally designed as component of larger framework (WORKS) to manage and control an entire semiconductor factory. Written in Cincom's VisualWorks Smalltalk
The framework includes: An OO model of a machine (which could be a cluster tool, but need not be) Both generic capabilities common to all machines, and apabilities specific to a number of process types.
Frameworks for machine initalization, job management, material movement, material processing, data collection, and event and alarms.
450 packages, 3000 classes, 40000 methods. (Approx same size as VW with all its extras)
Simulation: Each machine is $5000000. A simulator is a powerful tool. The framework does simulation to let them do development and bring the software to a point where they can someone safely bring it to real hardware. They use it for training, demos, etc.. most work done int he simulator.
Machine control: Mechanism coordination (proces control, material movement), mechanism logic (finite state machines, alarm handling), Hardware interfaces
Instead of typical smalltalk code with control threads, they couldn't change things easily because they had to manage all the management threads. So over the years they moved to finite state machines. They do this by shrinking each tiny action in to a state, then call each of these little calls from their FSM framework. FSM's call FSM's call FSM's, etc. Alarms (exceptions) ripple up through the parent FSM's to decide what to do.
Priorities: 1) don't hurt people, 2) don't hurt the wafers, 3) don't hurt the machine.
Re-use is critical for them. New machines come along all the time, they don't have time to rewrite everything for each new machine. So they have Modules that have N policies and N mechanisms which have N interfaces and each policy has 1 interface. The interface then talks to N types of hardware.
Communication between images is done using a proprietary protocol and DoesNotUnderstand's. Each machine is a namespace.
Experiences: Smalltalk teams work best, better than individuals. Envy is ap owerful team environment. Wish store was more like Envy. Learning curve is challenging, difficult domain - large class libraries. Testing is a challenge, hardware is expensive, automated testing.
Names are important, names must be accurate and readable. Access to source code is critical. Simulation is a must.
Why consider anything other than Smalltalk? Hard to find people, speed? (they don't find this to be the case), Non-native widgets in the UI, marketing perspective, connecting to external software (hard in VW2.5, VW7.1 fixes).
Why use Smalltalk? High degree of reuse, generic abstractions easy, reuse across products, components in different modules, assembling complex behaviours, cross-platform compatibility, debugging.
[Q: how big are your images. A: 20-25 megabytes] [Q: how big are they when they're running. A: Machine controls: 8-10mb. CTC controller: 60-100mb] [Q: who are the competitors. A: Applied Materials, LAM, Tell]
Close to 100% of modern chips made in the world have come in to contact with Smalltalk.
Point: AMD uses Smalltalk to control their factories. THey also use Smalltalk to integrate between Java and C++ components. So, Smalltalk all the way down to the wafer at AMD.