Friday, December 24, 2010

Mystery (probably) solved; how Samsung pulls off its GPU magic.

EDIT - Hmm. One of my readers (who has been an enormous resource in the past) has posted below in the comments why I am likely incorrect in my theory. Be sure to check out the comments at the end of the article!

So, despite my efforts to pull myself away from ARM architecture, Android, and specifically, the mysteries surrounding the Hummingbird processor, I can never really extract myself. One of these days I'll get around to obsessing over something else (hopefully career-related) but until then, I'll let you know what I think I've uncovered as the solution to how Samsung solved the GPU bandwidth issue (which I puzzled over in my original Hummingbird vs. Snapdragon article.)

There have been a few opportunities where I've had to step in and correct people when they post that a Galaxy S phone has only ~320 megs of RAM. It's an error I see made frequently when people use Android system info applications that can only see the 320 megs of volatile memory, despite the fact that the phone does actually contain 512 megs of RAM. We see it happen every time a new Galaxy S phone is leaked, even the Nexus S.

The explanation for this has always been that a certain amount of memory have been "reserved" by Samsung for the Android OS, and that memory is not visible nor available to applications. Despite this, I've never been able to figure out exactly how the system provides the 12.6 GB/sec of memory bandwidth it (theoretically) needs to push out 90 million triangles/sec with the PowerVR SGX540 GPU.

I'm not quite sure how it happened, but in my meanderings across the interwebs, I ran across the following image on odroid.com, of the block diagram of the S5PC110 that they use for their developer board.