【半導體測試】為什麼 STDF 二進位格式比文字檔(CSV/XML)小得多?
【半導體測試】為什麼 STDF 二進位格式比文字檔(CSV/XML)小得多?
一、海量測試數據的儲存難題
半導體量產測試(Wafer Test / Final Test)會產生數百萬、甚至數千萬筆的晶片數據。STDF(Standard Test Data Format)採用二進位(Binary)架構,其檔案體積能比傳統的文字模式(CSV、TXT)縮減數倍,核心原因有以下三個:
二、STDF 檔案體積極小化的核心原因
● 1. 數字儲存:從「按字數算錢」變成「包月吃到飽」
這是兩者在記憶體與硬碟空間效率上最大的差異。
文字模式(如 CSV): 它是看你寫幾個字,就佔用幾個位元組(Byte)。例如儲存測試數值 123.4567,文字模式必須把 1、2、3、.、4、5、6、7 這 8 個字元個別存下來,總共需要 8 個位元組。如果數字越長、小數點後位數越多,檔案就會越肥。
二進位模式(STDF): 它採用標準的 4 位元組浮點數(Float)。它就像在硬碟裡畫好一個「固定大小的格子」,不論你存的是 1.0、123.4567 還是 99999.8888,電腦在底層通通只使用 4 個位元組 的空間來包裝,直接省下 50% 以上的空間。
💡 4 個位元組為什麼能容納所有大小的數字?
因為電腦使用了類似「科學記號」的魔法(IEEE 754 標準)。它將 4 個位元組(32 個 0 與 1)拆成三個部門合作:
- 正負號(1 位元):記錄正或負。
- 指數(8 位元):記錄「大小範圍」(2 的幾次方),負責讓小數點左右大挪移。
- 尾數(23 位元):記錄「核心數字長相」。
不論數字再大(如 1234500000)或再小(如 0.00000123),它都只記錄核心數字與縮放大小,因此空間永遠固定是 4 個位元組。這在半導體測試(精度要求在 6~7 位有效數字)的場景中,是最完美的平衡。
● 2. 結構設計:0 冗餘,100% 只留給有效數據
文字模式(CSV / XML / JSON): 為了讓人類讀得懂,文字檔塞滿了非數據的「輔助字元」。CSV 需要大量的逗號(,)與換行符號;XML 則充滿了重複的標籤(如 <Param>...</Param>),這些雜訊往往比實際數據還要大。
STDF 模式: 採用 「型態-長度-內容」(Type-Length-Value) 的固定結構。檔案直接告訴系統:「接下來這段資料有 20 個位元組,前 4 個位元組是測試編號,後 16 個位元組是測試結果。」因為一切靠精準的位元組計數定位,STDF 完全不需要任何逗號、引號或換行符號。
● 3. 欄位名稱不重複儲存
在測試檔案中,同一個測試項目(例如:VCC_Current_Max)會被重複檢查百萬次。
CSV 檔: 每一行晶片資料可能都要重複寫一次 "VCC_Current_Max", 1.23。
STDF 檔: 在檔案開頭的指標紀錄(PMR/PGR)中定義一次:「編號 #5 叫做 VCC_Current_Max」。接下來幾百萬筆的測試結果裡,只要標記 #5, 1.23 即可,欄位名稱不佔用重複的空間。
三、實務上的檔案體積對比
在相同測試資料量下,各格式的體積與特性表現如下:
| 檔案格式 | 相對體積 | 優點 | 缺點 |
|---|---|---|---|
| STDF (原始二進位) | 1x (基準) | 體積小、讀寫效率高、半導體業界標準。 | 人類無法直接用記事本閱讀。 |
| CSV (文字模式) | 3x ~ 5x | 用 Excel 就能打開,通用性高。 | 檔案臃腫、資料量大時開啟極慢。 |
| XML (文字模式) | 10x 以上 | 結構清晰、可讀性極佳。 | 充斥重複標籤,極度臃腫。 |
業界最終兵器:
因為 STDF 結構緊湊,它非常適合進行二次壓縮。在產線上,大家最常看到的其實是 .stdf.gz 格式,透過 GZIP 壓縮後,體積會進一步縮減到原本的 10% ~ 20%,是兼顧標準化、傳輸效率與儲存成本的最優解。
💡 小結:二進位制與結構化設計讓 STDF 成為半導體測試數據的最佳載體,犧牲了一點直觀可讀性,換來的卻是海量數據時代下不可或缺的超高傳輸與儲存效能。
留言
張貼留言