01.02.2014 Views

زبان ماشین

زبان ماشین

زبان ماشین

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

زبان ماشين و اسمبلی<br />

(۱۱۳-۱۱-۰۰۵)<br />

آشنايي با پردازنده ها<br />

جلسه ی چهارم<br />

دانشگاه شهيد بهشتی<br />

دانشکده ی مهندسی برق و کامپيوتر<br />

پاييز<br />

احمد محمودی ازناوه<br />

۱۳۹۱<br />

http://faculties.sbu.ac.ir/~a_mahmoudi/


فهرست مطالب<br />

ساختار پايه ي يك كامپيوتر<br />

ساعت سيستم<br />

ثبات<br />

گام هاي مختلف اجراي يك برنامه<br />

آشنايي با خط لوله<br />

•<br />

•<br />

•<br />

•<br />

•<br />

2


Slides prepared by Kip R. Irvine<br />

ساختار پايه ی يک کامپيوتر<br />

registers<br />

data bus<br />

‏•م ر و ر ي ب ر ج ل س هي پيش<br />

Central Processor Unit<br />

(CPU)<br />

Memory Storage<br />

Unit<br />

I/O<br />

Device<br />

#1<br />

I/O<br />

Device<br />

#2<br />

ALU<br />

CU<br />

clock<br />

control bus<br />

address bus<br />

زبان ماشين<br />

3


ساعت سيستم (clock)<br />

براي همگام سازي فعاليت ها مورد استفاده قرار<br />

مي گيرد.‏<br />

معياري براي مدت زمان لازم براي انجام يك كار<br />

است.‏<br />

•<br />

•<br />

one cycle<br />

1<br />

0<br />

زبان ماشين<br />

4<br />

Slides prepared by Kip R. Irvine


Register<br />

ثبات چيست؟<br />

–<br />

–<br />

حافظهاي سريع و كم حجم درون پردازنده است.‏<br />

براي دخيره ي موقت داده توسط پردازنده مورد<br />

استفاده قرار مي گيرد.‏<br />

ثبات را هم مي توان به دو گروه تقسيم كرد:‏<br />

ثبات هاي در دسترس ‏(آدرس پذير):‏<br />

ثبات هايي كه توسط برنامه نويس قابل استفاده<br />

هستند.‏<br />

ثبات هاي ‏(آدرسناپذير):‏ ثبات هايي كه توسط<br />

سخت افزار مورد استفاده قرار مي گيرد.‏<br />

•<br />

•<br />

زبان ماشين<br />

5


ثبات<br />

ثبات دستورالعمل<br />

اين ثبات بخشي از واحد كنترل است كه دستورالعمل<br />

جاري را در خود ذخيره مي كند.‏<br />

شمارنده ي دستورالعمل<br />

اين ثبات،‏ توالي اجراي برنامه را حفظ مي كند،‏ بسته به<br />

نوع طراحي آدرس دستور جاري و يا دستورالعمل بعدي را<br />

در خود نگه مي دارد.‏<br />

ثبات پرچم يا ثبات وضعيت<br />

نتيجه ي محاسبات ALU از قبيل صفر شدن نتيجه،‏<br />

علامت نتيجه،‏ بروز سرريز و توسط بيت هاي مختلف اين<br />

ثبات مشخص مي شوند.‏<br />

Instruction Pointer<br />

program counter<br />

:(register<br />

status)<br />

:(Instruction Register)<br />

:(program counter)<br />

..<br />

(Flag Register)<br />

•<br />

•<br />

•<br />

6


Instruction execution cycle<br />

گام های مختلف اجرای يک برنامه<br />

(Fetch)<br />

(Decode)<br />

(Fetch operands)<br />

(Execute)<br />

(Store output)<br />

واكشي<br />

رمزگشايي<br />

خواندن عملوندها<br />

اجراي دستور<br />

نوشتن نتيجه ي دستورالعمل<br />

•<br />

•<br />

•<br />

•<br />

•<br />

PC program<br />

I-1 I-2 I-3 I-4<br />

memory<br />

op1<br />

op2<br />

read<br />

registers<br />

fetch<br />

registers<br />

I-1<br />

instruction<br />

register<br />

write<br />

write<br />

flags<br />

ALU<br />

decode<br />

زبان ماشين<br />

(output)<br />

execute<br />

7<br />

Slides prepared by Kip R. Irvine


معماری Von Neumann<br />

در اين معماري دستورالعمل ها و داده ها در يك حافظه<br />

ذخيره مي شوند.‏<br />

بدين ترتيب امكان خواندن همزمان داده و دستورالعمل<br />

از حافظه وجود ندارد،‏ چنين مسأله اي به ‏«تنگناي معماري<br />

«Von Neumann شهرت دارد.‏<br />

•<br />

•<br />

Von Neumann bottleneck<br />

8


معماری Harvard<br />

در معماري ،Harvard براي داده ها و دستوالعمل ها،‏<br />

حافظه و گذرگاه داده ي جداگانه اي در نظر گرفته شده<br />

است.‏ اين نام در پي ساخت كامپيوتر<br />

كه از حافظه هاي جداگانه براي داده ها و دستورالعمل ها<br />

استفاده مي كرد،‏ به اين معماري اطلاق شده است.‏<br />

در اغلب كامپيوتر هاي امروزه از معماري تعديل شده ي<br />

استفاده مي شود.‏<br />

هاروارد<br />

در اين شيوه ‏«حافظه ي نهان»‏ مربوط به دستوالعمل و<br />

داده ها جداگانه هستند،‏ به نوعي مي توان اين شيوه را<br />

تركيبي از دو نوع معماري فوق دانست،‏ چنين شيوه اي در<br />

Harvard Mark I<br />

(Modified Harvard Architecture)<br />

پردازنده هاي ،ARM x86،<br />

استفاده قرار مي گيرد.‏<br />

PowePc و MIPS مورد<br />

•<br />

•<br />

•<br />

9


اجرای دستورات به صورت سری<br />

Stages<br />

Cycles<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

S1 S2 S3 S4 S5<br />

I-1<br />

I-1<br />

I-1<br />

I-1<br />

I-1<br />

I-2<br />

I-2<br />

I-2<br />

I-2<br />

I-2<br />

S6<br />

I-1<br />

I-2<br />

تا پيش از پردازنده هاي 80486، اجراي دستورات به صورت ترتيبي<br />

در شش مرحله صورت مي پذيرفت.‏ در پردازنده هاي 80486 اين<br />

شش مرحله به صورت خط لوله در آمد.‏<br />

•<br />

زبان ماشين<br />

10<br />

Slides prepared by Kip R. Irvine


Pipeline<br />

مروری بر خط لوله<br />

در يك سيستم خط لوله،‏ اجراي چندين دستورالعمل<br />

داراي همپوشاني است.‏<br />

پايه ي خط لوله شبيه خط توليد كارخانه هاست.‏<br />

تقريبا در تمامي پردازنده هاي موجود از اين تكنيك<br />

استفاده مي شود.‏<br />

•<br />

•<br />

•<br />

11


مثالی از خط لوله<br />

‏(در رختشویخانه)‏<br />

در صورتي كه كارها<br />

را با همپوشاني<br />

انجام دهيم،‏<br />

كارايي افزايش<br />

چشمگيري خواهد<br />

داشت<br />

•<br />

Speedup= 8/3.5 = 2.3<br />

12


Slides prepared by Kip R. Irvine<br />

خط لوله (pipeline)<br />

‏«خط لوله يك شگرد پياده سازي است كه در آن<br />

چندين دستورالعمل به طور هم پوشان<br />

به اجرا در مي آيد.‏ در پردازنده هاي<br />

خانواده ي X86 نخستين بار در 80486 از خط لوله<br />

استفاده شد.‏<br />

Stages<br />

(overlapped)<br />

•<br />

Cycles<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

S1 S2 S3 S4 S5 S6<br />

I-1<br />

I-2 I-1<br />

I-2 I-1<br />

I-2 I-1<br />

I-2 I-1<br />

I-2 I-1<br />

I-2<br />

k + (n – 1)<br />

در يك خط لوله ي<br />

ر kم ح ل هاي،‏ براي انجام n دستور چند سيكل ساعت زمان لازم است؟<br />

زبان ماشين<br />

13


خط لوله ‏(ادامه...)‏<br />

اگر زماني كه گام هاي مختلف خط لوله نياز دارند<br />

يكسان نباشد،‏ ‏«ظرفيت گذردهي»‏ چه تفاوتي خواهد<br />

كرد؟ فرض كنيد گام چهارم به دو سيكل نياز داشته<br />

باشد؟<br />

Cycles<br />

Stages<br />

exe<br />

S1 S2 S3 S4 S5 S6<br />

1 I-1<br />

2<br />

3<br />

I-2<br />

I-3<br />

I-1<br />

I-2 I-1<br />

4<br />

5<br />

I-3 I-2<br />

I-3<br />

I-1<br />

I-1<br />

6<br />

I-2 I-1<br />

7<br />

I-2 I-1<br />

8<br />

I-3 I-2<br />

9<br />

I-3 I-2<br />

10<br />

I-3<br />

11<br />

I-3<br />

•<br />

Throughput<br />

در چنين حالي،‏ اجراي n دستور چند سيكل زمان لازم است؟<br />

زبان ماشين<br />

k + (2n – 1)<br />

14<br />

Slides prepared by Kip R. Irvine

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!