The press release doesn't say that HMP is only supported on ARM and not Thumb-2, so where did that claim come from? Any software can switch between ARM and Thumb-2 seamlessly on a per function basis. So it isn't even possible to only support ARM but not Thumb-2.
Can you elaborate on your point about ARM and Thumb-2. I am not quite following you.
My point is that IF Samsung is ONLY providing global task scheduling that allows Cortex-A15 and Cortex-A7 cores to be freely assigned tasks THEN that is not really very heterogeneous as this different implementations of the same ISA.
But it remains to be seen whether the Samsung software allows more than that.
I believe "heterogenous" in Big Little refers only to varying cores all using the same ISA.
There is an Intel patent which discusses the Big Little concept including extending it to the case where the ISA:s are heterogenous. The lesser ISA would emulate instructions that were lacking (claim 3, 22 and 23 of a patent called "Dynamic Core Swapping" http://patents.com/us-8156351.html).
So maybe that's something you remember from there? Or something you got from Intel – that would be interesting!
Technically, you are right Peter. True HMP implies tasks working across different processor architectures. I guess Wilco1 is referring to the two ISAs available in ARM processors: ARM ISA and Thumb2 ISA. What you are implying is a completely different processor architecture (not just the ISA). I would still consider what Samsung and MediaTek are doing as HMP but its a special case or initial stab at it. When they extend that to GPUs and/or different processor architectures e.g. from IMG and ARM, you could call that full HMP. That said, I do not think this would happen anytime soon especially not between rival architectures.
All I am going from is the proper use of the term heterogeneous which means distinctly non-uniform.
And the use that would be expected by the Heterogeneous System Architecture Foundation.
The HSA is looking to help create systems where software is able to be optimized to run on a heterogeneous systems that would include multiple ISAs and multiple implentations of each ISA, mixing GPUs and CPUs.
Samsung (and ARM and MediaTek) are members of the HSA but it is NOT clear that Samsung is supporting the fullest definition of HMP here?
Well being right technically, is good enough for me.
If Samsung is not supporting use of the GPU cores alongside the use of CPU cores OR the use of mutliple architectures (not applicable in Exynos 5 Octa) I think they would have done better to bill this development as "true-octa" or "global task scheduling."
Ah I misunderstood what you were trying to say ("ARM" without qualification can mean ARM Ltd, the ARM community, the ARM architecture or the ARM instruction set). So basically what you meant was that it isn't really heterogeneous if it doesn't involve multiple ISAs.
I don't agree. An OS kernel is never going to run as SMP across multiple ISAs - remember to be SMP you have to run the same kernel image. Could a GPU run the ARM Linux kernel?
So heterogeneous computing with different ISAs is never going to be SMP. To be more precise, HMP is a generalization of SMP where the cores can have different caches and microarchitectures but still have to be based on the same ISA (like SMP). Given the time it has taken to get HMP ready, getting the kernel to support it was a non-trivial task.
Heterogeneous computing (without the SMP part) is something different - every device you can imagine already does that. A typical smartphone for example has about 10 microcontrollers and DSPs besides the main CPUs and GPUs. But nobody sane would suggest to run the Linux kernel on those!
But I dont necessarily want to migrate the whole Linux kernel.
But i may want to move some task or other out to the GPU or to another CPU depending on what resources are available at run time and an assessment of the work loads from various tasks -- and then move the Linux kernel down from the Cortex-A15 to a Cortex-A7 and thereby save power.
I think that's a big.LITTLE centric definition of HMP :-) In theory, migrating a task from a CPU to a GPU or vice versa is possible (of course it is), whether that's the most efficient solution is another story. I could envisage a case where heterogeneous processors (i.e. processors with different architectures) in an SMP configuration (i.e. all sharing the same main memory) take p-code as input and translate/execute this just-in-time. Of course, we are nowhere near this in reality and that might never happen but I do not think we should redefine generic concepts depending on what is practically possible today.
To me big.LITTLE is a type of HMP, a special case even.