The business strategy decisions behind CPU fab is really interesting over the past 15 years.
AMD made a budget clone of Intel two decades ago. Then Intel made a misstep and released Northwood Pentium 4. AMD used less power and was faster. And AMD decided to go with DDR memory, while Intel went RDRAM. Then AMD was king when they went AMDx86-64 for 64 bit and Intel went Itanium.
Then AMD made a huge miscalculation on the future of multicore computing and designed Bulldozer, while Intel got their shit together and went down the hyperthreading route and released CORE/Core2/Core2Duo chips. And Intel was king for a decade.
I don’t know the exact timing, but AMD needed cash and sold their fabs to raise money, which became TSMC GlobalFoundries, sorry. GF learned how to make stuff small since smartphones became a huge market. Then AMD let an engineer run the company and she invested in the Zen architecture, which could be made by GF with their lessons from the mobile world.
This is my take. By AMD turning GF loose, GF could date other people work on mobile projects, which helped them learn.
It’s a side note now, but Intel hung on to their fabs and lagged behind GF. AMD let their fab go and benefitted from it. EDIT: I had some facts wrong. It’s possible Intel fabs are ahead of GF.
As a side note, Intel did try fairly hard to get into mobile like GF. They had the Atom chips and went for tablet, Ultrabook, netbook, and mobile. I had an ASUS Android phone with an Intel SOC. So it’s not like they ignored mobile, but it didn’t benefit them as much as TSMC.
I’m a mech E in the medical field. We’re consistently understaffed. If I validate an Excel worksheet in Excel '08 or a Python program in 3.5 with a specific version of NumPy, we’re probably sticking with those versions for a while. Every time I bring up re-validating with the latest version, keeping one old system running the old software requires fewer resources than me or a colleague re-validating.
My whole department is stuck on one version of Python because that was the most recent version when I had an emergency project and developed a data analysis algorithm. We validated it, then as new members were added to my team, they needed a copy, so we had to keep using it. I’ll probably re-validate it to the next Python release. It’s not only unit tests, or we could automate validation. Unit tests are a tiny part of validating software for making medical decisions. And software that directly runs a medical device (like firmware on an insulin pump) is an order of magnitude more rigorous than what I do.
Side note: there are people who somehow root their insulin pumps and run algorithms on them. There’s a group that can get a PID control loop on an insulin pump that has a more simple control scheme on it (because that’s how the FDA approved it). The company has been trying to get approval to use PID control in the US for years.