28
Central Processing Unit CPU

C entral P rocessing U nit CPU

Embed Size (px)

DESCRIPTION

C entral P rocessing U nit CPU. واحد پردازش مرکزی ( cpu ) قسمتی از کامپیوتر است که اعظم پردازش داده ها در آن انجام می شود . می توان گفت cpu از سه قسمت اصلی تشکیل شده است، که در شکل زیر آمده است. Register set. CONTROL. ALU. - PowerPoint PPT Presentation

Citation preview

Central Processing Unit

CPU

( قسمتی از کامپیوتر است که CPUواحد پردازش مرکزی )اعظم پردازش داده ها در آن انجام می شود.

از سه قسمت اصلی تشکیل شده CPU می توان گفت است، که در شکل زیر آمده است.

CONTROL

Register set

ALU

نیBاز اجBرای دسBتورات بBرای کBه را مBوقت هBای داده ثباتهBا هسBتند، در خBود ذخBیره می کننBد. البتBه می تBوان این داده هBا از یکی ولی حافظBه کBرد، ذخBیره نBیز اصBلی در حافظBه را

کندترین قطعات در کامپیوتر است.

CPU برای انجام اعمال خود نیاز به ذخیره اطالعات و بازیابی به موقع آنها دارد.

مثال برای نگهداری آدرس بازگشت در فراخوانی برنامه ها و یا دخیره نتایج موقت محاسبات و ... این حافظه مورد

باشد، اتالف زمان زیادی CPUنیاز اگر در خارج از CPU در پی دارد و بهتر این است که در خود CPUبرای

خواهد بود. محدودقرار گیرد و البته ظرفیت آن این حافظه را تشکیل می دهند. CPUیک یا چند ثبات درون

با یکدیگر در ارتباط باشند. CPUثباتهای داخل

سازمان ثباتهای عمومی :

R1

R2

R4

R3

R6

R7

R5

3× 8decoder

MUX MUX

Arithmetic logic unit(ALU)

C lock Input

Load(7 lines)

SELA SELB

A bus B bus

OPR

Output

SELD

(a) Block diagram

(b) C ontrol word

SELA SELDSELB OPR3 533

External Output

External Input

تعداد بیت ها

سازمان ثباتهای عمومی :

:مثالبرای انجام ریز عمل

SELB و محتوای ،محتوایSELA ابتدا ها می MUX محتوای را به خروجی

ALU نیز عمل جمع را برایOPR برند. و نیز ورود SELD مشخص میکند.و

را فعال میکند تا بار ثبات SELA منتقل شود. به ALUخروجی

که یکی از هفت ثبات را SELB و انتخاب می کنند. ورود هشتمی را نیز انتخاب کنند. این ورودی حافظه است.

OPR 32 ، پنچ بیت است و می تواند مشخص کند. ALUریز عمل را برای

مثال برای انجام ریز عمل کافیست کلمه کنترلی به شکل زیر باشد:

که عمل جمع را مشخص میکند. کلمه کنترلی که معرفی شد می تواند

از حافظه کنترل بیاید.

R1

R2

R4

R3

R6

R7

R5

3× 8decoder

MUX MUX

Arithmetic logic unit(ALU)

C lock Input

Load(7 lines)

SELA SELB

A bus B bus

OPR

Output

SELD

(a) Block diagram

(b) C ontrol word

SELA SELDSELB OPR3 533

OPR SELD SELB SELA

1 0 1 0 0 1 0 0 1 1 0 0 1 0

پشته حافظه ای است که اطالعات را به نحوی ذخیره می کند که آخرین عنصر ذخیره شده، اولین عنصر قابل برداشت است؛

B خروجی B اولین B ورودی B یعنی دارای یک ساختار آخرین(LIFO میباشد. پشته می تواند خود حافظه ای جداگانه باشد و )

یا بخشی از حافظه اصلی کامپیوتر را به عنوان پشته تعریف که PUSHکرد.دو عمل روی پشته قابل تعریف است: عمل

که POPموجب درج عنصری در باالی پشته می شود و عمل موجب حذف عنصر از باالی پشته میگردد.ثباتی که آدرس پشته

(پشته نام دارد.SPرا در خود ذخیره می کند، ثبات )

سازمان پشته:

SP رBه پBه خانBد بBمی توان یBا کنBد اشBاره پشBته بBاالی این کBBه خBBالی خانBBه بBBه سBازی پیBاده بBه بسBتگی یBک سBاختار شBکل دارد.

را 64پشBBته ای کلمBBه نشBان میدهBد کBه بBه صBورت مجBزا طBراحی ای حافظBه نBوع این بBه اسBت، شBده

پیاده سازی پشته،ثبLاتی می پشLته نBیز

گوینBBBBBBBBBBBBBBBBBBBBBBBBBBBBد.

A

B

CSP

EMTYFULL

DR

64

0

1

2

3

4

Address

Last Item

شBBکل، این همBBواره SPدر آدرس کلمBه بBاالی پشBته را در

روی CخBود دارد. طبBق شBکل بنBBابراین دارد. قBBرار پشBBته

SP=3 .دBمی باش POP رایBبکBردن، کلمBه ای کBه در آدرس

قBرار دارد را بایBد برداشBت و 3SP رایBب کBرد. کم یکی را

PUSH دBدا بایBردن ابتBک SP را سBپس و کBرد جمBع یBک بBای وارد پشBBته داخBBل را کلمBBه

، SPکBرد.در این شBکل ثبBات اسBBBBت. بیBBBBتی شBBBBش

سازمان پشته:

A

B

CSP

EMTYFULL

DR

64

0

1

2

3

4

Address

Last Item

دو پBرچم، بBرای چBک پBر یBا خBالی بBودن پشBته اسBتفاده می شBود: EMTY وFULL ودBش خBالی پشBته اگBر .EMTY رBاگ و FULL اهBهرگ . بBا 63 شBامل آدرسSPپرشBود آن باشBد، جمBع را صBفر می کنBد، پس آخBرین عنصBر در خانBه صBفر قBرار SPیBک،

می گیرد و پشته پر می شود.

PUSH:

با توجه به شکل به این POP و PUSHعملیاتصورت است:

0

)1()0(

][

1

EMTY

FULLthenSPIf

DRSPM

SPSP

SP = 0, EMTY = 1, FULL = 0

POP:

: Increment SP

: Write to the stack

: Check if stack is full

: Mark not empty

0

)1()0(

1

][

FULL

EMTYthenSPIf

SPSP

SPMDR : Read from the top of stack

: Decrement Stack Pointer

: Check if stack is empty

: Mark not full

سازمان پشته:

در هر دو حالت پر یا خالی بودن پشته به خانه صفر پشته SP توجه: تمایز بین این دو حالت EMTY وFULLاشاره می کند، ولی بیت های

را نشان می دهد. را SPمی توان ابتدا، دیتا را در پشته قرار داد سپس PUSH برای نکته:

را کاهش دهیم و سپس بخوانیم . SP ابتدا POPافزایش دهیم و برای

سازمان پشته:پشته حافظه ای:

Program(instruc tions)

Data(operands)

Stack

SP

PC

AR

DR

1000

2000

4001

3000

4000

3999

3998

3997

AddressMemory unit

شکل قسمتی از حافظه اصلیکامپیوتر را نشان می دهد که به

سه بخش تقسیم شده است: SP برنامه، داده و پشته

- به کلمه باالی پشته اشاره میکند. همانطور که می دانیم

نیز آدرس PC و ARثباتهای حافظه را در اختیار میگذارند.

-PC در هنگام عملیات واکشیاستفاده می شود و به قسمت

دستورات اشاره می کند، در فاز اجرا برای خواندن عملوند مورد

PUSHنیاز است، و به منظور کردن کلمات استفاده POPیا

می شود.

Memory Stack :PUSH :

The first item is stored at address 4000

POP :

Program(instruc tions)

Data(operands)

Stack

SP

PC

AR

DR

1000

2000

4001

3000

4000

3999

3998

3997

AddressMemory unit

Start Here

* Memory Stack PUSH = Address * Register Stack PUSH = Address

DRSPM

SPSP

][

1 SP = 4001

1

][

SPSP

SPMDR

* Error Condition PUSH when FULL = 1 POP when EMTY = 1

طبق شکل اولین کلمه پشته دارای می باشد و پشته با کاهش 4001آدرس

آدرس، رشد میکند. بنابراین اولین کلمه ذخیره شده و آخرین 4000در آدرس

، می توان برای 3000کلمه در آدرس چک پر یا خالی بودن پشته از دو ثبات

استفاده کرد که یکی آدرس پایین پشته و دیگری آدرس باالی پشته را در خود

دارد. بعد از هر PUSH،SP با ثبات باالی پشته

با ثبات پایین پشته POPو پس از مقایسه می شود.

سازمان پشته:پشته حافظه ای:

مثال:

…………

Call sub1……

Main program

4000

4001

4003

4002

400440054006

Stack…Call sub2

……

Call sub2…

RET

Sub1

50005001

5003

5002

5004

50055006

………………

RET

Sub2

5002

4005

5005

سازمان پشته:پشته حافظه ای:

مثال:

کاربرد پشته در محاسبه عبارات ریاضی:

به منظور استفاده از پشته برای عبارات ریاضی، باید عبارترا به فرم پسوندی یا فرم معکوس لهستانی نوشت.

:مثال A * B + C * D AB * CD * +

: ( 3 * 4 ) + ( 5 * 6 ) 34 * 56 * +

3 12

6

5

42

30

12

5

1212

4

3

43 +*65*

نکته: انجام داده ایم.PUSH عمل 4 کرده ایم یعنی PUSH- به تعداد عملوند، 1 کلمه است.3- تعداد کلمات مورد نیاز در پشته مطابق شکل 2

بررسی شد. ماشین پایه فرمت دستورات در فصل قبل برای فرمت دستور العمل:

معموال هر فرمت دستور شامل فیلدهای زیر است:

( که مشخص کننده نوع عملی OPCODE)کد عملیات - یک فیلد 1است که انجام میشود.

که یک آدرس حافظه یا یک ثبات پردازنده را آدرس- یک فیلد 2مشخص میکند.

را مشخص می کند؛ یعنی روشی که مد آدرس دهی - یک فیلد، 3عملوند پیدا میشود را تعیین می کند.

سایر فیلدها نیز می توانند استفاده شوند، مثال فیلدی که تعداد شیفت ها را در یک دستور شیفت مشخص می کند.

اغلب کامپیوترها دارای سه نوع ساختار کلی هستند:در فصل قبل(ماشین پایه ) مانند آکوموالتور- ساختار مبتنی بر یک 1)مبتنی بر ثباتهای عمومی(چندثباتی - ساختار 2پشته ای- ساختار 3

آکوموالتور:- ساختار مبتنی بر یک 1فرمت دستور العمل: است. فرمت دستور در ACکامپیوتر معرفی شده در فصل قبل مبتنی بر این ماشین فقط دارای یک فیلد آدرس است .

ACجمع می کند:ACرا با X، محتویات حافظه ADD Xمثل AC+M[X]

)مبتنی بر ثباتهای عمومی(:چندثباتی - ساختار 2مثBالی از سBاختار کامپیوترهBای چنBدثباتی در قبال بیBان شBده اسBت. در این

, , ،ا ADD فیلBد آدرس دارد. مثال دسBتور 2 فیلBد یBا 3کBامپیوتر احتیBاج بBه را با جمع و حاصل را به منتقل می کند .

پشته ای:- ساختار 3 استفاده می کنند که این دستورات احتیاج به POP و PUSHاز دستورات

X کلمه ای که در آدرس PUSH X فیلد آدرس دارند. بنابراین دستور یکقرار دارد را به باالی پشته منتقل میکند.

در این ماشین، دستوراتی که روی عملوند ها، عمل می کنند نیاز به فیلد آدرس ندارند.

در این نوع ماشین دو عملوند باالی پشته را برداشته و ADDمثال دستور جمع کرده و حاصل را به پشته باز می گرداند.

فرمت دستور العمل:

)M[X]=)M[A]+M[B](*)M[C]+M[D]می خواهیم عبارت : مثال•

را با دستورات صفر، یک، دو و سه آدرسی محاسبه کنیم:• X = (A + B)*(C + D)

1( Three-Address Instruction

:کوتاهی برنامه ها مزیت •

: طوالنی بودن دستورعیب•

ADD R1, A, B

ADD R2, C, D

MUL X, R1, R2 21][

][][2

][][1

RRXM

DMCMR

BMAMR

فرمت دستور العمل:

: ادامه مثال•X = (A + B)*(C + D)

• 2( Two-Address Instruction

• 3( One-Address Instruction

MOV R1, A

ADD R1, B

MOV R2, C

ADD R2, D

MUL R1, R2

MOV X, R1 1][

211

][22

][2

][11

][1

RXM

RRR

DMRR

CMR

BMRR

AMR

LOAD A

ADD B

STORE T

LOAD C

ADD D

MUL T

STORE X ACXM

TMACAC

DMACAC

CMAC

ACTM

BMACAC

AMAC

][

][

][

][

][

][

][

فرمت دستور العمل:

: ادامه مثال•X = (A + B)*(C + D)

• 4( Zero-Address InstructionPUSH A

PUSH B

ADD

PUSH C

PUSH D

ADD

MUL

POP X TOSXM

BADCTOS

DCTOS

DTOS

CTOS

BATOS

BTOS

ATOS

][

)()(

)(

)(

RISC: REDUCED INSTRUCTIONدستورات SET COMPUTER

می باشد.store و loadدستورات در این ماشین محدود به •

از طریق این دو دستور حافظه و پردازندهارتباط بین ثبات های •می باشد.

روی ثبات ها عمل می کنند و هیچ مراجعه فقطسایر دستورات •ای به حافظه ندارند.

:مثالX = ( A + B ) * ( C + D )

1][

311

433

211

][4

][3

][2

][1

RXM

RRR

RRR

RRR

DMR

CMR

BMR

AMR

LOAD R1, A

LOAD R2, B

LOAD R3, C

LOAD R4, D

ADD R1, R1, R2

ADD R3, R3, R4

MUL R1, R1, R3

STORE X, R1

مدهای آدرس دهی:

مد آدرس دهی مشخص می کند که عملوند چگونه انتخاب شود.•

برای برنامه نویس امکاناتی از قبیل اشاره گر به حافظه، شمارنده -برای حلقه و ... فراهم می کند.

کاهش تعداد بیت در فیلد آدرس در دستور-

دستور برای داشتن چندین مد آدرس دهی باید دارای فیلد مد آدرس -دهی چند بیتی باشد مثال

Opcode Mode Address

مدهای آدرس دهی:

:impliedمد ضمنی •عملوند به صورت ضمنی در دستورالعمل مشخص است•

•Examples

: Comمکمل کردن انباره•

عملوند در ثبات انباره است•

•PUSH : Stack push

عملوند باالی پشته قرار می گيرد •

:immediateمد بالفصل •فيلد عملوند شامل عملوند واقعی است•

برای مقدار دهی اوليه ثبات ها استفاده می شود•

•Example : LD #NBR LD # 50

:register madeمد ثباتی •عملوندها در ثبات ها هستند•

ثبات مورد نظر با توجه به فيلد آدرس دهی ثبات در دستورالعمل تعيين می •شود

•k-bit register field can specify any one of 2k registers

•Example : LD R1

autoincrement or autoمد افزاینده یا کاهنده خودکار •decrement

1RAC Implied Mode

مدهای آدرس دهی:

:register indirect madeمد ثباتی غیر مستقیم •تعيين يک ثبات که آدرس عملوند را در خود دارد•

•Example : LD (R1)

Autoincrement orمد افزاینده یا کاهنده خودکار •Autodecrement Mode

Example (Autoincrement) : LD (R1) +

direct-absoluteمد آدرس دهی مستقیم یا مطلق •آدرس موثر در فيلد آدرس قرار می گيرد•

•Example : LD ADR

indirect address modeمد آدرس دهی غیر مستقیم •آدرس موثر در آدرسی از حافظه است، که آن آدرس، در فيلد عملوند قرار دارد•

•Example : LD @ADR

]1[RMAC

111],1[ RRRMAC

]][[ ADRMMAC

مدهای آدرس دهی:

relativeمد آدرس دهی نسبی • به فيلد آدرس اضافه می شود تا آدرس موثر توليد گردد. البته بعد از PCمقدار

اينکه شمارنده برنامه افزايش يافت

•Example : LD $ADR

indexedمد آدرس دهی ایندکس یا شاخص دار • ( ثبات شاخص )به فيلد آدرس اضافه می شود تا آدرس موثر توليد XRمقدار •

گردد.

•Example : LD ADR(XR)

base registerمد آدرس دهی ثبات پایه • ثبات پايه به فيلد آدرس اضافه می شود تا آدرس موثر توليد گردد. BRمقدار •

][ ADRPCMAC

][ XRADRMAC

مدهای آدرس دهی:

Load to AC Mode

Address = 500

Next instruc tion

700

450

800

900

325

300

PC = 200

R1 = 400

XR = 100

AC

200

702

600

500

400

399

202

201

800

Address Memory

PC R1 AC

آدرس موثر

مد آدرس دهی

202

400 800

500 مستقیم

202

400 500

201 بالفصل

202

400 300

800 غیرمستقیم

202

400 325

702 نسبی

202

400 900

600 شاخص دار

202

400 400

- ثباتی

202

400 700

400 ثباتی غیر مستقیم

202

401 700

400 پس افزاینده

202

399 450

399 پس کاهنده

قBرار دارد کBه فیلBد Load to AC دسBتور 201 و 200در آدرس هBای مثLال: اسBت. فیلBد دوم دسBتور کBه در کلمBه اول دسBتور واقBع 500آدرس آن شBامل عBدد

اسBت، مBد آدرس دهی اسBت. می خBواهیم بBا توجBه بBه مقBادیر مشBخص شBده در شکل اثر مدهای مختلف را بررسی کنیم.

دستورات کامپیوتر:

دستورات اغلب کامپیوترها در سه شکل دسته بندی می شوند:•

دستورات انتقال داده•

دستورات دستکاری داده ها•

دستورات خاص پردازنده•

: دستورات انتقال داده•• Load : transfer from memory to a processor register, usually an AC )memory

read(

• Store : transfer from a processor register into memory )memory write(

• Move : transfer from one register to another register

• Exchange : swap information between two registers or a register and a memory word

• Input/Output : transfer data among processor registers and input/output device

• Push/Pop : transfer data between processor registers and a memory stack

:loadمدهای آدرس دهی برای دستور •

• @ : Indirect Address

• $ : Address relative to PC

• # : Immediate Mode

• ( ) : Index Mode, Register Indirect, Autoincrement register

دستورات دستکاری داده ها•

دستورات حسابی•

دستورات منطقی و دستکاری بیت•

دستورات شیفت•

دستورات کنترل برنامه•

,…branch , jump, call, return, compareمانند

دستورات کامپیوتر:

شرایط بیت های وضعیت:

در نظر گرفته شده است که در آن بیت ALUدر کامپیوترها ثباتی همراه با •های وضعیت ذخیره می شوند.

• Bit C )carry( : set to 1 if the end carry C8 is 1

• Bit S )sign( : set to 1 if F7 is 1

• Bit Z )zero( : set to 1 if the output of the ALU contains all 0’s

• Bit V )overflow( : set to 1 if the exclusive-OR of the last two

carries )C8 and C7( is equal to 1

Z C S V

• Complex Instruction Set Computer )CISC(

250 تا 100دستورات زیاد معموال بین •

بعضی دستورات کاربرد خاص دارند و بندرت بکار می روند•

مد مختلف20 تا 5مدهای آدرس دهی زیاد دارند. بین •

دستورات با طول متفاوت•

دارای دستوراتی که می توانند با عملوند های حافظه ای سروکار •دارند.

•Reduced Instruction Set Computer )RISC(

دستورات نسبتا کم•

مدهای آدرس دهی نسبتا کم•

است.store و loadدسترسی به حافظه در اینجا فقط منحصر به •

تمام عملیات داخل ثبات های پردازنده انجام می شود.•

دستورات طول ثابت دارند که براحتی ترجمه می شوند.•

اجرای دستورات معموال در یک سیکل انجام می شود.•

واحد کنترل سیم بندی شده است.•

RISC: REDUCED INSTRUCTIONکامپیوتر SET COMPUTER

:RISCهمپوشي پنجره ها در ماشين برای سرعت بخشيدن به عمليات فراخواني و برگشت از زير روال، •

پنجره های همپوشانی شده استفاده می گردد.

اين پنجره ها برای جلوگيری مصرف زمان برای انتقال پارامترها •

و برگشت نتايج بين روال ها می باشد.

به هر فراخوانی زیر برنامه، یک پنجره جدید که شامل تعدادی•

ثبات از فایل ثبات است، تخصیص می یابد.

در واقع یک اشاره گر وجود دارد که هنگام فراخوانی زیر برنامه•

افزایش می یابد و پنجره جدید را فعال می کند و هنگام بازگشت

از زیر برنامه، اشاره گر کاهش یافته و پنجره قبلی فعال

می شود و و پنجره زیربرنامه مشترک متغیرها را در اختیار

پنجره فعال فعلی قرار می گیرد و سرعت انتقال پارامترها

به زیر روال ها افزایش می یابد.

Cده ثبات محلی

Bده ثبات محلی

Aده ثبات محلی

Dده ثبات محلی

شش ثباتمشترک

C,D

شش ثباتمشترک

C, B

شش ثباتمشترک

B, A

شش ثباتمشترک

A,D

ده ثباتعمومی