MBS2TIFF Web page logo

Experimental Results - MEBES Clip Extraction

Now let's run some experiments to get a feel for the clip rates. The first step will be to create a suitable MEBES file.

Synthesized MEBES File

We synthesized a large MEBES file that has the following properties:

the 82 GB Test MEBES file

Pattern File Size: 82 GB
Pattern File Extents: 90,000 x 90,000 um
Pattern File Grid: 1 nm
Job Deck Pattern Grid: 10 nm
Number of segments: 278
Number of stripes/segment: 8790 max possible for 90,000 um
Stripe width (um) 323 um
Stripe height (micron) 10.26 um
Density of polygons per 25 x 25 um window: varies from 3,000 to 18,000

The Job Deck

We created a very simple job deck to place this chip into the center of a reticle. While this is not absolutely necessary, it seems a reasonable thing to do in order to more accurately model the data a customer might have on hand.

* 2016/08/03 
*SCALE 0.0050000000000,1
CHIP 003,(3,001A010-P0-02,AD=0.01,SF=1.0)
ROWS 75000,1,0/75000,1,0

Clip Experiment 1: Bottom Row

experimental flow

In this experiment we created a list of 1000 25x25 um clips running across the bottom of the active area. We chose this arrangement of clips because we know that this will result in the minimum traversal of the MEBES data and thus will isolate the part of the program responsible for extracting polygons (and rasterizing them.)


Here is a snippet of the ascii file read by MBS2TIFF which defines the windows to extract:

CWH 25.000000 25.000000    <-- CWH indicates Center, Width (mode) and Height 
                               followed by the Width and Height in um

30012.500000 32762.500000  <-- Xc,Yc of first window.
30102.565065 32762.500000  <-- Xc,Yc of second window.
30192.630130 32762.500000
30282.695195 32762.500000
30372.760260 32762.500000
30462.825325 32762.500000
30552.890390 32762.500000
119807.369870 32762.500000
119897.434935 32762.500000
119987.500000 32762.500000 <-- Xc,Yc of 1000th window

Timing Results

The mbs2tiff log file reports the time for each individual window extraction and keeps a running total of elapsed time. It takes the form:

mbs2tiff: a MEBES to GDSII/TIFF/BITMAP conversion utility, v1.34 (rcs 1.151) 2 Aug, 2016
Copyright (c) 2005-2016 Artwork Conversion Software,Inc.
(831)426-6163 info@artwork.com www.artwork.com

Begin Job: Wed Aug 03 15:01:45 2016

Mebes job deck .\demomn9_2.jb opened successfully.

Home Extents(llx lly urx ury)  : 0 0 152400 152400
Adding Mebes ROI(Region Of Interest) window : 30000.000000 32750.000000 30025.000000 32775.000000.
Adding Mebes ROI(Region Of Interest) window : 30090.065065 32750.000000 30115.065065 32775.000000.

Extracted Window [1/1000]
Window Extents: 30000.000 32750.000 30025.000 32775.000

ROI Process Time: 0h:0m:0.04s         <-- note that this is 40 milliseconds.
Total Elapsed Time: (00:00) (mm:ss)   <-- until the sum of the times exceeds 0.5 sec
                                           the elapsed time will still show zero.

Extracted Window [2/1000]
Window Extents: 30090.065 32750.000 30115.065 32775.000

ROI Process Time: 0h:0m:0.03s
Total Elapsed Time: (00:00) (mm:ss)

Extracted Window [560/1000]
Window Extents: 80346.371 32750.000 80371.371 32775.000

ROI Process Time: 0h:0m:0.13s
Total Elapsed Time: (00:57) (mm:ss)
Extracted Window [976/1000]
Window Extents: 117813.438 32750.000 117838.438 32775.000

ROI Process Time: 0h:0m:0.19s
Total Elapsed Time: (01:39) (mm:ss)

Extracted Window [977/1000]
Window Extents: 117903.504 32750.000 117928.504 32775.000

ROI Process Time: 0h:0m:0.35s
Total Elapsed Time: (01:39) (mm:ss)

Best Time:  0h:0m:0.00s [winidx:990]
Worst Time: 0h:0m:0.35s [winidx:977]
Average Time: 0.101 second per clip

Notes on Experiment 1

1. MEBES File Properties -- The MEBES file we synthesized uses mostly Manhattan trapezoids and makes use of repetition. We often see repetition in "real" MEBES data and wanted to include it now, so that any optimizations we make properly handle it.

2. Clip Output - TIFF. We output TIFF as our clip since this avoids the extra delay associated with Boolean operations on the extracted trapezoids. There are two distinct types of Boolean operations that can be implemented when producing GDSII clips: a) A clipping operation on a trapezoid by trapezoid basis and b) unionization of any touching trapezoids in the extraction window.

3. Disk I/O and OS Buffering - We are accessing an 80 GB MEBES pattern file many times. The operating system buffers disk IO but in a way that is not controlled by mbs2tiff. Further, in this experiment we are making many writes to disk to save small TIFF files.

4. Disk I/O Part II - we ran this using a mechanical hard disk where one can expect about a 100 MB/sec sustained transfer rate. Our customers will normally have their MEBES data stored on a much faster server disk array but if their workstation is connected to the server with a 1Gbps line, then 100 MB/sec is roughly the same transfer rate they can expect to achieve.

5. Hardware - these tests were run on an Intel i7-4770@3.40GHz, 16 GB installed RAM and a 1TB mechanical HDD spinning at 7200 RPM. The current model of mbs2tiff does not store the MEBES data in memory.

6. Based on the variations between individual window parameters (which appear to be at least 2:1 even for virtually identical and consecutive windows) we should not pay too much attention to those times because we believe that they vary due to quirks or hiccups in the OS. Instead we will focus on average times over a large number of windows.


The purpose of this experiment was to determine MBS2TIFF's maximum clip rate assuming:

  • The search for the required stripes was extremely fast

  • MEBES data is accessed via disk at a maximum of 100 MB/sec

  • Boolean operations do not limit throughput

  • Single Threaded Operation

Under these conditions we believe that the rate of 10 clips per second is possible for large MEBES files.

Next - P3. Reducing the Time to Arriving at the Desired Stripes ...