Well, also without x86 baggage, and with tons of SOC co-preccessors added, and a unified memory.
Well, also without x86 baggage, and with tons of SOC co-preccessors added, and a unified memory.
If you mean "smartphones and tablets", ok. But this is a laptop, not a mobile phone, and it's new development there.
If you mean "laptops" then, no, they didn't have unified memory, much less have it be "pretty normal".
This reserved pool of memory was even hard-set at boot time, and usually the size of it was determined based on the amount of total memory (for example at one point MacBooks with 4GiB of memory allocated 1GiB for memory, ones with 8GiB allocated 2GiB).
What it sounds like Apple has done here is heavily blur those lines. One example would be to load a texture into a memory location, make a change with the CPU, then let the GPU do some modifications, check something with the CPU, then apply it to some shape and display it. On current systems that would mean multiple copy operations of that texture back and forth between segments of memory (across the PCI bus on a dedicated card). Here that might all be done with no copies at all (just handoffs).
This is not the case, as expanded in sibling threads.
Consoles have used unified memory since last generation I think?
AMD APU have supported unified memory since kaveri I think, and Intel iGP have supported limited version of data sharing for a while, but I don't think one can call UMA "pretty normal".
Shared memory means the CPU and the GPU share physical memory in different address space, so 512MB RAM with 64MB shared means the CPU gets 448MB and the GPU gets 64, and data has to be copied from one chunk to the other.
Unified memory means both CPU and GPU not only share physical memory but share the address space, all memory is accessible to both at the same time. This means that e.g. you can create commands or load data in memory on the CPU then just tell the GPU "your stuff is here" with no copy needed anywhere, and likewise the other way around.
With iGPUs, it is pretty standard to be able to map "CPU memory" into the GPU's address space and access it directly, without copies.
See section 5.7 here: https://software.intel.com/content/dam/develop/public/us/en/...
I don't think Apple has provided enough information to say if the M1 "unified memory" is actually novel or not. Automatic mirroring between CPU and GPU page tables would be pretty novel, but I don't think there's any info currently available to suggest that happens.