ข้อบกพร่องของซิลิคอนแผ่นผิดพลาด


27

ในไมโครคอนโทรลเลอร์ส่วนใหญ่ (ส่วนใหญ่, ทั้งหมด) ที่ฉันใช้ในช่วงหลายปีที่ผ่านมามีบางครั้งที่ระดับซิลิคอนบั๊กและผู้ผลิตให้วิศวกรด้วยแผ่นข้อมูล errata ซึ่งอธิบายพฤติกรรมที่ไม่คาดคิดที่พวกเขาอาจเผชิญ

ทำไมพวกเขาไม่เคยแก้ไข "ข้อบกพร่อง" เหล่านี้ เนื่องจากผลิตภัณฑ์ยังคงมีการผลิตและในกรณีส่วนใหญ่การแก้ปัญหาจะไม่ส่งผลกระทบต่อการใช้งานก่อนหน้านี้ทำไมพวกเขาไม่เพียงแก้ไขมัน? ในหลายกรณีผลิตภัณฑ์อาจมีความเสถียรพบข้อบกพร่องส่วนใหญ่และอาจมีส่วนสำคัญของอายุการใช้งานของผลิตภัณฑ์ล่วงหน้า

มันยากไหม (ทางเทคนิค)? ราคาแพง?


4
เนื่องจากการแก้ไขข้อบกพร่องอาจเป็นเรื่องยาก
Ignacio Vazquez-Abrams

บางครั้งพวกเขาทำ
brhans

7
มันยังต้องการให้พวกเขาผลิตมาสก์ชุดใหม่สำหรับการผลิตซิลิกอน มาสก์อาจเป็นหนึ่งในส่วนที่มีราคาแพงกว่าของกระบวนการ
Tom Carpenter

@ IgnacioVazquez-Abrams ไม่มีการแก้ไขข้อบกพร่องง่าย ๆ การค้นหาพวกมันเป็นส่วนที่ยาก แต่ในกรณีข้างต้นพวกเขาได้ผ่านส่วนที่ยากมาแล้ว ...
Fotis Panagiotopoulos

5
ความเข้ากันได้ย้อนหลัง นักพัฒนาอาจใช้ประโยชน์จากข้อบกพร่องของซิลิกอนไม่ว่าจะเป็นสติหรือไม่ วันอื่น ๆ ที่มีคำถามเกี่ยวกับหัวข้อนี้เป็นคนที่มีตัวควบคุมรุ่นเก่าและโปรแกรมของเขาปฏิเสธที่จะทำงาน Aแต่หลังจากการตรวจสอบอย่างระมัดระวังจะเปิดออกหมายเลขชิ้นส่วนอุปกรณ์ของเขาขาดท้ายพิเศษ มันกลายเป็นเอกสาร แต่มันทำให้ผู้คนสับสน
jippie

คำตอบ:


28

ข้อบกพร่องที่สำคัญจะได้รับการแก้ไข โดยปกติพวกเขากำลังแก้ไขก่อนที่ผลิตภัณฑ์จะเข้าสู่การผลิต หากคุณไม่ได้ใช้ตัวอย่างต้นคุณอาจไม่เคยเห็นข้อบกพร่องที่เลวร้ายที่สุด

การแก้ไขข้อบกพร่องนั้นยากและมีราคาแพง ไม่ใช่แค่เปลี่ยนรหัส RTL หนึ่งบรรทัด หากคุณทำเช่นนั้นคุณจะต้องทำการซิงโครไนซ์ทำซ้ำโครงร่างทางกายภาพปรับแต่งเค้าโครงเพื่อแก้ไขปัญหาเกี่ยวกับเวลาซื้อชุดหน้ากากใหม่ทั้งหมดผลิตเวเฟอร์ใหม่ทดสอบเวเฟอร์ใหม่ (ปกติ) ตรวจสอบการแก้ไขใหม่และ อาจเป็นลักษณะหรือมีคุณสมบัติผลิตภัณฑ์อีกครั้ง การทำเช่นนี้ใช้เวลาหลายเดือนและเสียค่าใช้จ่ายเป็นจำนวนมาก ด้วยเหตุนี้เราจึงพยายามแก้ไขบั๊กโดยตรงในโครงร่าง (โดยเฉพาะบนชั้นโลหะชั้นเดียว) สิ่งนี้เร็วกว่าและถูกกว่าการเริ่มต้นจากการสังเคราะห์ RTL แต่ก็ยังไม่ดี

หากเรากำลังแก้ไขข้อบกพร่องที่สำคัญอยู่แล้วทำไมไม่แก้ไขข้อผิดพลาดอื่น ๆ ด้วยล่ะ อีกครั้งนี้ต้องใช้เวลาในการคิดและใช้การแก้ไขเวลาในการรันการทดสอบการตรวจสอบการออกแบบ เวลานั้นหมายความว่าจะใช้เวลานานกว่าที่จะได้รับผลิตภัณฑ์ถัดไปออกสู่ตลาด และในระหว่างนี้คุณจะพบข้อบกพร่องมากขึ้นในผลิตภัณฑ์ปัจจุบันของคุณถ้าคุณดูหนักพอ มันเป็นการต่อสู้ที่พ่ายแพ้ การแก้ไขข้อผิดพลาดนั้นยากยิ่งขึ้นสำหรับผลิตภัณฑ์ที่เปิดตัวมาเป็นเวลานานเนื่องจากผู้คนต้องดำน้ำในการออกแบบแบบเก่าเพื่อหาว่าเกิดอะไรขึ้น ดังที่ Null กล่าวว่าลูกค้าอาจต้องปรับผลิตภัณฑ์ของคุณใหม่ในระบบของพวกเขา หากผลิตภัณฑ์ของคุณยังอยู่ในระหว่างการพัฒนาการชะลอการเปิดตัวการผลิตอาจทำให้ตารางเวลาของลูกค้าลื่นซึ่งทำให้ลูกค้าไม่มีความสุขมาก

โดยปกติแล้วข้อบกพร่องที่เกิดขึ้นจะเกิดขึ้นในการกำหนดค่าแปลก ๆ ทำให้เกิดปัญหาเล็กน้อยมากมีวิธีแก้ไขปัญหาง่าย ๆ หรือทั้งหมดข้างต้น พวกเขาไม่ได้เลวร้ายพอที่จะคุ้มค่ากับปัญหา และถ้าคุณใช้โมดูลฮาร์ดแวร์ในผลิตภัณฑ์ถัดไปลูกค้าปัจจุบันของคุณจะมีวิธีแก้ไขปัญหาในซอฟต์แวร์ของพวกเขาอยู่แล้ว

เครื่องมือซอฟต์แวร์เป็นอีกปัจจัยหนึ่ง หากโมดูลมีความยาวเพียงพอ toolchain ของคุณอาจเปลี่ยนแปลงได้มากพอที่การทำซ้ำการทดสอบการตรวจสอบความถูกต้องเก่าจะกลายเป็นโครงการสำคัญในตัวเอง และคุณอาจไม่สามารถโหลดเครื่องมือเก่า ๆ ได้เพราะคุณไม่ได้ชำระค่าลิขสิทธิ์ไซต์อีกต่อไป แต่ตราบใดที่คุณไม่เปลี่ยนโมดูลคุณสามารถคัดลอกและวางลงใน MCUs ใหม่ได้

ซอฟต์แวร์ยังเป็นปัญหาในด้านลูกค้า หากข้อผิดพลาดของคุณแบ่งความเข้ากันได้ย้อนหลังในทางใด ๆ ลูกค้าของคุณทั้งหมดจะต้องอัปเดตรหัสของพวกเขาซึ่งพวกเขาอาจไม่ได้มีเครื่องมืออีกต่อไป

ในฐานะที่เป็นคนที่ทำงานด้านการพัฒนาไมโครคอนโทรลเลอร์ฉันสามารถบอกคุณได้ว่าเราทุกคนชอบที่จะแก้ไขข้อผิดพลาดทุกอย่าง แต่การพยายามทำเช่นนั้นจะชะลอการพัฒนาอย่างไม่คาดคิดรบกวนลูกค้าเสียค่าใช้จ่ายเป็นจำนวนมากและในตอนท้ายของทั้งหมดเราก็อาจล้มเหลว


1
+1 โดยเฉพาะอย่างยิ่งสำหรับการกล่าวถึงว่าลูกค้าปัจจุบันจะได้รับการแก้ไขปัญหาแล้ว
Null

13

โดยทั่วไปเป็นเพราะค่าใช้จ่าย

มีความเสี่ยงที่จะทำลายสิ่งอื่นเสมอเมื่อคุณ "แก้ไข" ข้อบกพร่อง ด้วยเหตุนี้ผู้ผลิตจึงจำเป็นต้องมีคุณสมบัติและคุณสมบัติของอุปกรณ์ใหม่อีกครั้งเพื่อให้แน่ใจว่า "การแก้ไข" ไม่ได้นำเสนอข้อผิดพลาดที่แตกต่างกัน นั่นหมายถึงเงินและเวลา (ซึ่งสำหรับผู้ผลิตก็เป็นเงินเช่นกัน) นอกจากนี้ยังหมายถึงผู้ผลิตมีพนักงานที่แก้ไขผลิตภัณฑ์ที่มีอยู่แทนการพัฒนาผลิตภัณฑ์ใหม่

ในบันทึกที่เกี่ยวข้องบางครั้งลูกค้ายังต้องการอีกคุณสมบัติของอุปกรณ์คงที่ในผลิตภัณฑ์ของพวกเขา (s) เพื่อให้แน่ใจว่าการแก้ไขข้อผิดพลาดไม่ได้ทำลายสิ่งที่อยู่ในระบบของพวกเขาอย่างใดอย่างหนึ่ง ค่าใช้จ่ายเงินและเวลาสำหรับพวกเขาและลูกค้าอาจไม่เต็มใจที่จะยอมรับค่าใช้จ่ายเหล่านั้น - พวกเขาจะยังต้องการรุ่น "บั๊ก"

ในบางกรณีแน่นอนข้อผิดพลาดจริง ๆ แล้วเป็นเทคนิคที่ยากต่อการแก้ไข ในกรณีนี้มันแพงกว่าที่จะแก้ไข


1
+1 เป็นเรื่องเกี่ยวกับเงินมาโดยตลอดและใช้ทรัพยากรน้อยลง มาสก์ไม่ได้ราคาถูก, บริการแบ็คเอนด์ไม่ถูก ฯลฯ
Hardware Guy บางคน


@ user2813274 xkcd ยอดเยี่ยมมาก
Null

1
เมื่อฉันทำงานกับ ASIC ที่ บริษัท (ใน RTL ไม่ใช่แบบ / แบ็กเอนด์) ฉันได้ยินมาว่าชุดหน้ากากสามารถมีราคาสูงกว่า 3 ล้านเหรียญ ในทีมเล็ก ๆ / asic มาสก์ชุดใหม่แต่ละชุดสามารถเพิ่มNREของคุณได้ง่ายขึ้น10% อย่างไรก็ตามนั่นคือ ballpack สำหรับตัวเลขที่ฉันได้ยินใน 8 ปีของฉันที่ทำชิป dev 'โดยไม่ต้องมีส่วนร่วมในการซื้อชุดหน้ากากจริงๆ
Ross Rogers

8

หากผู้ซื้อชิ้นส่วนรายใหญ่ใช้ชิ้นส่วนนั้นในการออกแบบที่พวกเขาได้รับการรับรองเช่นใช้บนเครื่องบินหรือยานอวกาศการเปลี่ยนแปลงใด ๆ ของส่วนประกอบที่ใช้ในการออกแบบจะต้องมีการรับรองซ้ำของการออกแบบโดยรวม หากการออกแบบทำงานได้อย่างถูกต้องรอบข้อบกพร่องทั้งหมดในซิลิคอนการแก้ไขซิลิคอนอาจจำเป็นต้องให้ลูกค้าทำซ้ำการทดสอบคุณสมบัติทั้งหมดสำหรับบอร์ดของเขาการบำรุงรักษาอุปทานทั้งชิ้นส่วน "ไม่คงที่" และ "คงที่" หรือเพียงแค่ ดำเนินการต่อเพื่อผลิตการออกแบบเก่า ผู้ขายชิปไม่ได้เผยแพร่รายชื่อผู้ซื้อของพวกเขา แต่ในบางกรณีลูกค้ารายเดียวอาจเป็นตัวแทนของความต้องการชิปที่เฉพาะเจาะจงมากพอที่ บริษัท อาจไม่เต็มใจทำสิ่งใด ๆ

ที่ได้รับการกล่าวว่ามี errata ซิลิคอนบางอย่างที่ปรากฏในส่วนต่อไปของรุ่นที่ประสบความสำเร็จบางส่วนที่ขาดการแก้ไขปัญหาที่ดี อาจฉี่ที่ใหญ่ที่สุดของฉันอยู่กับสภาพการแข่งขันในการส่งตรรกะ UART ในส่วน 18Fxx ของ Microchip ซึ่งสามารถทำให้มันส่งไบต์ NUL ปลอมหากรหัสพยายามที่จะส่งข้อมูลในเวลาที่ผิด วิธีแก้ปัญหาที่แนะนำของ Microchip คือการให้รหัสแน่ใจว่าจะไม่พยายามโหลดการลงทะเบียนการส่งข้อมูลระหว่างเวลาในขณะที่ UART เริ่มส่งบิตหยุดสำหรับอักขระก่อนหน้าและเวลาที่การส่งนั้นเสร็จสมบูรณ์ แต่ถ้ามีการขัดจังหวะ ปิดการใช้งานรหัสในตัวจัดการขัดจังหวะการส่งผ่านบัฟเฟอร์ว่างเปล่าโดยทั่วไปจะได้รับรางวัล '

ในขณะที่ฉันสามารถเข้าใจได้ว่าข้อบกพร่องเช่น Microchip UART bug นั้นสามารถแอบเข้ามาได้การแก้ไขไม่ควรยาก: ฉันคาดว่า Microchip จะสร้างสัญญาณ "go" โดยอ้างอิงจาก "AND" ของการส่งสัญญาณไม่สมบูรณ์ "และ" อักขระ "สัญญาณและมีปัญหาหากสัญญาณเก่าเปลี่ยนสถานะหลังจากหลัง (ทำให้วงจรบัฟเฟอร์ TX พลาดโอกาสที่จะโหลดข้อมูลอักขระในรอบที่กำหนด แต่ปล่อยให้ซีเควนเซอร์ TX เริ่มการส่งสัญญาณใหม่ในรอบนั้น) ; แม้ว่า Microchip ไม่ต้องการเพิ่มความล่าช้าในการซิงโครไนซ์กับกรณีปกติที่ตัวส่งสัญญาณว่างเปล่าและตัวละครถูกโหลดหรือเมื่อตัวส่งสัญญาณว่างหลังจากตัวอักขระถูกโหลดปัญหาอาจได้รับการแก้ไขโดยไม่กระทบต่อเวลาใน ในกรณีเหล่านั้นโดยเพิ่มสามประตู NAND และสองสลักให้ตรงกัน อย่างไรก็ตามมีชิ้นส่วนจำนวนมากจัดส่งเนื่องจากปัญหาดังกล่าวได้รับการเผยแพร่โดยไม่ต้องเพิ่มการแก้ไขใด ๆ


5

มันขึ้นอยู่กับ บริษัท และความซับซ้อนของการแก้ไข ตัวอย่างเช่นดูที่errataนี้สำหรับ PIC18F23K22 คุณจะเห็นได้ว่ามีข้อบกพร่องที่รู้จักแปดข้อซึ่งส่งผลต่อการแก้ไขครั้งแรก ("A1") ของซิลิคอน

ในช่วงเวลาของคำตอบนี้พวกเขามีการแก้ไข "A2" ที่อัปเดตหนึ่งรายการ จากข้อผิดพลาดเดิมแปดข้อนั้นมีสามข้อที่ได้รับการแก้ไขในฉบับใหม่นี้

ปัจจัยในการตัดสินใจก็คืออายุการผลิตของผลิตภัณฑ์ แม้ว่าผู้ผลิตจะเลือกที่จะไม่แก้ไขปัญหาเฉพาะในส่วนที่มีอยู่พวกเขายังสามารถ "แก้ปัญหา" ได้ด้วยการทำให้แน่ใจว่าผลิตภัณฑ์ใหม่ไม่มีข้อผิดพลาดเดียวกัน


+1 โดยเฉพาะอย่างยิ่งสำหรับการกล่าวถึงอายุการใช้งานของผลิตภัณฑ์
Null

4

บางทีพวกเขามีการผลิต (แต่ยังไม่ได้ขาย) หลายพันหรือล้านของไอซีเมื่อพบข้อบกพร่อง พวกเขาไม่ทิ้งพวกมันทั้งหมดไปเพราะข้อผิดพลาด

ฉันคิดว่าคุณสามารถเปรียบเทียบกับการพิมพ์หนังสือ หนังสือถูกพิมพ์เป็นจำนวนหลายพันเล่มในระยะเวลาสั้น ๆ (วัน, สัปดาห์) แต่พวกเขาจะขายภายในไม่กี่ปีหรือทศวรรษ หนังสือจะไม่ถูกโยนทิ้งและพิมพ์ซ้ำทันทีที่พบข้อผิดพลาดหรือข้อผิดพลาดอื่น ๆ นอกจากนี้สำหรับหนังสือแผ่น errata จะพิมพ์และส่งมอบให้กับผู้ใช้

ในการแก้ไขข้อบกพร่องที่รู้จัก (การพิมพ์ผิดพลาด) จะได้รับการแก้ไขในรุ่นถัดไป


ใช่นั่นคือสิ่งที่ฉันพูดถึง แก้ไขใน "รุ่นต่อไป" ...
Fotis Panagiotopoulos

ไอซีไม่ได้ผลิตอย่างต่อเนื่องเช่นไม่ได้อยู่ในอัตราเดียวกับที่ขาย อาจใช้เวลาสักพักอาจจะเป็นปีกว่าจะถึงฉบับต่อไป
นมเปรี้ยว

ว้าว! ปีหรือไม่ ... ไม่เป็นไรเลย
Fotis Panagiotopoulos

จริง ๆ แล้วฉันไม่แน่ใจว่าเป็นเรื่องปกติหรือไม่ที่ต้องใช้เวลาหลายปีในการดำเนินการผลิตครั้งต่อไป แต่อาจต้องใช้เวลาหลายปีกว่าจะมีการขายผลิตภัณฑ์ทั้งหมดของการผลิตครั้งเดียว แน่นอนลูกค้าต้องการทราบเกี่ยวกับข้อผิดพลาดในผลิตภัณฑ์ที่เขาซื้อ
นมเปรี้ยว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.