เรียนรู้วิธีที่ Verilog ซึ่งคำนึงถึงการใช้พลังงาน ช่วยตรวจจับการใช้พลังงานที่พุ่งสูงขึ้นอย่างผิดปกติตั้งแต่เนิ่นๆ
ภายในชิปคอมพิวเตอร์เต็มไปด้วยสายโลหะขนาดเล็กจิ๋วนับล้านเส้น มีไฟฟ้าวิ่งอยู่ตลอดเวลา ส่วนใหญ่มันก็ไหลไปเรื่อยๆ ไม่มีปัญหาใดๆ ปัญหาจะเกิดตอนที่วงจรเป็นล้านจุดเปลี่ยนสถานะพร้อมกันในชั่วพริบตา ไฟถูกกระชากไปใช้มหาศาลในเวลาแค่เสี้ยววินาที จังหวะสั้นๆ แบบนี้แหละที่ทำลายชิปได้ เรื่องนี้จึงเป็นเรื่องที่สำคัญเพราะถ้าขืนปล่อยให้ชิปผลิตออกมาแล้ว มันไม่สามารถแก้ไขได้ ต้องหล่อใหม่ทั้งแผ่นซึ่งราคาแพงมหาศาลและกินเวลาเป็นเดือน วิศวกรจึงอยากตรวจจับไฟกระชากให้เจอตั้งแต่ตอนที่ชิปยังเป็นแค่แบบในคอมพิวเตอร์
ไฟฟ้าในชิปต้องวิ่งผ่านสายโลหะที่เล็กกว่าเส้นผมหลายเท่า ถ้าไฟแรงเกินไป ความร้อนจะค่อยๆ ดันอะตอมของโลหะให้หลุดออกแล้วไหลไปตามกระแส นานวันเข้าบางจุดอะตอมพร่องจนเกิดรูโหว่แล้วสายขาด บางจุดอะตอมไปกองพอกจนสายแตะกันเกิดไฟลัด ปรากฏการณ์นี้ชื่อ Electromigration พูดง่ายๆ คือยิ่งกระแสหนาแน่นและยิ่งร้อน สายไฟก็ยิ่งเสียไวหรืออาจจะขาดหรือลัดวงจรได้
แต่จุดที่คนพลาดกันบ่อยคือไปดูแค่ค่าไฟเฉลี่ย ไฟเฉลี่ยทั้งวันอาจต่ำมาก แต่ถ้ามีจุดพีคที่พุ่งแรงแค่ชั่วขณะเดียว โลหะก็หลอมเฉพาะจุดและพังได้ทันที เหมือนท่อน้ำเส้นเล็ก น้ำไหลเอื่อยทั้งวันไม่เป็นไร แต่อัดน้ำแรงสุดเข้าไปแวบเดียวท่อก็แตก
ลองนึกถึงคนทั้งตึกกดชักโครกพร้อมกัน น้ำอ่อนแรงลงทันที ในชิปก็เป็นแบบนั้น เวลาวงจรเป็นล้านจุด สลับ 0 กับ 1 พร้อมกันในจังหวะเดียว มันดึงไฟก้อนโตแบบฉับพลัน บางทีชิปกำลังพักอยู่เฉยๆ แล้วโดนสั่งให้คำนวณหนักทันที ความต้องการไฟกระโดดขึ้นเป็นร้อยวัตต์ในเวลาราว 1ใน 1,000 ล้านวินาที พอดึงไฟเร็วขนาดนั้น แรงดันก็ตกฮวบตามไม่ทัน อาการนี้เรียกว่า Power Droop พอแรงดันตก วงจรทำงานช้าลงและคำนวณพลาดได้
แต่อาการแบบนี้เกิดแวบเดียวแล้วหาย ตามจับยากจนหลายครั้งดูเหมือนเป็นความผิดพลาดที่เกิดขึ้นมั่วๆ หาสาเหตุไม่เจอ ทั้งที่จริงแล้วเป็นปัญหาในการออกแบบ ดังเช่น ในการวิจัยของนักวิจัยกลุ่มหนึ่ง (Polian กับทีม) คิดวิธีจับมันแบบตรงไปตรงมา จงใจสร้างจังหวะที่ว่านั่นขึ้นมาเอง ทำให้วงจรพักก่อน แล้วสั่งให้ทุกอย่างทำงานพร้อมกันทันที เพื่อบีบไฟกระชากออกมาให้เห็นกับตา ชิปตัวไหนทนไม่ไหวก็สามารถรู้ได้ตรงนั้น ดีกว่าไปพังตอนผู้ใช้เอาไปใช้จริง
แล้วจะเห็นไฟกระชากได้อย่างไรในเมื่อชิปยังไม่เกิด คำตอบง่ายมากคือ การจำลองมันในคอมพิวเตอร์ก่อน แล้วบันทึกไว้ว่าสายเส้นไหนขยับตอนไหน ไฟล์บันทึกนี้ชื่อ VCD มันเก็บทุกการเปลี่ยนค่าพร้อมมีเวลากำกับ เอาไปป้อนให้โปรแกรมคำนวณไฟฟ้าต่อได้
Gil Shomron วิศวกรคนหนึ่งเล่าประสบการณ์ตอนทำวงจรคูณเลข เครื่องมือที่เขาใช้ในตอนแรกสำหรับการคาดเดาพลังงานจากค่าเฉลี่ยรวมของทั้งวงจร ซึ่งค่อนข้างหยาบ ข้อมูลที่เขาป้อนมีเลข 0 อยู่เยอะ ซึ่งควรกินไฟน้อย แต่ค่าเฉลี่ยมองไม่เห็นความต่างนี้เลย พอเปลี่ยนมาใช้ VCD ที่จดละเอียดทีละสายทีละจังหวะ ภาพจริงจึงโผล่ออกมาว่า ไฟไปกระจุกตรงบริเวณไหน
ชิปถูกเขียนขึ้นด้วยภาษาชื่อ Verilog เทียบได้กับพิมพ์เขียว ข้อดี คือ เราฝังกฎเตือนเล็กๆ ลงไปในพิมพ์เขียวได้ มันชื่อว่า Assertion ทำงานเหมือนสัญญาณกันขโมย ในขั้นตอนการจำลอง ตั้งกฎไว้ว่าอะไรที่ไม่ควรเกิด พอมันเกิดปุ๊บก็ร้องเตือนปั๊บ
งานวิจัยจาก IJERT ทดลองกับวงจรส่งข้อมูล TCP/IP กฎของระบบบอกว่า ในหนึ่งจังหวะนาฬิกาต้องมีสัญญาณทำงานได้แค่ตัวเดียว แต่ดีไซน์เก่ากลับมีหลายตัวเด้งขึ้นพร้อมกัน นั่นแหละคือ ฉากที่ไฟถูกกระชาก Assertion จับเหตุการณ์นี้ได้ตั้งแต่ตอนจำลอง วิศวกรเลยตามไปแก้โค้ดให้มันทำงานทีละตัวตามกฎ ผลลัพธ์คือ ไฟที่สิ้นเปลืองในส่วนนี้ลดลงถึง 66% โดยที่ยังไม่ได้หล่อชิปจริงสักตัว
เหตุผลที่ต้องรีบตรวจจับตั้งแต่ตอนนี้ เพราะเมื่อยิ่งปล่อยให้ดีไซน์เดินหน้าไปไกล มันยิ่งซับซ้อนและแก้ยากขึ้นเรื่อยๆ การชี้จุดผิดตั้งแต่ยังเป็นโค้ดจึงมีข้อดี ทั้งถูกและง่ายที่สุด นี่แหละคือจุดมุ่งหมายของการเขียน Verilog ให้จัดการกับไฟฟ้า กล่าวคือ สอนให้พิมพ์เขียวสามารถคอยจับจุดอันตรายด้วยตัวเอง
ในอนาคตสำหรับการวัดแรงดันไฟฟ้าไปพร้อมกับสถานภาพจริงของชิปด้วยราคาที่ไม่แพงอาจไม่ไกลเกินเอื้อม และสิ่งที่เข้ามาช่วยตรงนี้ ก็คือ ปัญญาประดิษฐ์ (AI) ที่มีไอเดียสุดเจ๋งตรงที่ไม่มีการใช้เซ็นเซอร์แรงดันไฟฟ้าราคาแพงใดๆเลย
ด้วยชิปทุกวันนี้มีสายไฟเป็นล้านเส้น การที่จะไล่คำนวณไฟทุกเส้นทุกจังหวะคงไม่ไหว จึงมีเครื่องมือที่ชื่อว่า APOLLO โดยการนำ AI มาใช้เลือกดูแค่สายไฟที่สำคัญเท่านั้น ไปพร้อมกับการคาดเดาไฟฟ้าได้อย่างแม่นยำและรวดเร็ว ยิ่งไปกว่านั้นมันยังสามารถคาดคะเนไฟกระชาก (Power Spike)ได้ก่อนที่เหตุการณ์จะเกิดขึ้น ชิปจึงมีเวลาในการเตรียมรับมือได้ทัน ในอนาคตข้างหน้าเครื่องมือเหล่านี้จะคำนวนและประมวลผลด้วย AI ที่จะฉลาดและรวดเร็วขึ้นเรื่อยๆ จนวิศวกรสามารถตรวจจับไฟกระชากได้ตั้งแต่ตอนร่างแบบโดยไม่ต้องรอให้การออกแบบเสร็จสิ้น ซึ่งแนวคิดนี้กำลังแพร่ขยายจากซีพียูไปสู่ชิปแบบอื่นๆ โดยเฉพาะชิป AI ที่กินไฟมากกว่าเมื่อก่อน ในท้ายที่สุดของจุดมุ่งหมายนี้ คือ ชิปที่มีความสามารถในการรับรู้และจัดการพลังงาน ความร้อน ตลอดจนแรงดันของตัวมันเองได้ก่อนที่มันจะสายเกินไป