Quote from: Jan Onderwater on March 23, 2021, 09:24:53
Apple has made a great leap forward on the competition and they (the competition) will have to work hard to catch up, and this will be almost impossible to match or even overtake. The total horizontal and vertical integration offers Apple a big advantage. Just look at the A-Series SOC, it is still about 2 generations ahead of the best other SOC manufacturers can produce. This is not because Apple can do magic, it is because Apple owns their own HW and OS and can optimize it. They have much better margins (android smartphones have become a commodity, can only compete on price) so they can buy the latest production capacity from TSMC. But even if, and this is a big if, others produce a SOC as fast as Apples, they still need MS or Google to produce an Operating System. This will be generic, and thus less optimized, which means, slower. And even if Google or MS come up with a very fast and good OS version for ARM SOCs, they still have to convince Software Manufacturers to make SW for their platform, which is unproven and has a small install base (since they as yet have not anything that is like Rosetta2). Why would you as a SW developer do that, when you can make SW in the same time (or less) for a Mx series Apple or X86 windows with a much larger Install base? If Apple doesn't get serious problems or make mistakes, and properly scale the M series to 12-24-36 or more cores, and design each generation 10-20% faster than the last (like the A series), Apple will walk away from what others can offer in the next few years. The only ones who can really compete will be Google and MS when they start designing their own chips and optimizing them for their operating systems. This will also mean the end of generic computer designs (X86 Wintel, Android/ChromeOS). At least this is how I see it.
The big difference is that Apple can do whatever it wants. While Qualcomm has to satisfy a whole range of customers. Which leads to designs tending towards common subset of features. Apple has high margins and huge volumes on its own. Therefore it can afford an expensive processor. That would be unpalatable to many players, reducing volumes and rising prices, putting more pressure on margins. I don't know what is the current situation but it used to be that Apple's chips were much more expensive to make. They were much larger dies. Also, Apple decided years ago that they want to scale to at least laptop level. And so they developed their phone processors in that direction.
Modern Windows applications work just fine on ARM. They're not native x86 in the first place. It's the legacy software which is a problem. And perhaps even some of specialist modern software that was written for performance reasons in something like C++. How difficult the transition is depends on how good your code is. For example, Apple could easily transition to x86 back in the day because they put in the effort to ensure that their code is not unnecessarily dependent on a platform. I believe the story is that they actually maintained an x86 version of Mac OS as a way of checking quality of their work. If your code is of poor quality, it might be an absolute nightmare and it might be better to just start from scratch.
So, when it comes to software, I'm not convinced it's the case that Apple better optimizes for their hardware. I think they might simply be doing a better job. And optimizations are either very focused or they are at tool chain level (compiler). But because they control both aspects, their software and hardware teams can get together and easily figure out what they want and find compromise. They can steer processor development the way that suits their goals. Much better than when you have 10 players with different ideas, perhaps even unwilling to share them as they consider them trade secrets.