Finishing up the hardware


My Android phone has 1GB of RAM and even that does not seem to be enough to do multitasking: switching between the browser and a game for example, is likely to get the other thing killed. This is very annoying. Randomly killing stuff when stupid poorly coded apps request too much memory, I don't really like that principle.


My Pandora with 512MB of RAM is much, much better at multitasking than my Android phone with 1GB of RAM. Both are technically Linux-based, but I think Android illustrates how even a good base can always still be screwed up by the layers above.
To be fair, phones are suited to be a bunch of tasks Pandoras aren't. At the very least they've got to be ready to receive calls and start taking pictures. And if your phone's significantly higher resolution than your Pandora that's going to have a memory cost too. I doubt these things account for all of the higher footprint but surely some of it.
Only receiving calls is something that a phone is constantly ready for. Taking pictures: not so much, the camera app can take its time to load. Other background stuff (text messages and all kinds of notifications): probably a lot of that going on, but those shouldn't really require tons of memory (but they probably do) -- the data itself (text messages, emails, tweets, whatever) should be very small, and the code to receive the data should not be that complicated, I don't really see why it would need more than, say, 1MB.
 
How much energy does RAM memory need? I suspect it's not a huge amount compared to all the rest, but keep in mind that RAM is always powered, even in standby mode when the screen and the CPU are effectively consuming zero power, so perhaps the power consumption of the RAM does play a role in the battery life.
Well... Linux does support memory hotplugging...

2GB of RAM should be adequate to run the Debian OS,  3 Android VMs, web browser, LibreOffice, a movie and one incredibly resource intensive game all at once - but not much more than that.   :lol:
How will that work,  if Android itself requires 3 GB of RAM? (will Android VMs be officially supported?)
 
Taking pictures: not so much, the camera app can take its time to load.
Maybe you feel that way. Other people want to be able to take pictures of something immediately, sometimes before they miss their opportunity to.
 
How much energy does RAM memory need? I suspect it's not a huge amount compared to all the rest, but keep in mind that RAM is always powered, even in standby mode when the screen and the CPU are effectively consuming zero power, so perhaps the power consumption of the RAM does play a role in the battery life.
Well... Linux does support memory hotplugging...
Yes, and even if it didn't, in the worst case I could live with a "reboot to 1GB RAM mode" option.

The question is: will the hardware support not powering part of the RAM? From what I understand, the 2GB is made out of 4 chips of 512MB, so theoretically I guess it should be possible to disable half of them, but would the hardware support that?

It would be nice to have some information about the (approximate) power consumption of the specific DDR3 RAM chips the Pyra is going to get, in particular while idle (doing nothing but refreshing itself). If the difference between 2GB and 1GB is only 2mW or so, then it doesn't matter much at all, but if it's 20mW or so, then it starts to be a factor I would take into account, because it would have a noticeable impact on the standby time (one or two days difference, perhaps).

Taking pictures: not so much, the camera app can take its time to load.
Maybe you feel that way. Other people want to be able to take pictures of something immediately, sometimes before they miss their opportunity to.
No no, what I meant to say is that on my phone, the camera app does sometimes take some time to load. I'm not saying this is a good thing ;)
 
Last edited by a moderator:
I suppose it's all the quietly-forwarding-to-NSA thing that's taking the memory usage :p
Nah, I think our phones analyse and process all the data and THEN send it to the NSA. That could explain why my phone with a dual-core CPU is so slow as well ;)
 
Last edited by a moderator:
Maybe we could zip the memory so it fits in even fewer chips. But that wouldn't be convenient at all.

Otherwise, maybe we could fit most of the needed process (OS and selected software) in a 512 chip, and fit the not-directly-needed-after-recovery software in a page file.
 
Well... Linux does support memory hotplugging.
 It does? How does removing RAM at runtime work? Do you have to signal it before you do? Or is only adding memory supported?
It's called page migration, the system moves all allocated pages off some chip into others and then can turn off that chip. I haven't used memory hotplug specifically, but the described mechanism is already used on pandora to allocate huge pages that can give performance.
 
Last edited by a moderator:
2GB of RAM should be adequate to run the Debian OS,  3 Android VMs, web browser, LibreOffice, a movie and one incredibly resource intensive game all at once - but not much more than that.   :lol:

For the eMMC - you guys are thinking about it backwards and valuing size over speed.

eMMC is capable of TWICE the data rate of microSD.  However the fastest eMMC are MUCH more expensive per GB.

eMMC maxes out at 200MB/s (+/-)

microSD maxes out at 100MB/s (+/-)

If a 16GB 200MB/s eMMC costs the same as a 32GB 100MB/s eMMC, I'd rather have the 16GB eMMC installed.

Max out the speed on the internal eMMC.  I can already buy microSD cards that max out the speed of the microSD port.  That gives the end user a choice of sorts.  Use the smaller, but super fast internal eMMC or drop in a slower but much larger microSD card.

Heck, if it makes the eMMC considerably faster, I'd be OK with the eMMC being only 8GB.  User data can all go on the two SD cards anyway.
I'm not sure if raw transfer speed is really that important for the eMMC. It would have a bit of impact on the boot time, and the time needed for a suspend-to-disk, but other than that, I don't think it really makes a huge difference in practice between 100MB/s and 200MB/s. At least not for the loading times of most software.

For data transfers (e.g. if you put movie files or something on the eMMC) from the eMMC to something external over USB 3.0 or eSATA, it does make sense to have an eMMC that is as fast as possible.

The thing is: if the eMMC is small, you'll probably want to use it only for software, not for data, so the fast data transfers are not really very useful.

If the eMMC is big, you might want to use it for data, and then the data transfer speed matters more.

So I would say: try to find a good balance between speed, size and price.
Two use cases.

1.  My vision above with smaller (16GB isn't all that small) but crazy fast eMMC is to use the eMMC much like it is on the Pandora.  For OS, primary/system programs plus /swap and suspend-to-disk - combined all of that should fit in 8-12GB.  By placing those on a VERY fast eMMC it would allow for the fastest possible boot/reboot/shutdown/suspend/restore cycles possible.  All other data and programs would then live quite happily on the SD cards.

2.  If a user would prefer the option of having a large or even huge (up to 200GB), somewhat slower microSD in place of the eMMC for software, data and all - that is still an OPTION.  They would need to buy the microSD card, copy the OS over to it, install, etc.

The Pyra does not have to ship with a huge eMMC to allow both types of use cases (small&fast Vs large&slower).  The Pyra can ship with the solution to 1 above, and option 2 can be filled by end users.  If it doesn't ship with the solution to option 1, then option 1 is from then on NEVER an option.

That eMMC -can- be VERY fast storage, but can never be as large as a microSD.

The microSD can be VERY large storage, but can never be as fast as the eMMC.

Let each play to it's strengths - make the eMMC the FASTEST it can be, then of those fast options, make it the largest that will fit the budget for the component.  But let's take advantage of the strength of that  eMMC controller's speed capabilities for what gets soldered to the board.

How much energy does RAM memory need? I suspect it's not a huge amount compared to all the rest, but keep in mind that RAM is always powered, even in standby mode when the screen and the CPU are effectively consuming zero power, so perhaps the power consumption of the RAM does play a role in the battery life.
Well... Linux does support memory hotplugging...

2GB of RAM should be adequate to run the Debian OS,  3 Android VMs, web browser, LibreOffice, a movie and one incredibly resource intensive game all at once - but not much more than that.   :lol:
How will that work,  if Android itself requires 3 GB of RAM? (will Android VMs be officially supported?)
Where on earth did you get the idea that an Android VM would need 3GB or RAM?  The Samsung Galaxy S, a powerhouse flagship of it's time, had 512MB of RAM.  Many Android phones were released with only 256MB or RAM.

I do not expect anything beyond the shipping Debian OS and it's components to be 'officially supported'.  EVERYTHING beyond that is expected to be community driven/invented/maintained.  Android VM capability would likely be a post-production community created product - if it happens at all.  This is the same 'support' as the Pandora has with every emulator, program, etc...  The community is nothing without the hardware to work on.  The hardware doesn't do much without the community.  

This is a totally different model from most consumer devices that you can buy in a store.  In those cases the manufacturer wants to control the hardware and the software and anything either can do - to make sure that they can monetize all of your interactions with either.
 
Hmm... I was just wondering, how much power the Rotator Chip needs, when it needed thicker traces to get it to work?
 
Last edited by a moderator:
Hmm... I was just wondering, how much power the Rotator Chip needs, when it needed thicker traces to get it to work?
I don't know for sure, but the datasheet of the SSD2805C (Not sure if it's this one used, maybe different type but I guess the biggest one uses the most power so rest would use less) states it uses 12mA in high speed mode, all other modes use less power.

(datasheet: http://www.techtoys.com.hk/Components/SSD2805CG39R/SSD2805C_1.1.pdf )

That actually doesn't sound that much to me, but I'm just guessing here.

(More info on how to calculate width of trace to allow 12mA current: http://electronics.stackexchange.com/questions/5403/standard-pcb-trace-widths )
 
That actually doesn't sound that much to me, but I'm just guessing here
To put it into perspective, that equates to approximately 15 minutes in 10 hour usage on the Pandora. (ie, instead of 10 hours you would only get 9 hours 45 minutes)
 
That actually doesn't sound that much to me, but I'm just guessing here
To put it into perspective, that equates to approximately 15 minutes in 10 hour usage on the Pandora. (ie, instead of 10 hours you would only get 9 hours 45 minutes)
That is worst case scenario also, at it is the highest usage possible by the rotator. 15minutes on 10 hours does sound a lot for an additional chip, only because there aren't that many landscape models available (You could save 15min. by having a different screen). I also read somewhere that adding the rotator might save some energy too, but I don't know the details.

What I ment by "it's not that much" is I assume even a tiny trace can handle 12mA. So I assume they are trying to keep the traces as small as possible and the fab might have issues having good quality at that low pitch. But I'm only speculating what the cause could be that it's required to use a larger pitch trace.
 
The rotator chip ought to save some power compared to using the GPU to rotate the screen the put it back in RAM for the rasteriser to pick up.  I've no idea how much power not using the GPU saves, but I suspect it's more than 12mA.

If a suitable landscape screen could have been sourced, it would even have saved those 12mA, but sadly no such component seems to be being produced at present (the Pandora screen was designed originally for an Archos tablet designed for horizontal use, iirc, but nowadays those screen sizes fall into the category of large smartphone, which is definitely a portrait device most of the time).
 
Stupid question:  I like the Pandora screen a lot.  It wow all my collegues for it's clarity and sharpness given its small size running full linux.  So the question is is it possible to hack the Pyra somehow to work with the Pandora screen?  I always have this dream of an extra port/connection on the pyra that can provide a method for the Pandora's screen to be hooked up and works (even touchscreen).
 
Last edited by a moderator:
Back
Top