Linux-kernel 3.7 gaat 64bit-ARM-architectuur ondersteunen

Bij de ingezette ontwikkeling van versie 3.7 van de Linux-kernel is code opgenomen voor AArch64, de 64bit-ARM-architectuur. De 64bit-ondersteuning is vooral interessant voor energiezuinige servers die moeten draaien op ARMv8-processors.

Catalin Marinas, ontwikkelaar bij ARM, deed in juli de eerste voorstellen voor het toevoegen van AArch64-ondersteuning. Nu kernel 3.6 de deur uit is, kan de AArch64-code worden opgenomen in Linux-kernel 3.7. Hierdoor moet deze kernelversie het mogelijk maken om op ARMv8-processors een 64bit-adresruimte te benutten, waarbij de grens op 256TB komt te liggen. Verder komt er een einde aan de beperking van het adresseerbare werkgeheugen van 4GB bij 32bit. Daarnaast kunnen 64bit-applicaties sneller draaien dan hun 32bit-tegenhangers, dankzij nieuwe instructies.

Ondersteuning voor AArch64-support in de komende Linux-kernel is goed nieuws voor serverbouwers die ARM-servers met ARMv8-processors willen uitbrengen. ARM-servers kennen veelal een lager energieverbruik dan servers die x86-processors gebruiken, maar de huidige ARMv7-architectuur is voor bepaalde geheugenintensieve toepassingen niet geschikt, als gevolg van de 32bit-beperkingen.

De ARMv8-architectuur wordt met name in de Linux-wereld gezien als een game changer bij de ontwikkeling van energiezuinige serversystemen. Dergelijke processors, van diverse fabrikanten, worden in de komende maanden en begin 2013 op de markt verwacht.

Door Dimitri Reijerman

Redacteur

02-10-2012 • 16:20

26

Reacties (26)

26
25
15
2
0
8
Wijzig sortering
ARM is toch een RISC, word het met al die nieuwe inscructies en met de backwards compatility niet meer een CISC ondertussen?

Edit: Nevermind, ik begrijp de termen RISC en CISC niet helemaal geloof ik.

[Reactie gewijzigd door Ramono op 23 juli 2024 02:34]

De Reduced slaat op Instruction, niet op Set. Dus niet een beperkte set, maar beperkte instructies, d.w.z. hele eenvoudige instructies en niet instructies die complexe dingen doen. Dus nieuwe 64-bits instructies veranderen er niets aan als deze dezelfde eenvoud hebben.

(vraag me trouwens af of het oude RISC OS van de Acorn Archimedes nog op de huidige ARM-processoren zou draaien. In beginsel neem ik aan van wel? Even los van beeldaansturing e.d. uiteraard)
Ja. Er wordt wel eens gelachen over de ballast die x86 meesjouwt, maar ARM doet dat inmiddels ook redelijk. En met deze nieuwe architectuur wordt dat weer een tandje meer: AArch32 blijft 100% naast AArch 64 bestaan. Opmerkelijk, want er zijn genoeg servertoepassingen denkbaar waar dat helemaal niet nodig is.
Reden is ws dat, net als x86, die 'ballast' nauwelijks nadelen heeft. Backwards compatibility haal je er in de praktijk alleen uit als je er significante winst (efficiency/kosten/security/etc) mee kan behalen.
Nee, want ARMv8 is niet volledig backwards compatible met de ARMv7. Volgens mij hebben ze namelijk de 32-bits thumb instructies er uit gesloopt die meer gericht zijn op embedded controllers en dergelijke. Dit geeft ook aan dat ARMv8 echt meer voor de high-end markt bedoeld is, dus servers, en waarschijnlijk uiteindelijk ook wel mobiele telefoons.
Anoniem: 76854 @Squee2 oktober 2012 19:33
Zo ver ik weet is de Aarch32 state van de armv8-a volledig backward compatible met armv7-a. Wat ik zo niet kan vinden is of de Aarch32 en 64 states tegelijkertijd instructies kunnen verwerken.
Nee je hebt inderdaad gelijk. Ik had me er zelf nog niet in verdiept maar een collega van me had het er laatst over. Ik heb net eens zitten kijken maar er zijn alleen maar een aantal 16 bits thumb instructies gemarkeerd als 'deprecated', vooral die direct de program counter veranderen. Niet zo gek ook, want dat gooit nogal wat roet in het eten voor je out of order execution waarvoor ARMv8 onder andere beter geschikt gemaakt is.
Goede ontwikkeling als je het mij vraagt alleen waarom is hier een kernel voor nodig en ontwikkeld suse een OS voor ARM processoren? Dan zou die techniek er toch al moeten zijn?
OpenSUSE heeft een OS ontwikkeld voor de ARMv7-instructieset. Hier zijn al een aantal verschillende Operating Systems voor, maar nog niet echt eentje die de ARMv8 ondersteund. Het ondersteunen van de voorgaande generatie zal al in de kernel en kon daardoor worden opgepakt door bijvoorbeeld Fedora en Ubuntu. Embedded systemen draaiden vaak niet meer dan 4GB en dat zal dus in de toekomst meer kunnen worden. Dit zou dus ook interessant kunnen worden voor thuisgebruik.

edit: Bedankt kidde voor de opmerking. Je hebt gelijk.

[Reactie gewijzigd door Sietse1990 op 23 juli 2024 02:34]

Om verwarring te proberen te voorkomen: Sietse bedoelt vziw "ARMv7 instructieset"; met architectuur wordt meestal verwezen naar de fysieke implementatie van de instructieset. Bijv ARM Cortex A9, Marvell Sheeva of Qualcomm Krait.
Dit is specifiek voor 64-bits ARM, de meeste ARM-processoren zijn (in tegenstelling tot 'x86') nog 32-bits. (Maar feit blijft dat je x86 en ARM maar moeilijk kan vergelijken)
De 64-bit is vooral nodig zodat men servers kan maken met meer geheugen, dat is het belangrijkste. Dat was voor x86 zo (ook al kan het wel nuttig zijn voor bepaalde toepassingen op de desktop) en nu kan het ook voor ARM.
Anoniem: 241216 @cork872 oktober 2012 16:33
De OpenSUSE versie is bedoeld voor de ARMv7-architectuur (en dan een selectief aantal chips) en door de ontwikkelaars van OpenSUSE zelf ontwikkeld. Als de generieke Linuxkernel ARMv8-support krijgt betekent dat in principe dat alle distro's die gebruik maken van die kernel op een ARMv8-platform kunnen draaien zonder dat ontwikkelaars van die distro daar zelf een kernel voor hoeven te ontwikkelen.
Er wordt hier niet speciaal een kernel voor ontwikkelt, maar er wordt ondersteuning voor dit architectuur en instructieset toegevoegt aan de bestaande Linux kernel.

En Suse zal wel een Linux distrobutie gemaakt hebben die geschikt is (meer dan andere distros?) voor de hardware waar deze CPU's meestal op geplaatst worden. Denk aan bepaalde software die beter draait om minder snelle hardware.
Linux ondersteund al jaren de 32-bits ARMv7 instructieset (32-bit). Android gebruikt ook de Linux-kernel. De Windows 8 RT tablets gebruiken volgens mij ook gewoon de oude ARMv7 instructieset, en lopen daarmee dus niet voor op Linux/Android. Het nieuwe in Linux 3.7 is dat nu ook de 64-bits ARMv8 instructieset ondersteund wordt, iets wat bij Windows dus nog niet het geval is (i.i.g. is dat nog niet publiek bekend)

Verder zou ik niet weten waarom Android en iOS onvolwassen zijn, voor tablets/smartphones werkt het prima. Het niet hebben van een desktop-versie is iets anders dan onvolwassen.

[Reactie gewijzigd door Eärendil op 23 juli 2024 02:34]

En voor de desktop hebben we OS X en verschillende linux distro's zoals Suse, Redhat & Ubuntu.

Zeker geen onvolwassen OS-en.
Ben ik de enige die denkt dat ze daar wat laat mee zijn?
Nee, het is juist heel vroeg. De verwachting van ARM is dat de eerste chips met de 64-bits v8-instructieset pas in 2014 in productie zullen worden genomen. Er zijn momenteel nog niet eens prototypes van te krijgen, dus deze code kan alleen op een emulator getest zijn. Linux laten draaien is gewoonlijk een van de eerste dingen die men op nieuwe chips wil bereiken. Wie de wijzigingen voor de kernel goed in de gaten houdt kan daarom vaak hints opvangen over toekomstige producten. Microsoft laat gebruikelijk veel minder van zich horen over zijn plannen, maar is ongetwijfeld bezig met dezelfde voorbereidingen.

[Reactie gewijzigd door Wouter Tinus op 23 juli 2024 02:34]

Prototypes zijn volgens mij wel te krijgen, bij Applied Micro en ze heten 'XGene'.

http://www.anandtech.com/...xgene-the-first-armv8-soc
filmpje van werkend prototype: http://armdevices.net/201...er-on-chip-shown-on-fpga/

[Reactie gewijzigd door kidde op 23 juli 2024 02:34]

iOS & Android geen volwassen OS-en?
Kun je dat motiveren?
Want naar mijn idee zijn het beide prima OS-en met ieder hun eigen doelgroep.
3.7, is dat niet zo'n versie die niet naar de gebruiker gaat, maar een 'ontwikkel'-versie blijft?
Nee hoor. De oneven versies zijn ook stabiel. http://www.kernel.org
Sinds de 3.x nummering geldt dat niet meer. Eigenlijk hoor je nu iedere release te kunnen gebruiken.
Dat is al sinds 2.6.x niet meer zo, ongeveer 9 jaar dus...
Anoniem: 449164 2 oktober 2012 17:36
Goede ontwikkeling, ben heeeeel erg benieuwd tot wat deze servers in staat zijn.
Anoniem: 390704 2 oktober 2012 20:53
Die git.kernel.org toont alleen wat meta-files (Makefile, etc). Is dat alles wat er nodig is? Is het daarmee klaar voor wat betreft de Linux-kernel? Zorgt daarna gcc en libc voor de rest?

Verder:
Op http://www.h-online.com/o...Linux-kernel-1721911.html staat nog wat extra informatie:

"Applied Micro Circuits Corporation (AMCC) has now produced the first sample chips", dus er zijn nu blijkbaar al een paar ARMv8 chips om Linux op te testen.

"When queried via a program such as uname, the kernel continues to return the cumbersome "aarch64"" ... aarch ... ! ;)

Op dit item kan niet meer gereageerd worden.