ARM Laptopproject deel 1: Voorwoord en hardware-eisen

Door C.Hariri op zondag 19 augustus 2012 23:17 - Reacties (20)
Categorie: -, Views: 7.783

http://i.imgur.com/UvMyW.png
Doordat hardware tegenwoordig relatief zo goedkoop is hebben de meeste huis-tuin-en-keuken computers een exces aan verwerkingskracht. Door gebruik te maken van efficiŽnte software kunnen kleinere en zuinigere hardware geschikt gemaakt worden voor de gemiddelde taken. Het doel van dit project is een laptop van maximaal 1,5kg met een accuduur van minimaal 16 uur. De meeste plannen voor dit systeem liggen al klaar. Ik zal ze in dit blog uitwerken en er toelichting op geven hoe bepaalde keuzes tot stand zijn gekomen. Feedback van medetweakers wordt uiteraard op prijs gesteld.

Disclaimer: aangezien dit geen wetenschappelijk artikel is heb ik de vrijheid genomen om mij niet te houden aan allerlei conventies en methoden. Genoemde waardes en conclusies zijn dan ook in het beste geval een goede schatting en dus niet geldig in wetenschappelijke context.

http://i.imgur.com/KpvBQ.png
CPU: De Raspberry Pi is mijn referentiepunt voor een zuinig ARM systeem. Met behulp van Htop is een gemiddelde load-average gemeten bij de taken waarvoor het uiteindelijke systeem gebruikt zal gaan worden. Gemiddeld genomen was deze bij het opstarten van software rond en om 3 tot 4. Dit houdt in dat indien de CPU van de Raspberry Pi 3 tot 4 keer sneller zou zijn, we nog net een CPU-load zouden hebben van 100%. Dit gegeven zullen we verder gebruiken als minimale eis waaraan onze hardware zal moeten voldoen.

Als referentie kunnen we waardes verkregen met een benchmark genaamd “nbench” nemen. nbench test de singlecoreperformance van het geheugen-, integer- en floating-pointoperaties. Deze worden weergeven als een index ten opzichte van een AMD K6 233 Mhz. Met behulp van waardes verkregen met nbench kan een goede vergelijking worden gemaakt.
Raspberry Pi:
MEMORY INDEX : 2.539
INTEGER INDEX : 3.121
FLOATING-POINT INDEX: 1.960

Bron: http://www.raspberrypi.or...iewtopic.php?f=63&t=12579
IMX53:
MEMORY INDEX : 6.436
INTEGER INDEX : 6.409
FLOATING-POINT INDEX: 1.661

Pandaboard:
MEMORY INDEX : 6.523
INTEGER INDEX : 6.188
FLOATING-POINT INDEX: 6.815

Bron: http://www.powerdeveloper.org/forums/viewtopic.php?p=14832
We zien dus dat een moderne ARM processor op 1Ghz per core 2 tot 3 keer sneller is dan de CPU van de Raspberry Pi. Om aan de minimale eis van 3-4x sneller te kunnen voldoen is dus een dual-core nodig.

Om een vergelijking te kunnen trekken met x86 hardware kan de volgende tabel worden gebruikt: http://www.tux.org/~mayer/linux/results2.html. Verder heeft Phoronix het Pandaboard gebenchmarkt tegen de Pentium-M en Atom van Intel. http://www.phoronix.com/s...&item=pandaboard_es&num=1

RAM: Het volgende probleem is de grootte van het RAM. Onder normale omstandigheden gebruikt een kaal OS onder de 100MB. Per programma schat ik het gemiddelde verbruik op maximaal 100MB. 1GB is normaliter dus voldoende. In uiterste gevallen kan het echter voorkomen dat een programma, vaak Firefox met veel tabs open, deze grens overschrijdt. 2GB zou dus beter zijn.

Hardeschijf: Over de hardeschijf kunnen we kort zijn: een mechanische is niet zuinig genoeg en te fragiel. "Power Consumption Breakdown on a Modern Laptop" door Aqeel Mahesri en Vibhore Vardhan spreekt over een verbruik van tussen 0.6W en 2.3W.

Scherm: Ik heb de indruk dat 14" of 14.1" een goede maat is voor de laptop die in gedachte heb. Drie resoluties die hierop gangrijk zijn: 1600x900, 1440x900 en 1366x768. Hiervan vervalt de eerste aangezien ik deze schermverhouding onbruikbaar acht om goed te kunnen werken op een laptop van dit formaat. Van de overige twee resoluties ligt het voor de hand om 1440x900 te nemen omdat dit de hoogste resolutie is.

http://i.imgur.com/zhqCD.png
Deel 2: Vergelijking van beschikbare hardware
Deel 3: Elektronica
Deel 4: Uiterlijk & Totale geschatte kosten
Deel 5: Software en OS
Deel 6: Nawoord

Volgende: ARM Laptopproject deel 2: Vergelijking van beschikbare hardware 08-'12 ARM Laptopproject deel 2: Vergelijking van beschikbare hardware

Reacties


Door Tweakers user A_K, maandag 20 augustus 2012 00:07

Over het algemeen was deze load-average bij het opstarten van software rond en om 3 tot 4. Dit houdt in dat, indien de CPU van de Raspberry Pi 3 tot 4 keer sneller zou zijn, we nog net een CPU-load zouden hebben van 100%.
Dat kan je zo niet stellen, bij het opstarten worden veel bestanden gelezen en zitten de processen op de HD te wachten en niet op de CPU. Ik heb loads gezien van boven de 100 met een CPU belasting van 10%. Harddisk was hier het probleem en een snellere CPU had in dit geval niks opgelost (eerder verergerd, omdat een snellere CPU meerdere processen had gemaakt in dit geval)

En al is de CPU het probleem, stel dat op de rasberry elke seconde een proces wordt gestart die 2s draait. Na 1 minuut is de load al boven de 30. Op een ruim dubbel zo snelle CPU is de load onder de 1.

Op ebay koop je voor 40 euro een Lenovo IBM t41 met pentium m op 1.6ghz en 1400x1050 scherm. Gebruikt misschien 25W bij genoemde taken, uitgaande van 6 uur per dag gebruik kost je dat 12 euro aan stroom per jaar. Of probeer je zelf een fictieve ARM laptop in elkaar te zetten waarbij je een zo laag mogelijk verbruik probeert te krijgen ongeacht de kosten (gezien je keuze voor SSD en 1440x900) ?

[Reactie gewijzigd op maandag 20 augustus 2012 00:08]


Door Tweakers user C.Hariri, maandag 20 augustus 2012 00:22

Interessant punt. De load-average van 3 tot 4 was onder andere tijdens het opstarten van Midori en Abiword. Voordat ik deze inlaadde was de load average minimaal. Je kunt dus stellen dat deze dus veroorzaakt is door een enkel process. Of dit nu de hardeschijf (sd-kaart) is die de boel ophoudt kan ik je op dit moment niet vertellen. Ik zal morgen een benchmark uitvoeren om de snelheid van de SD-kaart te bepalen, en meten hoeveel RAM elk proces verbruikt zodat er een schatting kan worden gemaakt over hoe lang "theoretisch" dit de CPU zou ophouden. Ik ga er in iedergeval van uit dat er geen CPU cycli worden verspeelt tijdens het wachten op de hardeschijf (lees/schrijft acties gebeuren asynchroon met als enige overhead de interrupt handlers).

Overigens houdt jouw voorbeeld geen rekening met de overhead van context-switches (minder op een multicore indien er met een goede affiniteit gewerkt wordt), de mogelijkheid dat een thread 'suspended' raakt en andere zaken die de performance van meerdere threads beinvloeden. Dat er een nieuw process gespawned wordt op een snellere CPU is vreemd en vraagt om uitleg.

Ik zal het voorwoord aanpassen zodat de motivatie achter dit project duidelijk wordt.

[Reactie gewijzigd op maandag 20 augustus 2012 00:35]


Door Tweakers user A_K, maandag 20 augustus 2012 00:37

Ik ga er in iedergeval van uit dat er geen CPU cycli worden verspeelt tijdens het wachten op de hardeschijf.
Nee, maar het verhoogt wel de load met 1.

Ik weet niet wat je wilt met de load, de load als maatstaf nemen of een desktop systeem snel is is vreemd. Alleen al een systeem met deze patch: http://www.pcworld.com/bu...ers_huge_speed_boost.html werkt veel fijner bij een hoge load dan eentje zonder met een minder hoge (maar nog steeds hoge) load.

Door Tweakers user SanderL, maandag 20 augustus 2012 00:41

Wat is er in hemelsnaam mis met 1600x900?! Ik werk er zelf mee op m'n laptop en ben blij dat ik niet opgescheept zit met 1366x768. Wat extra breedte en hoogte is mooi meegenomen imho :)

Door Tweakers user C.Hariri, maandag 20 augustus 2012 00:58

Ik gebruik het als maatstaaf om te bepalen of hardware snel genoeg is om bepaalde processen uit te voeren, en zo niet, hoe snel de hardware dan zou moeten zijn wil het wel snel genoeg zijn (zoals in het artikel uitgelegd is).
That means, reading from left to right, one can examine the aging trend and/or duration of the particular system state. The state in question is CPU load—not to be confused with CPU percentage. In fact, it is precisely the CPU load that is measured, because load averages do not include any processes or threads waiting on I/O, networking, databases or anything else not demanding the CPU.

bron: http://www.linuxjournal.com/article/9001
Komt overeen met wat ik erover geschreven heb.
@Wat is er in hemelsnaam mis met 1600x900?! Ik werk er zelf mee op m'n laptop en ben blij dat ik niet opgescheept zit met 1366x768. Wat extra breedte en hoogte is mooi meegenomen imho
Ik werk zelf op 1440x900 @ 19" breedbeeld. De extra desktop ruimte is geweldig op dit formaat. 1600x900 is zelfs breeder en minder hoog waardoor je bijv. gemakkelijker 2 documenten naast elkaar kan zetten. Met wat ik ervaren heb op enige breedbeeld laptops die ik mocht gebruiken was dat je of de sensitivity van je trackpad hoger moet zetten (waardoor die minder nauwkeurig is), of teveel moet "scrollen". Overigens probeer ik de verhoudingen van de gulde snede zoveel mogelijk aan te houden, en 1440x900 komt daar het dichtste bij :-).

[Reactie gewijzigd op maandag 20 augustus 2012 01:19]


Door Tweakers user Blokker_1999, maandag 20 augustus 2012 05:30

En laat resolutie nu eens net datgene zijn wat geen bal te maken heeft met hoe groot iets op je scherm staat of hoe nauwkeurig je met de muis kan werken. Bij resolutie telt imho maar 1 ding: hoe hoger, hoe beter.

En wat die HDD betreft, bij vele van die development boards kan je idd geen HDD aansluiten, of toch zeker niet direct van opstarten. Je bent simpelweg verplicht van een flash kaart te nemen. Neem dan zeker wel 1 met voldoende snelheid, maar vergeet niet dat veel schrijfacties de kaart snel zullen laten verslijten. sd kaarten zijn er niet voor ontworpen

[Reactie gewijzigd op maandag 20 augustus 2012 05:31]


Door Tweakers user sypie, maandag 20 augustus 2012 09:00

Ik ben onder de indruk dat 14" of 14.1
Je bent ergens van onder de indruk of je hebt de indruk dat iets … is.

Door Tweakers user i-chat, maandag 20 augustus 2012 09:35

Blokker_1999 schreef op maandag 20 augustus 2012 @ 05:30:

En wat die HDD betreft, bij vele van die development boards kan je idd geen HDD aansluiten, of toch zeker niet direct van opstarten. Je bent simpelweg verplicht van een flash kaart te nemen. Neem dan zeker wel 1 met voldoende snelheid, maar vergeet niet dat veel schrijfacties de kaart snel zullen laten verslijten. sd kaarten zijn er niet voor ontworpen
dat probleem is HEEL makkelijk op te lossen, en de oplossing heet bootloader. - als je dat dan perse wilt zou je ook nog eens je kernel vanaf dat kaartje kunnnen laden... userspace draai je dan vanaf een normale ssd...

ONTOPIC

maar wat uit dit verhaal nog NIET duidelijk is... ga je die laptop ook echt bouwen, en zo ja hoe, heb je de kennis om zelf een moederbord te ontwwerpen, ga je dat laten doen of neem je een van de ontwikkelbordjes waar ga je de overige compenten vandaan halen zoals je toetsenbordje toutchpad

of is dit meer een fantasieblog over hoe geweldig je favorite nieuwe droomlaptop had kunnen zijn.

[Reactie gewijzigd op maandag 20 augustus 2012 09:40]


Door Tweakers user kipusoep, maandag 20 augustus 2012 10:41

... ligt het voor de hand om 1440x900 te nemen omdat deze de hoogste resolutie heeft.
... ligt het voor de hand om 1440x900 te nemen, omdat dit de hoogste resolutie is.

Door Tweakers user C.Hariri, maandag 20 augustus 2012 12:31

En wat die HDD betreft, bij vele van die development boards kan je idd geen HDD aansluiten, of toch zeker niet direct van opstarten. Je bent simpelweg verplicht van een flash kaart te nemen. Neem dan zeker wel 1 met voldoende snelheid, maar vergeet niet dat veel schrijfacties de kaart snel zullen laten verslijten. sd kaarten zijn er niet voor ontworpen
Wil je hiervoor graag naar verwijzen naar het volgende deel van dit blog (zodra dit af is).

Laptop wordt overigens daadwerkelijk gebouwd.

@taalfouten: bedankt! heb het aangepast.

[Reactie gewijzigd op maandag 20 augustus 2012 12:31]


Door Tweakers user i-chat, maandag 20 augustus 2012 12:49

C.Hariri schreef op maandag 20 augustus 2012 @ 12:31:
Laptop wordt overigens daadwerkelijk gebouwd.
heb je al enig idee wat een en ander gaat kosten, wat is je budget ... want dat maakt het natuurlijk wel giga interessant...

Door Tweakers user C.Hariri, maandag 20 augustus 2012 12:50

i-chat schreef op maandag 20 augustus 2012 @ 12:49:
[...]


heb je al enig idee wat een en ander gaat kosten, wat is je budget ... want dat maakt het natuurlijk wel giga interessant...
Onder de 600 euro, maar dat is hoofdzakelijk omdat er slechts 1 van gebouwd wordt.

Door Tweakers user armageddon_2k1, maandag 20 augustus 2012 14:15

600 euro is erg weinig. Helemaal als het maar 1 stuks is natuurlijk. Dan wordt het heel duur bepaalde onderdelen te maken. Ik weet alleen nog niet helemaal wat je bedoeling nou is :)

Door Tweakers user C.Hariri, maandag 20 augustus 2012 14:45

armageddon_2k1 schreef op maandag 20 augustus 2012 @ 14:15:
600 euro is erg weinig. Helemaal als het maar 1 stuks is natuurlijk. Dan wordt het heel duur bepaalde onderdelen te maken. Ik weet alleen nog niet helemaal wat je bedoeling nou is :)
Deel 2 staat erop. In principe zal ik alleen de PSU, het laadcircuit en de case zelf maken.

[Reactie gewijzigd op maandag 20 augustus 2012 15:11]


Door Tweakers user GOUDSBS, maandag 20 augustus 2012 14:45

Ik vind het een leuk idee, maar ik heb eigenlijk ook geen idee waar we naar toe gaan.... ben benieuwd... wat en hoe en wanneer :)

Door Tweakers user A_K, maandag 20 augustus 2012 15:23

C.Hariri schreef op maandag 20 augustus 2012 @ 00:58:
[...]

Ik gebruik het als maatstaaf om te bepalen of hardware snel genoeg is om bepaalde processen uit te voeren, en zo niet, hoe snel de hardware dan zou moeten zijn wil het wel snel genoeg zijn (zoals in het artikel uitgelegd is).


[...]


Komt overeen met wat ik erover geschreven heb.
Dat klopt dus niet. Kijk maar hier:
http://andyhan.linuxdict....oad-average-low-cpu-usage
http://serverfault.com/qu...load-low-io-low-cpu-usage

En de load bekijken is absoluut niet een geschikte manier om te bepalen of iets snel genoeg is of niet voor desktop gebruik...

[Reactie gewijzigd op maandag 20 augustus 2012 15:24]


Door Tweakers user C.Hariri, maandag 20 augustus 2012 17:24

A_K schreef op maandag 20 augustus 2012 @ 15:23:
[...]

Dat klopt dus niet. Kijk maar hier:
http://andyhan.linuxdict....oad-average-low-cpu-usage
http://serverfault.com/qu...load-low-io-low-cpu-usage

En de load bekijken is absoluut niet een geschikte manier om te bepalen of iets snel genoeg is of niet voor desktop gebruik...
CPU gebruik was in mijn geval constant 100%.

[Reactie gewijzigd op maandag 20 augustus 2012 17:29]


Door Tweakers user A_K, maandag 20 augustus 2012 20:23

C.Hariri schreef op maandag 20 augustus 2012 @ 17:24:
[...]

CPU gebruik was in mijn geval constant 100%.
Ja?
Dat dat bij jou was wil niet zeggen dat dat altijd zo is, en als de CPU 2x zo snel is kan het theoretisch zo zijn dat het constant 50% is.

Door Tweakers user edeboeck, woensdag 22 augustus 2012 20:37

Blokker_1999 schreef op maandag 20 augustus 2012 @ 05:30:
En laat resolutie nu eens net datgene zijn wat geen bal te maken heeft met hoe groot iets op je scherm staat of hoe nauwkeurig je met de muis kan werken. Bij resolutie telt imho maar 1 ding: hoe hoger, hoe beter.
Dit ben ik niet met je eens: als je 2 schermen vergelijkt waarbij scherm 1 13,3" is en scherm 2 scherm bijvoorbeeld 24", dan ga je toch echt niet beweren dat wat op het scherm staat bij scherm 1 even groot is als bij scherm 2??? :?
HOEVEEL je erop kan plaatsen is hetzelfde, maar dat wordt dan wel bij scherm 2 veel groter getoond.

Door Tweakers user C.Hariri, vrijdag 24 augustus 2012 01:09

A_K schreef op maandag 20 augustus 2012 @ 20:23:
[...]

Ja?
Dat dat bij jou was wil niet zeggen dat dat altijd zo is, en als de CPU 2x zo snel is kan het theoretisch zo zijn dat het constant 50% is.
Theoretisch kan alles. Het is aannemelijker dat beide processoren op 100% zullen draaien, de snellere 50% eerder klaar is.

@edeboeck
Ik ben het met je eens. Een hogere resolutie heeft maar beperkt zin op een klein scherm, omdat zelfs scherpe letters vanaf een bepaalde afstand onleesbaar worden.

[Reactie gewijzigd op vrijdag 24 augustus 2012 01:10]


Reageren is niet meer mogelijk