معماري ARM چيست؟ چه تفاوتي با x86 اينتل دارد؟

دوشنبه ۴ دي ۱۳۹۱ - ۲۳:۲۶
مطالعه 16 دقيقه
مرجع متخصصين ايران
ARM به چه معناست؟ معماري ARM چيست؟ چه تفاوتي با x86 اينتل مي‌‌كند؟
تبليغات

امروزه هر جا صحبت از تلفن هوشمند يا تبلت به ميان مي‌آيد، حتما نام ARM نيز به گوش مي‌رسد. پردازنده اكثر تبلت و تلفن‌هاي هوشمند بازار مبتني بر معماري ARM است. اما ARM به چه معناست؟ معماري ARM چيست؟ چه تفاوتي با x86 اينتل مي‌‌كند؟ چرا اين معماري تا به اين اندازه محبوب شده و دنياي موبايل را تحت كنترل خود قرار داده است؟ در ادامه مطلب براي رسيدن به پاسخ اين پرسش‌ها با اخبار تخصصي، علمي، تكنولوژيكي، فناوري مرجع متخصصين ايران همراه باشيد.

در اين مقاله به معرفي ARM، تاريخچه آن و مطالعه كلي نسل‌هاي مختلف CPUهاي ARM مي‌پردازيم اما در آينده نسل‌هاي پردازنده‌هاي ARM را با يكديگر مقايسه نموده و توضيحات كاملي در مورد هر نسل ارائه خواهيم كرد.

تاريخچه ARM

ARM نوعي از معماري پردازنده‌هاي كامپيوتري است كه بر طبق طراحي RISC CPU و توسط كمپاني بريتانيايي ARM Holding طراحي شده است. معماري ARM كه دستورالعمل‌هاي 32 بيتي را پردازش مي‌كند از دهه 1980 تا به امروز در حال توسعه است.

ARM مخفف Advanced RISC Machine است و از آنجايي كه اين معماري براساس طراحي RISC بنا شده، هسته اصلي CPU نياز به 35 هزار ترانزيستور دارد اين در حالي است كه پردازنده‌هاي معمولي رايج x86 كه براساس CISC طراحي شده‌اند حداقل نياز به ميليون‌ها ترانزيستور دارند. مهمترين دليل مصرف بسيار پايين انرژي در پردازنده‌هاي مبتني بر ARM كه باعث استفاده گسترده آنها در ابزارهاي پرتابل مانند تلفن هوشمند يا تبلت شده نيز همين موضوع است.

جالب است بدانيد كه شركت ARM Holding خود توليدكننده پردازنده نيست و در عوض گواهي استفاده از معماري ARM را به ديگر توليدكنندگان نيمه هادي مي‌فروشد. كمپاني‌ها نيز به راحتي تراشه‌هاي خود را براساس معماري ARM توليد مي‌كنند. از جمله كمپاني‌هايي كه پردازنده خود را براساس معماري ARM طراحي مي‌كنند مي‌توان به اپل در تراشه‌هاي Ax، سامسونگ در پردازنده‌هاي Exynos، انويديا در تگرا و كوالكام در پردازنده‌هاي Snpdragon اشاره كرد.

در سال 2011 مشتريان ARM توانستند 7.9 ميليارد ابزار مبتني بر اين معماري را وارد بازار كنند. شايد تصور مي‌كنيد كه پردازنده‌هاي مبتني بر ARM تنها در تبلت و تلفن‌هاي هوشمند بكار گرفته مي‌شوند، اما جالب است بدانيد كه در همين سال بيش از 95 درصد تلفن‌هاي هوشمند دنيا، 90 درصد ديسك‌هاي سخت (HDD)، حدود 40 درصد تلويزيون‌هاي ديجيتال و ست‌تاپ‌باكس‌ها، 15 درصد ميكروكنترلرها و 20 درصد كامپيوترهاي موبايل مجهز به پردازنده‌هاي مبتني بر معماري ARM بوده‌اند. بدون شك اين آمار در سال 2012 رشد فوق‌العاده چشم گيري را تجربه كرده است، چون بازار تلفن‌هاي هوشمند و تبلت‌هاي در سال جاري پيشرفت قابل ملاحظه‌اي داشته‌اند.

تا اينجاي كار معماري ARM تنها برروي پلتفرم 32 بيتي با عرض حافظه 1 بايت كار مي‌كرد. اما با معرفي ARMv8 اين معماري همراهي از دستورات 64 بيتي را نيز آغاز كرد كه البته هنوز در سيستم-روي-يك-چيپ‌ها بكار گرفته نشده است. در سال 2012 مايكروسافت نيز نسخه ويندوز سازگار با معماري ARM را به همراه تبلت سرفيس RT معرفي كرد. AMD نيز اعلام نموده كه قصد دارد در سال 2014 سرورهاي مبتني بر معماري 64 بيتي ARM را روانه بازار كند.

همانطور كه پيش‌تر اشاره كرديم، ARM گواهي استفاده از معماري خود را به شركت‌هاي ديگر مي‌دهد، كمپاني‌هايي كه در حال حاضر گواهي استفاده از ARM را دارند عبارتند از: AMD, آلكاتل, اپل, AppliedMicro, Atmel, Broadcom, Cirrus Logic, CSR plc, Digital Equipment Corporation, Ember, Energy Micro, Freescale, فوجيتسو, Fuzhou Rockchip, هواوي, اينتل توسط شركت‌هاي زير شاخه, ال جي, Marvell Technology Group, Microsemi, مايكروسافت, NEC, نينتندو, Nuvoton, انويديا, NXP (formerly Philips Semiconductor), Oki, ON Semiconductor, پاناسونيك, كوالكام, Renesas, Research In Motion, سامسونگ, شارپ, Silicon Labs, سوني, اريكسون, STMicroelectronics, Symbios Logic, Texas Instruments, توشيبا, ياماها  و ZiiLABS

RISC و CISC يا ARM در مقابل x86

RISC كه مخفف Reduced instruction Set Computing يا مجموعه دستورات ساده شده است در واقع نوعي از طراحي CPU است كه پايه و اساس آن، ساده سازي دستورات است كه منجر به بازده بالا و سرعت بخشيدن به اجراي دستورات مي‌شود. پردازده‌اي كه براساس اين طراحي ساخته مي‌شود را RISC (بخوانيد ريسك) مي‌نامند. مهمترين و معروفترين معماري كه براساس RISC طراحي شده، ARM است. درست نقطه مقابل ريسك، طراحي ديگري با نام CISC وجود دارد كه مخفف Complex Instruction Set Computing يا مجموعه دستورات پيچيده است كه معماري x86 اينتل براساس آن طراحي شده و پردازنده كامپيوترهاي روميزي و لپ تاپ‌ها و بسياري از ابزارهاي ديگر از آن بهره مي‌برند.

ايده اصلي RISC اولين بار توسط جان كوكي از IBM و در سال 1974 شكل گرفت، انديشه متخصصينيه او به اين موضوع اشاره داشت كه يك كامپيوتر تنها از 20 درصد از دستورات نياز دارد و 80 درصد ديگر، دستورات غيرضروري هستند. پردازنده‌هاي ساخته شده براساس اين طراحي از دستورات كمي همراهي مي‌كنند به اين ترتيب به ترانزيستور كمتري نيز نياز دارند و ساخت آنها نيز كم هزينه است. با كاهش تعداد ترانزيستورها و اجراي دستورات كمتر، پردازنده در زمان كمتري دستورات را پردازش مي‌كند. كمي بعد اصطلاح RISC توسط يك استاد دانشگاه كاليفورنيا به نام ديويد پترسون ايجاد شد.

هر دو طراحي RISC و CISC به مراتب در انواع و اقسام ابزارها بكار گرفته مي‌شوند، اما مفهوم كلي RISC در واقع سيستمي است كه در آن به پردازش دستورات كوچك و به شدت بهينه شده پرداخته مي‌شود، درست برخلاف CISC كه در آن دستورات پيچيده ارسال مي‌شوند. يكي از تفاوت‌هاي عمده بين RISC و CISC نيز در نحوه دسترسي به حافظه و ذخيره و اجراي اطلاعات برروي آن است. در ريسك دسترسي به حافظه تنها از طريق دستورالعمل‌هاي خاصلي قابل انجام است و به عنوان مثال نمي‌توان از بخشي از دستور add به حافظه دسترسي داشت.

علاوه بر ARM شركت‌هاي بسيار ديگري از جمله Intel i860, AMD 29k, ARC و غيره از طراحي RISC براي ساخت پردازنده استفاده مي‌كنند، اما به لطف گسترش تلفن و تبلت‌ها، معماري ARM به عنوان برجسته‌ترين معماري مبتني بر RISC شناخته مي‌شود.

CISC

در سيسك اوضاع دقيقا برعكس ريسك است و پردازنده قادر به پردازش دستورات پيچيده است به همين دليل نياز به تعداد بيشتر ترانزيستور و همچنين طراحي پيچيده‌تر و پردازنده‌هاي گران ارزش‌تر دارد. ايده اصلي پشت اين طراحي اين است كه برنامه نويسان ساده‌تر بتوانند نرم افزارهاي خود را توليد كنند و دستورات را ساده‌تر به CPU ارجاع دهند. به لطف همراهي اينتل و توليدكنندگان نرم افزار، CISC به شدت محبوب شد و تمام كامپيوترها از پردازنده مبتني بر اين طراحي بهره بردند.

برخي تصور مي‌كنند كه ريسك قادر به اجراي دستورات زياد نيست اما در حقيقت ريسك به اندازه سيسك مي‌تواند دستورات مختلف را اجرا كند اما مهمترين تفاوت اين دو در اين است كه در RISC تمام دستورات با يك فرمت، دقيقا يك فرمت صادر مي‌شوند و پردازش تمام دستورات يك زمان مشخص طول مي‌كشد، معمولا در ريسك در هر سيكل، پردازنده يك دستور را اجرا مي‌كند.

اما در CISC مجموعه‌اي از دستورات بصورت فشرده و با آدرس دهي مختلف به يكباره پردازش مي‌شوند، مثل اعداد اعشاري يا تقسيم كه در طراحي RISC وجود ندارند. از آنجايي كه دستورات در RISC ساده‌تر هستند پس سريعتر اجرا مي‌شوند و نياز به ترانزيستور كمتري دارند، ترانزيستور كمتر هم به معني دماي كمتر، مصرف پايين‌تر و فضاي كمتر است كه آن را براي ابزارهاي موبايل مناسب مي‌كند.

معماري پردازنده‌هاي مبتني بر طراحي RISC طي‌ سال‌هاي گذشته پيشرفت چشم‌گيري داشته و اجراي دستورات پيچيده را نيز ميسر كرده است و توليدكنندگان نرم افزاري نيز به سمت ساخت نرم‌افزارهاي مبتني بر اين معماري گرايش پيدا كرده‌اند. لازم است بدانيد كه كامپيوترهاي اوليه مك نيز از پردازنده مبتني بر RISC بهره مي‌بردند.

اما در واقع پردازنده‌هاي CISC بسيار سريعتر و پرقدرت‌تر از RISCها هستند و قادر به پردازش امور سنگين مي‌باشند اما در عوض گران‌ارزش‌تر، پرمصرف‌تر بوده و دماي بيشتري نيز توليد مي‌كنند. در CISC تمركز برروي سخت‌افزار است و در RISC برروي نرم‌افزار، در CISC دستورات بصورت پيچيده به پردازنده ارسال مي‌شوند ولي در RISC نرم‌افزار دستورات را ساده‌ كرده و به عنوان مثال يك عمليات پيچيده را در قالب چندين دستور ساده به پردازنده ارسال مي‌كند و پردازنده دستورات ساده را به سرعت پردازش نموده و نتيجه را باز مي‌گرداند. پس كدهاي نرم‌افزارهاي سازگار با RISC طولاني تر ولي كدهاي مربوط به نرم‌افزارهاي CISC كوتاه‌تر و پيچيده‌تر هستند. البته اين بدين معنا نيست كه مثلا اگر قرار است براي اندرويد يا iOS برنامه بنويسيد بايد چند هزار خط بيشتر از معادل كامپيوتر ويندوزي آن كد نويسي كنيد، در واقع كامپايلرها كدها را به دستورات كوچك زياد تبديل مي‌كنند و برنامه نويس به سختي متوجه نوع پردازش دستورات مي‌شود.

اگر بخواهيم در مورد اين دو طراحي صحبت كنيم مباحثه پيچيده و كسل كننده خواهد شد پس به همين جا بسنده مي‌كنيم اما اگر تمايل داريد تا در مورد اين طراحي‌ها بيشتر بدانيد به اين دو لينك مراجعه كنيد: CISC و RISC

سيستم-روي-يك-چيپ‌ها و معماري ARM

چندين نوع مختلف از معماري براي پردازنده‌هاي ARM وجود دارد كه از آن جمله مي‌توان به ARM V2 ،ARMv3 Arm v7 و ...اشاره كرد. كمپاني‌ها براي استفاده از هر كدام از اين طراحي‌ها بايد گواهي مربوط به آن را از ARM Holder دريافت كنند.  كمپاني‌ها از اين معماري در ساخت پردازنده هاي مورد انديشه متخصصين خود بهره برده و در نهايت يا يكپارچه سازي آن  با واحد پردازش گرفيك (GPU)، حافظه رم و قسمت كنترلر باند راديويي (در تلفن‌هاي هوشمند) سيستم -روي-يك-چيپ خود را مي سازند .

مرجع متخصصين ايران mobile phone chip soc

سيستم-روي-يك-چيپ (System on a Chip) كه آن را به اختصار SoC مي‌نامند در واقع يك تراشه است كه در آن پردازنده اصلي (CPU)، پردازنده گرافيك (GPU)، حافظه رم، كنترلرهاي ورودي و خروجي و بعضا كنترلر باند راديويي قرار دارند. پس لازم است بدانيد كه كل SoC براساس معماري ARM توليد نمي‌شود و تنها بخش CPU آن بر مبناي معماري ARM طراحي و توليد مي‌گردد. پس اين باور كه فلان SoC براساس معماري ARM ساخته شده، اشتباه است و بخش پردازنده اصلي اكثر SoCها براساس يكي از طراح‌هاي معماري ARM ساخته مي‌شوند.

از جمله سيستم-روي-يك-چيپ‌هايي كه هسته اصلي آن‌ها براساس معماري ARM طراحي شده‌اند مي‌توان به 3 نسل اول تگرا انويديا، Quatro شركت CSRT، نوا شركت اريكسون، OMAP شركت تكزاس، Exynos شركت سامسونگ و Ax شركت اپل اشاره كرد. اين شركت ها از معماري ARM و همچنين معماري يكي از هسته‌هاي طراحي شده توسط اين شركت بهره برده‌اند.

اما شركت‌ها مي‌توانند گواهي استفاده از معماري ARM را تهيه كرده و سپس بر اساس آن هسته سفارشي مورد انديشه متخصصينشان را طراحي كنند يعني به جاي اينكه هسته CPU را براساس Cortex-A9 يا Cortex-A15 يا ديگر هسته‌هاي ARM بسازنند، خودشان براساس معماري يكي از خانواده‌هاي ARM، هسته خاص خود را طراحي كنند. به عنوان مثال سيستم-روي-يك-چيپ A6 اپل، X-Gene ،Krait كوالكام، StrongARM شركت DEC ،XScale شركت Marvell اينتل يا Project Denver شركت انويديا اينگونه هستند و اگر چه بخش CPU از سيستم-روي-يك-چيپ‌ آنها براساس معماري ARM طراحي شده‌اند، اما طراحي هسته‌ها با آنچه ARM پيشنهاد كرده متفاوت هستند.

انواع مختلف هسته‌هاي مبتني بر ARM

همانطور كه پيش‌تر اشاره كرديم، شركت ARM Holding خود نسبت به طراحي هسته براساس معماري ARM اقدام مي‌كند و هسته‌هاي متفاوتي را براساس نسل‌هاي مختلف اين معماري عرضه كرده است، جديدترين معماري اين شركت ARM v8 است كه از دستورات 64 بيتي همراهي مي‌كند و دو هسته Cortex A53 و Cortex A57 نيز براساس همين معماري طراحي و پيشنهاد شده‌اند. انتظار مي‌رودي SoCهاي سال آينده از اين معماري بهره مند شوند، در جدول زير كل هسته‌هاي طراحي شده توسط ARMرا مشاهده خواهيد كرد:

ARM Family

ARM Architecture

ARM Core

Feature

Cache (I/D), MMU

Typical

MIPS

@ MHz

ARM1

ARMv1

ARM1

First implementation

None

 

ARM2

ARMv2

ARM2

ARMv2 added the MUL (multiply) instruction

None

4 MIPS @ 8 MHz

0.33

DMIPS

/MHz

ARMv2a

ARM250

Integrated MEMC (MMU), Graphics and IO processor. ARMv2a added the SWP and SWPB (swap) instructions.

None, MEMC1a

7 MIPS @ 12 MHz

ARM3

ARMv2a

ARM3

First integrated memory cache.

4 KB unified

12 MIPS @ 25 MHz

0.50 DMIPS/MHz

ARM6

ARMv3

ARM60

ARMv3 first to support 32-bit memory address space (previously 26-bit)

None

10 MIPS @ 12 MHz

ARM600

As ARM60, cache and coprocessor bus (for FPA10 floating-point unit).

4 KB unified

28 MIPS @ 33 MHz

ARM610

As ARM60, cache, no coprocessor bus.

4 KB unified

17 MIPS @ 20 MHz

0.65 DMIPS/MHz

ARM7

ARMv3

ARM700

 

8 KB unified

40 MHz

ARM710

As ARM700, no coprocessor bus.

8 KB unified

40 MHz

ARM710a

As ARM710

8 KB unified

40 MHz

0.68 DMIPS/MHz

ARM7TDMI

ARMv4T

ARM7TDMI(-S)

3-stage pipeline, Thumb

none

15 MIPS @ 16.8 MHz

63 DMIPS @ 70 MHz

ARM710T

As ARM7TDMI, cache

8 KB unified, MMU

36 MIPS @ 40 MHz

ARM720T

As ARM7TDMI, cache

8 KB unified, MMU with Fast Context Switch Extension

60 MIPS @ 59.8 MHz

ARM740T

As ARM7TDMI, cache

MPU

 

ARM7EJ

ARMv5TEJ

ARM7EJ-S

5-stage pipeline, Thumb, Jazelle DBX, Enhanced DSP instructions

none

 

ARM8

ARMv4

ARM810

[4]

[5]

5-stage pipeline, static branch prediction, double-bandwidth memory

8 KB unified, MMU

84 MIPS @ 72 MHz

1.16 DMIPS/MHz

ARM9TDMI

ARMv4T

ARM9TDMI

5-stage pipeline, Thumb

none

 

ARM920T

As ARM9TDMI, cache

16 KB/16 KB, MMU with FCSE (Fast Context Switch Extension)

[6]

200 MIPS @ 180 MHz

ARM922T

As ARM9TDMI, caches

8 KB/8 KB, MMU

 

ARM940T

As ARM9TDMI, caches

4 KB/4 KB, MPU

 

ARM9E

ARMv5TE

ARM946E-S

Thumb, Enhanced DSP instructions, caches

variable, tightly coupled memories, MPU

 

ARM966E-S

Thumb, Enhanced DSP instructions

no cache, TCMs

 

ARM968E-S

As ARM966E-S

no cache, TCMs

 

ARMv5TEJ

ARM926EJ-S

Thumb, Jazelle DBX, Enhanced DSP instructions

variable, TCMs, MMU

220 MIPS @ 200 MHz

ARMv5TE

ARM996HS

Clockless processor, as ARM966E-S

no caches, TCMs, MPU

 

ARM10E

ARMv5TE

ARM1020E

6-stage pipeline, Thumb, Enhanced DSP instructions, (VFP)

32 KB/32 KB, MMU

 

ARM1022E

As ARM1020E

16 KB/16 KB, MMU

 

ARMv5TEJ

ARM1026EJ-S

Thumb, Jazelle DBX, Enhanced DSP instructions, (VFP)

variable, MMU or MPU

 

ARM11

ARMv6

ARM1136J(F)-S

[7]

8-stage pipeline, SIMD, Thumb, Jazelle DBX, (VFP), Enhanced DSP instructions

variable, MMU

740 @ 532–665 MHz (i.MX31 SoC), 400–528 MHz

ARMv6T2

ARM1156T2(F)-S

8-stage pipeline, SIMD, Thumb-2, (VFP), Enhanced DSP instructions

variable, MPU

 

ARMv6Z

ARM1176JZ(F)-S

As ARM1136EJ(F)-S

variable, MMU + TrustZone

965 DMIPS @ 772 MHz, up to 2 600 DMIPS with four processors

[8]

ARMv6K

ARM11 MPCore

As ARM1136EJ(F)-S, 1–4 core SMP

variable, MMU

 

SecureCore

ARMv6-M

SC000

 

 

0.9 DMIPS/MHz

ARMv4T

SC100

 

 

 

ARMv7-M

SC300

 

 

1.25 DMIPS/MHz

Cortex-M

ARMv6-M

Cortex-M0

[9]

Microcontroller profile, Thumb + Thumb-2 subset (BL, MRS, MSR, ISB, DSB, DMB),

[10]

hardware multiply instruction (optional small), optional system timer, optional bit-banding memory

No cache, No TCM, No MPU

0.84 DMIPS/MHz

Cortex-M0+

[11]

Microcontroller profile, Thumb + Thumb-2 subset (BL, MRS, MSR, ISB, DSB, DMB),

[10]

hardware multiply instruction (optional small), optional system timer, optional bit-banding memory

No cache, No TCM, optional MPU with 8 regions

0.93 DMIPS/MHz

Cortex-M1

[12]

Microcontroller profile, Thumb + Thumb-2 subset (BL, MRS, MSR, ISB, DSB, DMB),

[10]

hardware multiply instruction (optional small), OS option adds SVC / banked stack pointer, optional system timer, no bit-banding memory

No cache, 0-1024 KB I-TCM, 0-1024 KB D-TCM, No MPU

136 DMIPS @ 170 MHz,

[13]

(0.8 DMIPS/MHz FPGA-dependent)

[14]

ARMv7-M

Cortex-M3

[15]

Microcontroller profile, Thumb / Thumb-2, hardware multiply and divide instructions, optional bit-banding memory

No cache, No TCM, optional MPU with 8 regions

1.25 DMIPS/MHz

ARMv7E-M

Cortex-M4

[16]

Microcontroller profile, Thumb / Thumb-2 / DSP / optional FPv4 single-precision FPU, hardware multiply and divide instructions, optional bit-banding memory

No cache, No TCM, optional MPU with 8 regions

1.25 DMIPS/MHz

Cortex-R

ARMv7-R

Cortex-R4

[17]

Real-time profile, Thumb / Thumb-2 / DSP / optional VFPv3 FPU, hardware multiply and optional divide instructions, optional parity & ECC for internal buses / cache / TCM, 8-stage pipeline dual-core running lockstep with fault logic

0-64 KB / 0-64 KB, 0-2 of 0-8 MB TCM, opt MPU with 8/12 regions

 

Cortex-R5 (MPCore)

[18]

Real-time profile, Thumb / Thumb-2 / DSP / optional VFPv3 FPU and precision, hardware multiply and optional divide instructions, optional parity & ECC for internal buses / cache / TCM, 8-stage pipeline dual-core running lock-step with fault logic / optional as 2 independent cores, low-latency peripheral port (LLPP), accelerator coherency port (ACP)

[19]

0-64 KB / 0-64 KB, 0-2 of 0-8 MB TCM, opt MPU with 12/16 regions

 

Cortex-R7 (MPCore)

[20]

Real-time profile, Thumb / Thumb-2 / DSP / optional VFPv3 FPU and precision, hardware multiply and optional divide instructions, optional parity & ECC for internal buses / cache / TCM, 11-stage pipeline dual-core running lock-step with fault logic / out-of-order execution / dynamic register renaming / optional as 2 independent cores, low-latency peripheral port (LLPP), ACP

[19]

0-64 KB / 0-64 KB, ? of 0-128 KB TCM, opt MPU with 16 regions

 

Cortex-A

ARMv7-A

Cortex-A5

[21]

Application profile, ARM / Thumb / Thumb-2 / DSP / SIMD / Optional VFPv4-D16 FPU / Optional NEON / Jazelle RCT and DBX, 1–4 cores / optional MPCore, snoop control unit (SCU), generic interrupt controller (GIC), accelerator coherence port (ACP)

4-64 KB / 4-64 KB L1, MMU + TrustZone

1.57 DMIPS / MHz per core

Cortex-A7 MPCore

[22]

Application profile, ARM / Thumb / Thumb-2 / DSP / VFPv4-D16 FPU / NEON / Jazelle RCT and DBX / Hardware virtualization, in-order execution, superscalar, 1–4 SMP cores, Large Physical Address Extensions (LPAE), snoop control unit (SCU), generic interrupt controller (GIC), ACP, architecture and feature set are identical to A15, 8-10 stage pipeline, low-power design

[23]

32 KB / 32 KB L1, 0-4 MB L2, L1 & L2 have Parity & ECC, MMU + TrustZone

1.9 DMIPS / MHz per core

Cortex-A8

[24]

Application profile, ARM / Thumb / Thumb-2 / VFPv3 FPU / Optional NEON / Jazelle RCT and DAC, 13-stage superscalar pipeline

16-32 KB / 16-32 KB L1, 0-1 MB L2 opt ECC, MMU + TrustZone

up to 2000 (2.0 DMIPS/MHz in speed from 600 MHz to greater than 1 GHz)

Cortex-A9 MPCore

[25]

Application profile, ARM / Thumb / Thumb-2 / DSP / Optional VFPv3 FPU / Optional NEON / Jazelle RCT and DBX, out-of-order speculative issue superscalar, 1–4 SMP cores, snoop control unit (SCU), generic interrupt controller (GIC), accelerator coherence port (ACP)

16-64 KB / 16-64 KB L1, 0-8 MB L2 opt Parity, MMU + TrustZone

2.5 DMIPS/MHz per core, 10,000 DMIPS @ 2 GHz on Performance Optimized TSMC

40G

(dual core)

Cortex-A15 MPCore

[26]

Application profile, ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / Jazelle RCT / Hardware virtualization, out-of-order speculative issue superscalar, 1–4 SMP cores, Large Physical Address Extensions (LPAE), snoop control unit (SCU), generic interrupt controller (GIC), ACP, 15-24 stage pipeline

[23]

32 KB / 32 KB L1, 0-4 MB L2, L1 & L2 have Parity & ECC, MMU + TrustZone

At least 3.5 DMIPS/MHz per core (Up to 4.01 DMIPS/MHz depending on implementation).

[27]

ARMv8-A

Cortex-A53

[28]

Application profile, AArch32 and AArch64, 1-4 SMP cores, Trustzone, NEON advanced SIMD, VFPv4, hardware virtualization, dual issue, in-order pipeline

8~64 KB/8~64 KB L1 per core, 128 KB~2 MB L2 shared, 40-bit physical addresses

2.3 DMIPS/MHz

Cortex-A57

[29]

Application profile, AArch32 and AArch64, 1-4 SMP cores, Trustzone, NEON advanced SIMD, VFPv4, hardware virtualization, multi-issue, deeply out-of-order pipeline

48 KB/32 KB L1 per core, 512 KB~2 MB L2 shared, 44-bit physical addresses

At least 4.1 DMIPS/MHz per core (Up to 4.76 DMIPS/MHz depending on implementation).

ARM Family

ARM Architecture

ARM Core

Feature

Cache (I/D), MMU

Typical

MIPS

@ MHz

اما برخي از توليدكنندگان مانند كوالكام، انويديا يا اپل، طراح‌هاي شركت ARM Holding را قبول ندارند و خود نسبت به طراحي هسته سفارشي بر مبناي معماري ARM اقدام مي‌كنند. در جدول زير هسته‌هاي طراحي شده توسط شركت‌هاي ديگر كه البته بر مبناي معماري يكي از خانوده‌هاي ARM هستند را مشاهده مي‌كنيد:

Family

ARM Architecture

Core

Feature

Cache (I/D), MMU

Typical MIPS @ MHz

StrongARM

ARMv4

SA-1

5-stage pipeline

16 KB/8–16 KB, MMU

203–206 MHz

1.0 DMIPS/MHz

XScale

ARMv5TE

XScale

7-stage pipeline, Thumb, Enhanced DSP instructions

32 KB/32 KB, MMU

133–400 MHz

Bulverde

Wireless MMX, Wireless SpeedStep added

32 KB/32 KB, MMU

312–624 MHz

Monahans

Wireless MMX2 added

32 KB/32 KB (L1), optional L2 cache up to 512 KB, MMU

up to 1.25 GHz

Snapdragon

ARMv7-A

Scorpion

Used by some members of the Snapdragon S1, S2, and S3 families. 1 or 2 cores. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv3 FPU / NEON (128-bit wide)

256 KB L2 per core

2.1 DMIPS / MHz per core

Krait 

Used by some members of the Snapdragon S4 family. 1, 2, or 4 cores. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON (128-bit wide)

4 KB / 4 KB L0, 16 KB / 16 KB L1, 512 KB L2 per core

3.3 DMIPS / MHz per core

Apple Ax

ARMv7-A

Apple Swift [32]

Custom ARM core used in the Apple A6 and Apple A6X. 2 cores. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON

L1: 32 kB instruction + 32 kB data, L2: 1 MB

3.5 DMIPS / MHz Per Core

Family

ARM Architecture

Core

Feature

Cache (I/D), MMU

Typical MIPS @ MHz

ARMv8 و پلتفرم 64 بيتي

در سال 2011 نسل جديد ARMv8 رسما معرفي شد و همراهي از معماري 64 بيتي به آن اضافه گرديد. در ARMv8 دستورات 32 بيتي برروي سيستم‌عامل 64 بيتي قابل اجرا هستند و در آن سيستم‌عامل‌هاي 32 بيتي نيز از طريق مجازي سازي 64 بيتي اجرا مي‌شوند. شركت‌هاي AMD, Micro, Brodom, Calxeda, Hisilicon, Samsung و ST Microelectronics گواهي استفاده از معماري ARMv8 را دريافت كرده‌اند و اعلام نموده‌اند SoCهاي مبتني بر اين معماري را توليد خواهند كرد. خود ARM نيز دو طراحي Cortex-A53 و Cortex-A57 را در 30 اكتبر 2012 معرفي كرد كه هر دو مبتني بر معماري ARMv8 هستند.

لينوكس كه هسته اندرويد نيز است به تازگي هسته اصلي سيستم‌عامل (Kernel) خود را بروز كرده تا از ARMv8 همراهي كند. انتظار مي‌رود در سال 2013 بسياري از سيستم‌-روي-يك-چيپ‌هاي دنيا از معماري ARMv8 بهره ببرند.

چه سيستم‌عامل‌هايي از ARM همراهي مي‌كنند؟

سيستم‌هاي Acorn: اولين كامپيوتر مبتني بر معماري ARM، كامپيوتر شخصي Acorn بود كه از سيستم‌عاملي به نام Arthur بهره مي‌برد. سيستم‌عاملي مبتني بر RISC OS كه از معماري ARM پشتياني مي‌كرد و Acorn و برخي ديگر از توليدكنندگان از آن استفاده مي‌كردند.

سيستم‌عامل‌هاي توكار: معماري ARM از طيف وسيعي از سيستم‌عامل‌هاي توكار مانند Windows CE, Windows RT, Symbian, ChibiOS/RT, FreeRTOS, eCos, Integrity, Nucleus PLUS, MicroC/OS-II, QNX, RTEMS, CoOS, BRTOS, RTXC Quadros, ThreadX, Unison Operating System, uTasker, VxWorks, MQX و OSE همراهي مي‌كند.

يونيكس: يونيكس و برخي از سيستم‌عامل‌هاي مبتني بر يونيكس مانند: Inferno, Plan 9, QNX و Solaris از ARM همراهي مي‌كنند.

لينوكس: بسياري از توزيع‌هاي لينوكس از ARM همراهي مي‌كنند از آن جمله مي‌توان به اندرويد و كروم گوگل، Arch Linux، بادا سامسونگ، Debian، Fedora،OpenSuse، Ubuntu و WebOS اشاره كرد.

BSD: برخي از مشتقات BSD مانند OpenBSD و iOS و OS X اپل نيز از ARM همراهي مي‌كند.

ويندوز: معماري‌هاي ARMv 5, 6 و 7 از ويندوز CE كه در ابزارهاي صنعتي و PDAها استفاده مي‌شود، همراهي مي‌كند. ويندوز RT و ويندوز فون نيز از معماري ARMv7 همراهي مي‌كنند.

گواهي و هزينه استفاده از معماري ARM

ARM خود توليدكننده نيمه هادي نيست و در عوض از راه صدور مجوز استفاده از طراحي‌هاي خود، درآمد كسب مي‌كند. گواهي استفاده از معماري ARM شرايط خاص و متنوعي را دارد و در شرايط مختلف هزينه مربوط به استفاده از آن نيز تفاوت مي‌كند. ARM به همراه گواهي‌نامه خود اطلاعات جامعي در مورد نحوه يكپارچگي قسمت‌هاي مختلف با هسته‌ها را ارائه مي‌كند تا توليدكنندگان به راحتي بتوانند از اين معماري در سيستم-روي-يك-چيپ‌هاي خود بهره ببرند.

ARM در سال 2006 و در گزارش سالانه خود اعلام كرد كه 164.1 ميليون دلار از بابت حق امتياز يا حق اختراع، درآمد داشته كه اين مبلغ از بابت  فروش گواهي استفاده از معماري اين شركت در 2.45 ميليارد دستگاه مبتني بر ARM بدست آمده است. اين يعني ARM Holding بابت هر گواهي 0.067 دلار درآمد كسب نموده، اما اين رقم ميانگين است و براساس نسل‌هاي مختلف و نوع هسته‌ها متفاوت خواهد بود. مثلا هسته‌هاي قديمي ارزان‌تر و معماري جديد گران‌تر است.

اما در سال 2006 اين شركت از بابت گواهي استفاده از طراحي هسته پردازنده، نزديك به 119.5 ميليون دلار درآمد بدست آورده است. در آن سال 65 پردازنده براساس معماري هسته هاي ARM ساخته شده بودند كه به اين ترتيب بابت هر گواهي پردازنده مبلغ 1.84 ميليون دلار درآمد كسب كرده است. اين عدد نيز بصورت ميانگين مي‌باشد و براساس نوع و نسل هسته‌ها متفاوت خواهد بود.

در واقع شركت ARM Holding از معماري ARM دو نوع درآمد دارد يكي بابت استفاده از معماري اين شركت در ابزارهاي مختلف كه بابت هر تلفن يا تبلت يا هر ابزار ديگري مبلغي بدست مي‌آورد و ديگري بابت هر پردازنده مبتني بر معماري هسته‌هاي ARM نيز يك رقم نسبتا سنگين حدود 2 ميليون دلار دريافت مي‌كند. در سال 2006 نزديك به 60 درصد درآمد ARM از بابت حق امتياز و 40 درصد بابت گواهي ساخت پردازنده براساس معماري ARM بوده است.

جديد‌ترين مطالب روز

هم انديشي ها

تبليغات

با چشم باز خريد كنيد
اخبار تخصصي، علمي، تكنولوژيكي، فناوري مرجع متخصصين ايران شما را براي انتخاب بهتر و خريد ارزان‌تر راهنمايي مي‌كند
ورود به بخش محصولات