22
1 TM جیتال ا دی ی سی تشای د هؼواThe ARM Architecture ذس گشدآ: اػذیهیشسضا ا

معماری ماشین های پیشرفته کم دستور

Embed Size (px)

DESCRIPTION

معماری ARM

Citation preview

Page 1: معماری ماشین های پیشرفته کم دستور

1 TM ل ا ت ی ج ی د ا ی د ی ا ش ت ی س ا و ؼ ه

The ARM Architecture

:گشدآسذ

اهیشسضا اػذی

Page 2: معماری ماشین های پیشرفته کم دستور

2 TM 2 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

هطالة ایي اسائ

هؼشفی ؿشکتARM

هؼواسیARM

دػتسالؼول ا تثد ا ؼثت تRISC اتتذایی ثثات ا هذ ای پشداصذ ػاختاس حافظ اى

Page 3: معماری ماشین های پیشرفته کم دستور

3 TM 3 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

اویت هؼواسی؟

RISCکاهال

هصشف پاییي اشطی

ػولکشد اجشایی قی

Page 4: معماری ماشین های پیشرفته کم دستور

4 TM 4 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

دستاس ؿشکت

1990تاػیغ دس ػال

طشاحی هذل ای پشداصذ ای کن دػتس

فشؽ الیؼغ طشاحی پشداصذ ت ؿشکا تشای تلیذ

ARM خدؽ یچگ تشاؿ ای سا وی ػاصد

طشاحی تکلطی ا تشای تکاسگیشی دس طشاحی کن دػتسARM

ػخت افضاس اؿکال یاتی، اتضاس ای شم افضاسی ،هؼواسی تاع

Page 5: معماری ماشین های پیشرفته کم دستور

5 TM 5 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

ARMهؼواسی

تشاضیؼتس یاص داسد 35000تا ت ARMپشداصذ ( RISC)تا اػتفاد اص سؽ کن دػتسک دس هقایؼ تا پشداصذ ای هتؼاسف ک اص هیلیى ا تشاضیؼتس ػاخت ؿذ اذ هصشف

.اشطی پاییی داسد تشای اػتفاد دس ػایل الکتشیکی کچک تؼیاس جزاب اػت

ARM تا فشؽ الیؼغ ای هختلف ت ؿشکت ای تلیذ کذ یو سػاا ایي اجاص سا هی دذک .خد تلیذ کذ EMBEDDEDسا تشای ػیؼتن SYSTEM ON A CHIPک ت آػای

.هـاذ هی ؿد iPadتد اهشص یض دس تثلت ای APPLE NEWTONالیي و آى اسصاى تدى ،کچک تدى هصشف خیلی کن اشطی ػثة ؿذ اػت اص سیضپشداصذ ا هیکش

دس اسد دیؼک ا ،هتایل ،پخؾ کذ ای هػیقی ، هاؿیي حؼاب ا ARMکتشلش ا ،دػتگا ای تاصی قاتل حول دستیي ای ػکاػی اػتفاد ؿد

Page 6: معماری ماشین های پیشرفته کم دستور

6 TM 6 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

الی RISCتا هؼواسی ARM توایض

ALU SHIFTکتشل تش ■

کاذ افضایذ اتهاتیک■

■Load / Storeچذیي دػتس الؼول

اجشای ؿشطی■

Page 7: معماری ماشین های پیشرفته کم دستور

7 TM 7 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

هجوػ دػتس الؼول طل داد

ARM تیتی 64الیي هؼواسی 2014دس ػال )تیتی اػت 32یک هؼواسیARM ػشض هی (ؿد

اذاص ا

تشاتش ـت تیت اػت تایت

تیت اػت 16تشاتش ین کلو

تیت اػت 32تشاتش (کلو)سد

د هجوػ دػتس الؼول

32-bit ARM Instruction Set

16-bit Thumb Instruction Set

تکلطی JAZELLE دسARM اهکاى اجشای کذتایت ای صتاى جاا سا سی هاؿیي هی دذ کذ تایت ای جاا دػتس الؼول ای ـت تیتی ؼتذ ک طشاحی ؿذ اذ تا هؼتقل اص هؼواسی

.تاؿذ

Page 8: معماری ماشین های پیشرفته کم دستور

8 TM 8 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

هذ ای پشداصذ

ARM فت هذ ػولیاتی تیادی داسد:

User هذ غیشهوتاصunprivileged اهکا اجشای اغلة ظایف سا هی دذ

FIQ فؼال هی ؿد( ػشیغ)قتی ک یک قف تا الیت تاال

IRQ فؼال هی ؿد( ػشػت هؼولی)قتی ک یک قف تا الیت پاییي((raised

Supervisor تشای صهای ک قف ت کاس سفت ؿذ دس یک شم افضاس اجشا ؿذ اػت

Abort تشای صهای ک خطا ای دػتشی ت هوسی سا سفغ هی ؿذ

Undef گام ػش کاس داؿتي ت دػتس الؼول ای تؼشیف ـذ

System : هذ هوتاصprivileged تا دػتشػی ت واى ثثات ای هذuser

Page 9: معماری ماشین های پیشرفته کم دستور

9 TM 9 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

ػاصهاى دی ثثات ا

User

mode

r0-r7,

r15,

and

cpsr

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

spsr

FIQ

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

r15 (pc)

cpsr

r0

r1

r2

r3

r4

r5

r6

r7

User

r13 (sp)

r14 (lr)

spsr

IRQ

User

mode

r0-r12,

r15,

and

cpsr

r13 (sp)

r14 (lr)

spsr

Undef

User

mode

r0-r12,

r15,

and

cpsr

r13 (sp)

r14 (lr)

spsr

SVC

User

mode

r0-r12,

r15,

and

cpsr

r13 (sp)

r14 (lr)

spsr

Abort

User

mode

r0-r12,

r15,

and

cpsr

Thumb state

Low registers

Thumb state

High registers

ؼتذ userواى ثثات ای هذ systemثثات ا هذ

Page 10: معماری ماشین های پیشرفته کم دستور

10 TM 10 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

ثثات ا

هؼواسیARM 32 تیتی ؼتذ 32ثثات داسد ک و آى ا

یک ؿواسذ تشاه اختصاصیpc

یک ثثات اختصاصی تشای ضؼیت فؼلی تشاه

5 ثثات اختصاصی تشای ضؼیت رخیش ؿذ تشاه

30 ثثات تشای کاستشد ػوهیGeneral Purpose

(CPSR (Current Program Status Register اطالػات اضافی ضؼیت فؼلی پشداصذ سا رخیش هی کذ

R13 هؼوال ت ػاى اؿاس گش ت پـت اػتفاد هی ؿد

R15 فقط ت ػاىPC اػتفاد هی ؿد

Page 11: معماری ماشین های پیشرفته کم دستور

11 TM 11 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

Program Status Registers

پشچن ؿشط ا

N تیج هفی دسALU

Z تیج صفش دسALU

C سقن قلی دسALU

V ػشسیض دسALU

Sticky Overflow flag - Q flag ـاى دذ اؿثاع

.تیت ای غیش فؼال ػاص قف ا

I = 1: Disables the IRQ.

F = 1: Disables the FIQ.

T Bit T = 0 ضؼیتARM state

T = 1 ضؼیتThumb state

Mode bits هذ ػولیاتی پشداصذ سا هـخص هی کذ

27 31

N Z C V Q

28 6 7

I F T mode

16 23

8 15

5 4 0 24

f s x c

U n d e f i n e d J

Page 12: معماری ماشین های پیشرفته کم دستور

12 TM 12 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

ضؼیت پشداصذ دس حالت ای هختلف

قتی پشداصذ دس حالتARM اجشا هی کذ

تیتی ؼتذ 32و دػتس الؼول ا

Word aligned

قتی پشداصذ دس حالتthumb اجشا هی کذ

تیتی ؼتذ 16و دػتسالؼول ا

Half word aligned

قتی پشداصذ دس حالتJazelle state اجشا هی کذ

تیتی ؼتذ 8و دػتسالؼول ا

پشداصذ تا دػتیاتی ت یک کلو چاس دػتس الؼول سا ت طس وضهاى هی خاذ

word aligned

Page 13: معماری ماشین های پیشرفته کم دستور

13 TM 13 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

Vector Table

Exception Handling

قتی ک یexception سخ هی دذ

اطالػات ثثات CSPR سا دس ثثات SPSR_<mode> کپی هی کذ

تظین تیت ایcspr

اسد ؿذى ت ضؼیتarm

غیش فؼال کشدى قف ا

رخیش کشدى آدسع تاصگـت دسLR_<mode>

تظینpc ت آدسعvector

تشای تاصگـت اص اضطشاس

تاصگشدایcspr اص سیSPSR_<mode>

تاصگشدای ثثاتpc اصLR_<mode>

ARM Exception Handling فقط دس ضؼیت

اهکاى پزیش اػت

FIQ

IRQ

(Reserved)

Data Abort

Prefetch Abort

Software Interrupt

Undefined Instruction

Reset

0x1C

0x18

0x14

0x10

0x0C

0x08

0x04

0x00

Page 14: معماری ماشین های پیشرفته کم دستور

14 TM 14 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

ARMیظگی ای هجوػ دػتسالؼول

(هثال دس صتاى اػوثلی)اجشای ؿشطی ش دػتس الؼول

اجشای تواهی دػتس الؼول ا دس تا یک ػیکل ػاػت

اجشای دػتسات اص طشیق سایاؾ خط لل ای(PIPELINE)

CMP r0, #5

BEQ BYPASS

ADD r1, r1, r0

SUB r1, r1, r2

BYPASS

CMP r0, #5

ADDNE r1, r1, r0

SUBNE r1, r1, r2

Page 15: معماری ماشین های پیشرفته کم دستور

15 TM 15 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

کذ ای ؿشطی

هجوػ توام کذ ای ؿشطی

ت صست پیـذAL دس ظش گشفت ؿذ یاص ت اػالم آى یؼت

Not equal

Unsigned higher or same

Unsigned lower

Minus

Equal

Overflow

No overflow

Unsigned higher

Unsigned lower or same

Positive or Zero

Less than

Greater than

Less than or equal

Always

Greater or equal

EQ

NE

CS/HS

CC/LO

PL

VS

HI

LS

GE

LT

GT

LE

AL

MI

VC

تضیحات پؼذ

Z=0

C=1

C=0

Z=1

ضؼیت پشچن ا

N=1

N=0

V=1

V=0

C=1 & Z=0

C=0 or Z=1

N=V

N!=V

Z=0 & N=V

Z=1 or N=!V

Page 16: معماری ماشین های پیشرفته کم دستور

16 TM 16 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

دػتسالؼول ای اتقال داد

ؿاهل دػتسات صیش اػت Arithmetic: ADD ADC SUB SBC RSB RSC

Logical: AND ORR EOR BIC

Comparisons: CMP CMN TST TEQ

Data movement: MOV MVN دػتسالؼول ا فقط تا سجیؼتش کاس هی کذ

Syntax:

<Operation>{<cond>}{S} Rd, Rn, Operand2

ػولذ دم اص طشیق ؿیفت تـک ای تALU اسػال هی گشدد

Page 17: معماری ماشین های پیشرفته کم دستور

17 TM 17 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

(1)دػتس الؼول ای اتقال داد

و دػتس الؼول ا تش اػاع هذ آدسع دیRegister-indirect ؼتذ

DR r0, [r1] ; r0 := mem32[r1]

TR r0, [r1] ; mem32[r1] := r0

Page 18: معماری ماشین های پیشرفته کم دستور

18 TM 18 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

ARMپج هشحل پایپ الیي دس هؼواسی

Page 19: معماری ماشین های پیشرفته کم دستور

19 TM 19 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

حافظ اى

کلو دیتا چاس 16تافش هی تاذ ■ آدسع سا گ داسی کذ

ـت کلو دس ش خط تا یک تیت ■ dirtyاػتثاس د تیت

64گاؿت تذاػی گش هجوػ ای ■

way

Dirty bit:A bit in a memory cache

or virtual memory page that has

been modified by the CPU, but not

yet written back to storage.

Page 20: معماری ماشین های پیشرفته کم دستور

20 TM 20 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

Load / Store هؼواسی

اص آدسع دی هوسی ت هوسی پـتیثای وی کذ

اطالػات حتوا هی تایؼت اص هوسی اسد سجیتؼش ؿذ

ت ظاش ایي ػثة کاؾ کاسایی هی ؿد لی دس ػول ایي طس یؼت

پشداصؽ اطالػات دس دسى سجیؼتش ا ػثة هی ؿد ک تا کاؾ دفؼات دػتیاتی تmemory

ػشػت تاال تشد

Page 21: معماری ماشین های پیشرفته کم دستور

21 TM 21 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

ARMو یک ػیؼن هثتی تش

16 bit RAM

8 bit ROM

32 bit RAM

ARM Core

I/O Peripherals

Interrupt

Controller

nFIQ nIRQ

Page 22: معماری ماشین های پیشرفته کم دستور

22 TM 22 ماشین های پیشرفته کم دستور معماری برای دنیا دیجیتال

هاتغ

• ARM architecture. (n.d.). Retrieved from Wikipedia, the free encyclopedia:

http://en.wikipedia.org/wiki/ARM_architecture

• ARM Fundamentals: Introduction to understanding ARM processors . (n.d.).

Retrieved 2012, from http://blogs.arm.com/software-enablement/605-arm-

fundamentals-introduction-to-understanding-arm-processors/

• Introduction to ARM. (n.d.). Retrieved 11 7, 2012, from

http://www.csie.nuk.edu.tw/~kcf/course/98_Spring/Embedded%20System/2-

Introduction%20to%20ARM%20architecture.pdf

• The ARM Architecture. (n.d.). Retrieved from

http://havasi.sed.hu/sites/havasi.sed.hu/files/download/ARM.ppt

•Holdings., A. (n.d.). Retrieved from ARMv7-A and ARMv7-R Architecture

Reference Manual: https://silver.arm.com/download/download.tm?pv=119956