Silikon böcek, hata levha


27

Geçtiğimiz yıllarda kullandığım birçok (en çok, hepsinde) mikrodenetleyicide, bazı silikon seviyesindeki hataların ve üreticilerin, mühendislere beklenmeyen davranışlarla karşılaşabileceklerini açıklayan hata levhaları sağladıkları yerde.

Neden hiç bu "hataları" düzeltmiyorlar? Ürün hala üretildiğinden ve çoğu durumda sorunu çözmek önceki uygulamaları etkilemeyeceğinden, neden sadece revize etmiyorlar? Bir çok durumda ürün stabilize edilebilir, çoğu böcek bulunabilir ve ürünün ömrünün önemli bir bölümünü ondan önce alabilir.

Çok mu zor (teknik olarak)? Pahalı?


4
Çünkü hataları düzeltmek zor olabilir.
Ignacio Vazquez-Abrams

Bazen yaparlar.
brhans

7
Aynı zamanda silikon üretimi için yeni bir maske seti üretmelerini de gerektirecektir. Maskeler, işlemin daha pahalı kısımlarından biri olabilir.
Tom Carpenter,

@ IgnacioVazquez-Abrams Hiçbir sabitleme hatası kolay değildir, onları bulmak zor kısımdır, ancak yukarıdaki durumda, zor kısımdan çoktan geçtiler ...
Fotis Panagiotopoulos

5
Geriye dönük uyumluluk. Geliştiriciler bilinçli olsun ya da olmasın bir silikon böceğini kullanabilirler. Geçen gün bu konuda bir soru vardı, birisi eski sürüm denetleyicisine sahipti ve programı çalışmayı reddetti . Sadece dikkatli kontroller yapıldıktan sonra, cihazının parça numarasının fazladan bir yolu olmadı A. Belgelendirildiği ortaya çıktı, ancak insanları şaşırtıyor.
jippie

Yanıtlar:


28

Kritik hatalar giderildi. Genellikle ürün üretime girmeden önce sabittirler. Erken örnekler kullanmıyorsanız, en kötü böcekleri asla göremeyebilirsiniz.

Hataların giderilmesi zor ve pahalıdır. Sadece bir satır RTL kodunu değiştirmiyor. Bunu yaptıysanız, zamanlama sorunlarını gidermek, tamamen yeni bir maske seti satın almak, yeni gofret üretmek, gofretleri test etmek (normalde), yeni düzeltmeleri doğrulamak ve muhtemelen ürünü yeniden niteleyebilir veya niteleyebilir. Bu aylar alır ve üzücü bir paraya mal olur. Bu nedenle, hataları doğrudan mizanpaja (tercihen tek bir metal katmana) sabitlemeye çalışırız. Bu, RTL sentezinden başlamaktan daha hızlı ve ucuzdur, ancak yine de iyi değildir.

Yine de kritik bir hatayı düzeltiyorsak, neden diğer bütün hataları da düzeltmiyoruz? Yine, bu işlem zaman alır - bir düzeltme bulup uygulamak, tasarım doğrulama testlerini tekrar başlatmak için zaman. Bu süre, bir sonraki ürünü piyasaya sürmenin daha uzun süreceği anlamına geliyor. Ve bu arada, eğer yeterince zor bakarsanız, mevcut ürününüzde neredeyse kesinlikle daha fazla hata bulacaksınız. Bu kaybedilen bir savaş. İnsanların neler olup bittiğini anlamak için eski tasarıma dalmaları gerektiğinden, uzun süredir çıkmış bir üründe hataları düzeltmek daha zordur. Null'un dediği gibi, müşterilerin ürünlerinizi sistemlerinde yeniden yetkilendirmeleri gerekebilir. Ürününüz hala geliştiriliyorsa, üretim sürümünün ertelenmesi müşteri programlarının kaymasına neden olabilir ve bu da müşterileri çok mutsuz eder.

Normalde, içeri giren hatalar yalnızca garip yapılandırmalarda meydana gelir, çok küçük sorunlara neden olur, kolay geçici çözümlere veya yukarıdakilerin tümüne sahiptir. Sadece belaya değecek kadar kötü değiller. Bir sonraki üründe bir donanım modülünü tekrar kullanırsanız, mevcut müşterileriniz zaten yazılımlarında geçici bir çözüm bulacaktır.

Yazılım araç zincirleri başka bir faktördür. Bir modül yeterince uzun süre yapışırsa, alet zinciriniz eski doğrulama testlerini tekrarlamanın başlı başına büyük bir proje haline gelmesi için yeterince değişebilir. Ve muhtemelen eski araçları da yükleyemezsiniz, çünkü artık site lisansı için ödeme yapmıyorsunuz. Ancak, modülü değiştirmediğiniz sürece, kopyalayıp yeni MCU'lara yapıştırmaya devam edebilirsiniz.

Yazılım da müşteri tarafında bir konudur. Hata düzeltmeniz herhangi bir şekilde geriye dönük uyumluluğu bozarsa, tüm müşterilerinizin kodlarını güncellemeleri gerekecek, bu da artık araçlara sahip olmayabilir.

Mikrodenetleyici geliştirmede çalışan biri olarak, size her hatayı düzeltmeyi seveceğimizi söyleyebilirim. Ancak bunu yapmaya çalışmak gelişmeyi tahmin edilemez bir şekilde geciktirir, müşterileri rahatsız eder, bir ton paraya mal olur ve hepsinin sonunda, muhtemelen başarısız oluruz.


1
+ 1, özellikle mevcut müşterilerin zaten geçici çözümlerin uygulanacağından bahsettiği için.
Null,

13

Bu genellikle masraflardan kaynaklanıyor.

Bir hatayı "düzeltirken" her zaman başka bir şeyi kırma riski vardır. Bu nedenle, üreticinin genellikle "düzeltmenin" farklı (ve hatta daha istenmeyen) bir hataya neden olmadığından emin olmak için cihazı tamamen yeniden nitelendirmesi ve yeniden nitelendirmesi gerekir. Bu para ve zaman demektir (üretici için aynı zamanda paradır). Ayrıca üreticinin, yeni bir ürün geliştirmek yerine mevcut bir ürünü tamir eden çalışanları olduğu anlamına gelir.

İlgili bir notta, bazen müşteriler, hata düzeltmenin de kendi sistemlerinde bir şeyi kırmadığından emin olmak için ürünlerindeki sabit cihazın yeniden kalifikasyonunu gerektirir . Bu onlara para ve zaman kazandırır ve müşteriler bu masrafları kabul etmeye istekli olmayabilirler - hala "buggy" versiyonunu talep edeceklerdir.

Bazı durumlarda, elbette, hatayı düzeltmek gerçekten teknik olarak zordur. Bu durumda, düzeltmek daha da pahalı.


1
+1 her zaman parayla ve daha az oranda kaynaklarla ilgilidir. Maskeler ucuz değildir, arka uç hizmetleri ucuz değildir vb.
Some Hardware Guy


@ user2813274 xkcd çok harika.
Null

1
Bir şirkette ASIC'ler üzerinde çalışırken (RTL'de, mizanpajda / arka uçta değil) bir maske setinin 3 milyon doların kuzeyinde mal olabileceğini duydum. Küçük bir ekipte / asic'te, her yeni maske seti NRE'nizi kolayca % 10 artırabilir . Her neyse, 8 yıl içinde çip geliştirirken duyduğum rakamlar için top paketi, aslında maske setini almaya hiç katılmadan.
Ross Rogers,

8

Bir parçanın büyük bir alıcısı, örneğin uçakta veya uzay gemisinde kullanmak için onayladıkları bir tasarımda kullanıyorsa, tasarımda kullanılan bileşenlerin herhangi birinde yapılacak herhangi bir değişiklik, tasarımın bir bütün olarak yeniden onaylanmasını gerektirir. Eğer tasarım silikondaki tüm hataların etrafında yeterli şekilde çalışıyorsa, silikonu revize etmek, ya müşterinin tahtasındaki tüm yeterlilik testini tekrar yapmasını, hem "sabit olmayan" hem de "sabit" parçaların tedarikini sürdürmesini gerektirebilir ya da sadece eski tasarımı üretmeye devam ediyor. Çip satıcıları alıcı listelerini yayınlamamaktadır, ancak bazı durumlarda tek bir müşteri, şirketin o müşteriyi rahatsız edecek herhangi bir şey yapmaktan kaçınabileceği belirli bir yonga talebinin yeterince büyük bir kısmını temsil edebilir.

Söylendiği gibi, bazıları uygun geçici çözümler içermeyen, başarılı parça nesillerindeki görünmeye devam eden bazı silikon hataları vardır. Muhtemelen en büyük eşim, kod yanlış bir zamanda veri iletmeye çalışırsa, Microchip'in 18Fxx bölümlerinde UART iletim mantığında bir yarış koşulu ile olur. Microchip'in önerdiği geçici çözüm, UART'ın daha önceki bir karakter için durdurma bitini göndermeye başlarken bu tür iletimin tamamlandığı zaman arasında iletim veri kaydını yüklemeye çalışmadığından emin olmak için kod sağlamaktır. devre dışı bırakıldı, aktarım-tampon-boş bir kesme işlemcisindeki kod genellikle kazandı

Microchip UART böceği gibi hataların nasıl gizlice sızabileceğini anlayabilsem de, düzeltmenin zor olmamasına rağmen: Microchip'in senkronize olmayan "iletim tamamlandı" ve "karakter yüklü" ve "karakterlerini temel alan bir" git "sinyali oluşturmasını bekliyorum. "sinyaller ve önceki sinyal, ikincisinin hemen ardından durum değiştirirse sorun yaratır (TX tampon devresinin karakter verilerini verilen bir döngüde yükleme şansını kaçırmasına neden olur, ancak TX sıralayıcısının bu döngüde yeni bir iletim başlatmasına izin verir) ; Microchip, vericinin boş olduğu ve bir karakterin yüklendiği normal durumlarda sınama gecikmeleri eklemek istemese bile, veya bir karakter yüklendikten sonra vericinin boş olması durumunda, sorun zamanlamadan etkilenmeden düzeltilebilir. bu davalarınüç NAND geçidi ve iki senkronize mandal ekleyerek. Bununla birlikte, sayısız parça, bu sorunun yayınlanmasından bu yana, böyle bir düzeltme eklenmeden gönderilmiştir.


5

Bu gerçekten şirkete ve düzeltmenin karmaşıklığına bağlı. Örneğin, bu bkz doğrularını PIC18F23K22 için. Silisyumun ilk ("A1") revizyonunu etkileyen sekiz bilinen hata olduğunu görebilirsiniz.

Bu cevabın zamanında, güncellenmiş bir "A2" revizyonu var. Orijinal sekiz böceğin üçü bu yeni devirde düzeltildi.

Diğer bir karar verme faktörü, ürünün imalat ömrüdür. Bir üretici mevcut bir kısımda belirli bir sorunu çözmemeyi seçse bile, sorunu yeni ürünlerin aynı hatalara sahip olmadığından emin olarak "çözebilir".


+1, özellikle ürünün ömrünü belirtmek için.
Null,

4

Belki bir böcek bulunduğunda zaten binlerce veya milyonlarca IC ürettiler (ancak henüz satmadı). Hepsini bir böcek yüzünden atmıyorlar.

Kitap baskısıyla karşılaştırabileceğini düşünüyorum. Kitaplar kısa sürede (günler, haftalar) tek seferde binlerce kitaptan basılmaktadır. Ancak yıllar veya on yıllar içerisinde satılmaktadır. Kitaplar çöpe atılmaz ve bir yazım hatası veya başka bir hata bulunur bulunmaz yeniden basılır. Ayrıca kitaplar için hata sayfaları basılır ve kullanıcıya verilir.

Tabii ki bilinen hatalar (yazım hataları, hatalar) bir sonraki baskıda düzeltilecektir.


Evet, bahsettiğim şey buydu. "Bir sonraki baskıda" düzeltme yapılması ...
Fotis Panagiotopoulos

IC'ler sürekli üretilmez, yani satıldıkları aynı oranda üretilmez. Bir sonraki basıma kadar, belki yıllar alabilir.
Curd

Vaov! Yıllar? ... Asla partileri çok büyük olmasa da!
Fotis Panagiotopoulos

Aslında, bir üretimden diğerine üretimin yıllar sürmesi yaygın olup olmadığından emin değilim, ancak bir üretimin tüm ürünlerinin satılması kesinlikle birkaç yıl alabilir. Elbette müşteri, satın aldığı ürünlerdeki hatalardan haberdar olmak ister.
Lor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.