I just read a discussion questioning why Qualcomm its own vSMP architecture rather than using ARM's latest big.LITTLE architecture.
The basic idea of ARM's big.LITTLE architecture is to fuse 4 Cortex-A7 cores and 4 Cortex-A15 cores onto the same CPU package. When you are doing tasks that require much less CPU power (e.g., background music playback, internet surfing), it uses power-friendly Cortex-A7. On contrary, when you doing some performance intensive tasks, it enables powerful Cortex-A15 and completely shut the Cortex-A7 cores down. Cortex-A7/A15 share the same hardware architecture and therefore, should generate no problem when performing such switch. Simple right? Depends on what you want to do, enables the corresponding CPU cores to work with you. However, there are some problems. The first one is increased manufacturing cost. This architecture also mean you put two sets of CPU on one chip. Although it doesn't mean doubled cost, but increased cost is unavoidable. Second, two sets of CPUs also increase die size which might require a better heat-sinking solution.
Qualcomm's solution, on the other hand, only dynamically enables partial or all CPU cores and adjusts CPU frequency to achieve power efficiency. Although theoretical power saving might not as much as big.LITTLE, Qualcomm claims they actually have better power-efficiency than big.LITTLE (thanks to more modern technology? :p). They can also have less manufacturing cost than ARM's big.LITTLE. Last, what Qualcomm licenses from ARM is ARMv7 architecture instead of Cortex-A family CPU design. Qualcomm has designed their own CPU for years for better performance and adding more advanced features. Adapting to big.LITTLE does not only mean they have to pay more to ARM but also means they have to drop their current achievement. All these are reasons that Qualcomm doesn't adapt big.LITTLE architecture.
In sum, it's quite straight-forward that Qualcomm not choosing big.LITTLE architecture. I also feel it's a weird design (although it's somehow straight-forward) because of the cost. Another idea maybe ... can we just shut some components inside a CPU core down? I don't know, I know almost nothing about CPU design ... orz
沒有留言:
張貼留言