ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
ARM-instructieset - Wikipedia

ARM-instructieset

Uit Wikipedia, de vrije encyclopedie

De ARM-instructieset is een zeer succesvolle instructieset, die is bedacht door de Britse computerfabrikant Acorn Computers Ltd rond 1984. De naam ARM staat voor Acorn RISC Machine, waarbij RISC een afkorting is van Reduced Instruction Set Computer. De eerste implementatie van de instructieset in silicium, het ARM1 prototype, werd in 1985 ontwikkeld en functioneerde, tot Acorn's verbazing, vrijwel feilloos. Haar ARM processoren werden aanvankelijk als losse upgrades verkocht voor Acorn's eigen BBC Micro computers, maar vormden in 1987 de basis van Acorn's nieuwe generatie Archimedes computers. Sinds 1991 wordt de ARM-instructieset beheerd en verder ontwikkeld door ARM Ltd. Vandaag de dag wordt de ARM instructieset door vele fabrikanten in licentie genomen, waarna zij vervolgens de chips produceren en in miljoenen apparaten verwerken.

Inhoud

[bewerk] Ontstaan

De geschiedenis van de ARM processor begint in 1983. Acorn produceerde destijds de BBC Micro computer en gebruikte zoals vele fabrikanten de 6502 van MOS Technology. De ontwerpers van Acorn realiseerden zich echter destijds al dat het 6502 ontwerp weinig groeipotentieel bezat en niet aan hun eisen voor een nieuw computer-platform kon voldoen. Zodoende gingen ze op zoek naar een andere processor.

Aangezien Intel weigerde haar 80286 te licenseren voor gebruik met Acorn's nieuwe systemen en de Motorola 68000 niet voldeed aan Acorn's hoge eisen, besloten ze zelf een nieuw type processor te ontwikkelen.

Het resultaat, de ARM1 processor, bestond uit slechts 33000 transistoren en was daardoor in vergelijking met de 68000 en 80286 veel goedkoper te produceren en gebruikte minder energie. Bovendien was de ARM een 32-bit processor. De 80286 was slechts 16-bits en werd al aangeprezen als "de revolutionaire 16-bit 80286". De 68000 had wat meer recht van spreken, die was intern 32-bit, extern echter maar 16-bit.

[bewerk] Kenmerken

Opvallend aan de ARM processor is, dat, alhoewel de processor conceptueel totaal anders werkt dan de 6502, je het gevoel van 6502 programmeren toch enigszins terug krijgt. De ARM-instructieset gebruikt een versimpeling van de processor om deze krachtiger te maken.

[bewerk] Voorwaardelijke instructies

Het eerste belangrijke kenmerk hiervan is hoe de processor met voorwaardelijke instructies omgaat. In de x86 instructieset bestaan bijvoorbeeld een hoop voorwaardelijke spronginstructies, zoals jc, jg, jae, enz. Welnu, op de ARM-processor is er slechts één spronginstructie, namelijk b, maar kunnen alle beschikbare instructies voorwaardelijk worden uitgevoerd; een voorwaardelijke variant van een sprong is niet langer een aparte instructie, maar een optie bij de spronginstructie. Dat maakt het echter ook mogelijk om voorwaardelijk op te tellen, te verplaatsen, enz. Het maakt de processor dus krachtiger, want de decodeereenheid in de processor hoeft nu nog maar één spronginstructie te herkennen. De logica die bepaalt of een spronginstructie wordt uitgevoerd, hoeft niet meer te controleren of het om een spronginstructie gaat; de logica werkt nu op alle instructies.

[bewerk] Schuifmogelijkheden

Als de cijfers van een binair getal één positie naar links worden geschoven, wordt de getalswaarde twee keer zo groot. De meeste processoren kennen daarvoor aparte schuifinstructies ("shift"). Een opvallend kenmerk van de ARM instructieset is, dat iedere instructie schuifmogelijkheden heeft. De x86 instructieset heeft bijvoorbeeld de volgende adresseermode:

mov eax,[4*eax] 

Welnu, op de ARM kan de rechteroperand van iedere instructie een n aantal plaatsen naar links worden geschoven. Daarmee kan je hetzelfde bereiken, alleen het is flexibeler, op de ARM kan het met iedere instructie. Bijvoorbeeld als je optelt kun je op de rechteroperand een schuifoperatie toepassen, zoals:

add r0,r1,r2 lsl 2

... wat neerkomt op:

r0:=r1+4*r2;

Ook deze functionaliteit is erg krachtig maar eenvoudig in de processor in te bouwen. Zij zorgt echter dat je minder instructies in je programma nodig hebt.

Het gevolg van al dit alles was dat de ARM processor niet alleen goedkoper en zuiniger was dan zijn concurrenten, maar ook sneller.

[bewerk] Succes dus?

Alhoewel de ARM processor op zich zeer succesvol is geworden, is haar zichtbare rol bescheiden. Acorn gebruikte de processor in haar eigen computers en deze waren hun tijd vooruit. Deze computers draaiden een, voor de tijd nogal geavanceerd, besturingssysteem genaamd RISC OS, dat speciaal ontwikkeld was voor gebruik met de ARM processor. Alhoewel er een trouwe groep gebruikers ontstond, waren deze computers niet bijster succesvol buiten de onderwijs sector. In 1998 stopte Acorn met het bouwen van desktop computers en richtte zich exclusief op de digitale televisie markt.

De rest van de computerindustrie in de jaren tachtig had vooralsnog weinig interesse in de processor. MS-DOS was geschreven voor de 8086, en de drie grote onafhankelijke fabrikanten, Apple, Commodore en Atari hadden zich toegelegd op de Motorola 68000. Stroomverbruik speelde in die tijd een minder belangrijke rol en de concurrerende processoren konden tegen redelijke prijzen geproduceerd worden. Echter aan het begin van de jaren negentig toonde Apple groeiende interesse in de ARM processor en zou later met Acorn een firma oprichten exclusief toegelegd op de ontwikkeling van deze processor architectuur. Deze samenwerking werd gerealiseerd in 1991 met de oprichting van de firma Advanced RISC Machines Ltd. Eén van de eerste concrete resultaten uit deze samenwerking was de ARM610 chip, die Acorn in haar Risc PC werkstation en Apple in haar Newton PDA hebben ingezet.

De ontwikkelingen kwamen in een stroomversnelling toen het bedrijf de ARM7TDMI, een versie van haar zevende processorkern, voorzien van de ARMv4T-instructieset, licenseerde aan chipmakers Atmel, Philips Semiconductors en STMicroelectronics. Ook Intel kreeg een licentie in handen, die vooral populair werd bij PDA's.

Het stroomverbruik was ondertussen een kritische factor, met name in draagbare computer elektronica. In een PDA bijvoorbeeld merk je het stroomverbruik direct terug in de levensduur van de batterijen. Zodoende zijn ARM processorkernen in de nodige PDA's ingezet, waarvan de Apple Newton en Sharp Zaurus de bekendste zijn. Andere bekende producten zijn de Gameboy Advance en DS van Nintendo en de iPod van Apple.

Van het grootste gedeelte ARM processorkernen in gebruik weet je echter niet dat je ze hebt: mobiele telefoons, televisies, auto's, wasmachines, enz.

[bewerk] Externe links


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -