4 ms·
26.8 Billion transistors, that boggles my mind. How do you even begin to think about testing hardware like that for correctness? I remember my days as an int
by tmaly 6y ago
26.8 Billion transistors, that boggles my mind.
How do you even begin to think about testing hardware like that for correctness?
I remember my days as an intern at Intel. I remember someone using genetic algorithms to try to construct a test suite for some chip. But it was no where near that transistor count.
- andy_ppp 6y agoYou break it down into smaller parts and test those as discrete units.
- Tomte 6y agoNot just that: you have dozens, hundreds or thousands of unit A, and of unit B, and of unit C. You test each of these units once, and then some measure of interplay.
- colejohnson66 6y agoHow long would formal verification on something this big even take?
- KSS42 6y agoDo you mean RTL to gates formal verification?
- colejohnson66 6y agoYes. Also, I’m assuming[a] that a GPU would take about the same as a CPU because despite GPUs having billions more transistors, they have a lot of duplicated modules compared to a CPU which has many more different modules but probably only one or two of each (per core). [a]: My knowledge of creating hardware is very limited. So I could be completely wrong.
- read_if_gay_ 6y ago> I remember someone using genetic algorithms to try to construct a test suite for some chip. Could you expand a bit on how that worked? Seems like an interesting application.
- tmaly 6y agoThe idea was to try to find a smaller set of tests that could provide equivalent test coverage to that of a larger number of brute force generated tests.
- dragontamer 6y ago> How do you even begin to think about testing hardware like that for correctness? From my understanding: Binary decision diagrams on supercomputers. (https://en.wikipedia.org/wiki/Binary_decision_diagram https://en.wikipedia.org/wiki/Binary_decision_diagram) Verification hardware is a major business for all these major CPU players today. Fortunately, solvers on this NP-complete problem have benefited not only from faster computers, but huge advancements in algorithmic improvements in the past 20 years.
- devonkim 6y agoA long time ago when I was writing Verilog and VHDL what people were doing beyond the 1Bn gate (I still keep using gates rather than transistors as a unit, funny) scale were statistical sampling methods to try to uncover certain stuck / flakey gates so certain more risky or critical paths were tested a bit better. Then there's also error correction mechanisms that are more common nowadays that can compensate to some extent. We don't test for every single possible combinatoric like was possible so long ago, full stop. Furthermore, GPUs aren't necessarily to be tested in the same ways as CPUs. GPUs don't really branch and hold state with exotic addressing modes like how CPUs can operate, so testing compute shaders is in many respects closer to testing not a state machine as much as a big, wide bit bus. Heck, one doesn't need to even bother hooking up any output devices like HDMI and HDCP decoders to a GPU as long as the PCB is hooked up fine during assembly and the peripheral chips are tested to spec, too. And for an extra measure of automation there are test suites that are programmed into hardware that can drive chips at line speed on a test bench.
- blawson 6y agoTechnologies like Chisel can make this a lot easier I think: https://www.chisel-lang.org https://www.chisel-lang.org I'm not super familiar with it, but one day perhaps hardware verification becomes as easy as software testing someday?
- marcosdumay 6y agoYou mean testing the hardware after it's produced against fabrication defects or testing the design before production against the specification? Both are very different and very interesting on their own. For the design, verification can be done by computers and it's much more powerful than testing anyway. For the hardware, I imagine there are cores inside the chip with the sole task of testing sub-circuits (fab defects are much less varied than design flaws), but I stopped following that stuff at the era of single billion transistors.
- thebruce87m 6y agoYou mean in production? Digital logic is easy, use scan/ATPG: https://en.m.wikipedia.org/wiki/Scan_chain https://en.m.wikipedia.org/wiki/Scan_chain Basically chain all the logic together in a special test mode. Analog blocks get tests written specifically for them and either tested via external test hardware or linked internally. For example, if you have a DAC and and ADC, provide a link internally and drive the ADC from the DAC to test both. You can also test comparators etc from using a combination of the DAC and ADC, trim bandgaps etc. If you’re real smart, you do this at probe (wafer), massively in parallel.