Web Analytics
Privacy Policy Cookie Policy Terms and Conditions ARM-instructieset - Wikipedia

ARM-instructieset

De ARM-instructieset is een zeer succesvolle instructieset, die is bedacht door de Britse computerfabrikant Acorn Computers Ltd rond 1984. Haar ARM processoren werden aanvankelijk als losse upgrades verkocht voor Acorn's eigen BBC Micro computers, maar werden sinds 1987 in Acorn's nieuwe generatie Archimedes en Risc PC computers ingezet. Vandaag de dag wordt de ARM processor door vele fabrikanten gebruikt en in ontelbare apparaten verwerkt. Sinds 1991 wordt de ARM-instructieset beheerd door een van Acorn afgesplitst bedrijf geheten ARM Ltd. De naam ARM staat voor Acorn RISC Machine. RISC staat voor Reduced Instruction Set Computer.

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 Commodore. 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 de processor 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.

Op den duur werd stroomverbruik wel een kritische factor en met name in draagbare computer elektronica. In een PDA merk je het stroomverbruik direct terug in de levensduur van de batterijen. Zodoende is de ARM processor 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 processoren in gebruik weet je echter niet dat je ze hebt; Mobiele telefoons, televisies, auto's, wasmachines, enz.

[bewerk] Externe links

 
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - 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 - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - 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 - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - 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

Static Wikipedia 2008 (no images)

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 -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - 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 - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - 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 - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - 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

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - 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 - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - 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 - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - 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