جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
ريزپردازنده
-(11 نفر) 
ريزپردازنده
بازدید 344
گروه: دنياي فن آوري
کامپيوتري که هم اکنون به کمک آن در حال مشاهده و مطالعه اين صفحه هستيد ، داراي يک ريزپردازنده است . ريزپردازنده به منزله مغز کامپيوتر است و تمامي کامپيوترها اعم از کامپيوترهاي شخصي ، کامپيوترهاي دستي و ... داراي ريزپردازنده مي باشند. نوع ريزپردازنده استفاده شده در يک کامپيوتر مي تواند متفاوت باشد ولي تمامي آنان عمليات مشابهي را انجام مي دهند .

تاريخچه ريزپردازنده ها

ريزپردازنده که CPU هم ناميده مي گردد، پتانسيل هاي اساسي براي انجام محاسبات و عمليات مورد نظر در يک کامپيوتر را فراهم مي نمايد. ريزپردازنده از لحاظ فيزيکي يک تراشه است . اولين ريزپردازنده در سال 1971 و با نام Intel 4004 معرفي گرديد. ريزپردازنده فوق چندان قدرتمند نبود و صرفا" قادر به انجام عمليات جمع و تفريق چهار بيتي بود. نکته مثبت پردازنده فوق، استفاده از صرفا" يک تراشه بود.قبل از آن مهندسين و طراحان کامپيوتر از چندين تراشه و يا عصر براي توليد کامپيوتر استفاده مي کردند.
اولين ريزپردازنده اي که بر روي يک کامپيوتر خانگي نصب گرديد ، 8080 بود. پردازنده فوق هشت بيتي و بر روي يک تراشه قرار داشت . اين ريزپردازنده در سال 1974 به بازار عرضه گرديد.اولين پردازنده اي که باعث تحولات اساسي در دنياي کامپيوتر شد ، 8088 بود. ريزپردازنده فوق در سال 1979 توسط شرکت IBM طراحي و اولين نمونه آن در سال 1982 عرضه گرديد. وضعيت توليد ريزپردازنده توسط شرکت هاي توليد کننده بسرعت رشد و از مدل 8088 به 80286 ، 80386 ، 80486 ، پنتيوم ، پنتيوم II ، پنتيوم III و پنتيوم 4 رسيده است . تمام پردازنده هاي فوق توسط شرکت اينتل و ساير شرکت هاي ذيربط طراحي و عرضه شده است . پردازنده هاي پنتيوم 4 در مقايسه با پردازنده 8088 عمليات مربوطه را با سرعتي به ميزان 5000 بار سريعتر انجام مي دهد! جدول زير ويژگي هر يک از پردازنده هاي فوق بهمراه تفاوت هاي موجود را نشان مي دهد.

Name

Date

Transistors

Microns

Clock speed

Data width

MIPS

8080

1974

6,000

6

2 MHz

8 bits

0.64

8088

1979

29,000

3

5 MHz

16 bits
8-bit bus

0.33

80286

1982

134,000

1.5

6 MHz

16 bits

1

80386

1985

275,000

1.5

16 MHz

32 bits

5

80486

1989

1,200,000

1

25 MHz

32 bits

20

Pentium

1993

3,100,000

0.8

60 MHz

32 bits
64-bit bus

100

Pentium II

1997

7,500,000

0.35

233 MHz

32 bits
64-bit bus

~300

Pentium III

1999

9,500,000

0.25

450 MHz

32 bits
64-bit bus

~510

Pentium 4

2000

42,000,000

0.18

1.5 GHz

32 bits
64-bit bus

~1,700

توضيحات

• ستون Date نشاندهنده سال عرضه پردازنده است.
• ستون Transistors تعدا ترانزيستور موجود بر روي تراشه را مشخص مي کند. تعداد ترانزيستور بر روي تراشه در سال هاي اخير شتاب بيشتري پيدا کرده است .
• ستون Micron ضخامت کوچکترين رشته بر روي تراشه را بر حسب ميکرون مشخص مي کند. ( ضخامت موي انسان 100 ميکرون است ).
• ستون Clock Speed حداکثر سرعت Clock تراشه را مشخص مي نمايد.
• ستون Data Width پهناي باند واحد منطق و محاسبات (ALU) را نشان مي دهد. يک واحد منطق و حساب هشت بيتي قادر به انجام عمليات محاسباتي نظير: جمع ، تفريق ، ضرب و ... براي اعداد هشت بيتي است. در صورتيکه يک واحد منطق و حساب 32 بيتي قادر به انجام عمليات بر روي اعداد 32 بيتي است . يک واحد منطق و حساب 8 بيتي به منظور جمع دو عدد 32 بيتي مي بايست چهار دستورالعمل را انجام داده در صورتيکه يک واحد منطق وحساب 32 بيتي عمليات فوق را صرفا" با اجراي يک دستورالعمل انجام خواهد داد.در اغلب موارد گذرگاه خارجي داده ها مشابه ALU است . وضعيت فوق در تمام موارد صادق نخواهد بود مثلا" پردازنده 8088 داراي واحد منطق وحساب 16 بيتي بوده در حاليکه گذرگاه داده ئي آن هشت بيتي است . در اغلب پردازنده هاي پنتيوم جديد گذرگاه داده 64 بيتي و واحد منطق وحساب 32 بيتي است . ستون MIPS مخفف کلمات Millions of instruction per Second ( ميليون دستورالعمل در هر ثانيه ) بوده و واحدي براي سنجش کارآئي يک پردازنده است.

درون يک پردازنده

به منظورآشنائي با نحوه عملکرد پردازنده لازم است، نگاهي به درون يک ريزپردازنده داشته و با منطق نحوه انجام عمليات بيشتر آشنا شويم. يک ريزپردازنده مجموعه اي از دستورالعمل ها را اجراء مي کند. دستورالعمل هاي فوق ماهيت و نوع عمليات مورد نظر را براي پردازنده مشخص خواهند کرد. با توجه به نوع دستورالعمل ها ، يک ريزپردازنده سه عمليات اساسي را انجام خواهد داد :
• يک ريزپردازنده با استفاده از واحد منطق و حساب خود (ALU) قادر به انجام عمليات محاسباتي نظير: جمع ، تفريق، ضرب و تقسيم است. پردازنده هاي جديد داراي پردازنده هاي اختصاصي براي انجام عمليات مربوط به اعداد اعشاري مي باشند.
• يک ريزپردازنده قادر به انتقال داده از يک محل حافظه به محل ديگر است .
• يک ريزپردازنده قادر به اتخاذ تصميم ( تصميم گيري ) و پرش به يک محل ديگر براي اجراي دستورالعمل هاي مربوطه بر اساس تصميم اتخاذ شده است .
شکل زير يک پردازنده ساده را نشان مي دهد.
s

پردازنده فوق داراي :

• يک گذرگاه آدرس (Address Bus) است که قادر به ارسال يک آدرس به حافظه است ( گذرگاه فوق مي تواند 8 ، 16 و يا 32 بيتي باشد)
• يک گذرگاه داده (Data Bus) است که قادر به ارسال داده به حافظه و يا دريافت داده از حافظه است (گذرگاه فوق مي تواند 8 ، 16 و يا 32 بيتي باشد)
• يک خط براي خواندن (RD) و يک خط براي نوشتن (WR) است که آدرسي دهي حافظه را انجام مي دهند. آيا قصد نوشتن در يک آدرس خاص وجود داشته و يا مقصود، خواندن اطلاعات از يک آدرس خاص حافظه است؟
• يک خط Clock که ضربان پردازنده را تنظيم خواهد کرد.
• يک خط Reset که مقدار " شمارنده برنامه " را صفر نموده و يا باعث اجراي مجدد يک فرآيند مي گردد.
فرض کنيد پردازنده فوق هشت بيتي بوده واز عناصر زير تشکيل شده است:
• ريجسترهاي A,B,C نگاهدارنده هائي بوده که از فليپ فلاپ ها ساخته شده اند.
• Address Latch مشابه ريجسترهاي A,B,C است .
• شمارنده برنامه (Program Counter) نوع خاصي از يک نگهدارنده اطلاعات است که قابليت افزايش بميزان يک و يا پذيرش مقدار صفر را دارا است
• واحد منطق و حساب (ALU) مي تواند يک مدار ساده جمع کننده هشت بيتي بوده و يا مداري است که قابليت انجام عمليات جمع ، تفريق ، ضرب و تقسيم را دارا است . • ريجستر Test يک نوع خاص نگاهدارنده بوده که قادر به نگهداري نتايج حاصل از انجام مقايسه ها توسط ALU است .ALU قادر به مقايسه دو عدد وتشخيص مساوي و يا نامساوي بودن آنها است . ريجستر Test همچنين قادر به نگهداري يک Carry bit ( ماحصل آخرين مرحله عمليات جمع) است . ريجستر فوق مقادير مورد نظر را در فليپ فلاپ ها ذخيره و در ادامه Instruction Decoder "تشخيص دهنده دستورالعمل ها " با استفاده از مقادير فوق قادر به اتخاذ تصميمات لازم خواهد بود.
• همانگونه که در شکل فوق ، مشاهده مي گردد از شش " 3-State" استفاده شده که به آنها "tri-State buffers" مي گويند. بافرهاي فوق قادر به پاس دادن مقادير صفر و يا يک و يا قطع خروجي مربوطه مي باشند.. اين نوع بافرها امکان ارتباط چندين خروجي را از طريق يک Wire فراهم مي نمايند. در چنين حالتي فقط يکي از آنها قادر به انتقال ( حرکت ) صفر و يا يک بر روي خط خواهد بود.
ريجستر Instruction و Instruction Decoder مسئوليت کنترل ساير عناصر را برعهده خواهند داشت . بدين منظور از خطوط کنترلي متفاوتي استفاده مي گردد. خطوط فوق در شکل فوق نشان داده نشده اند ولي مي بايست قادر به انجام عمليات زير باشند:
• به ريجستر A اعلام نمايد که مقدار موجود بر روي گذرگاه داده را در خود نگاهدارد.(Latch)
• به ريجستر B اعلام نمايد که مقدار موجود بر روي گذرگاه داده را در خود نگاهدارد.(Latch)
• به ريجستر C اعلام نمايد که مقدار موجود بر روي گذرگاه داده را در خود نگاهدارد.(Latch)
• به " شمارنده برنامه " اعلام نمايد که مقدار موجود بر روي گذرگاه داده را در خود نگاهدارد.(Latch)
• به ريجستر Address اعلام نمايد که مقدار موجود بر روي گذرگاه داده را در خود نگاهدارد.(Latch)
• به ريجستر Instruction اعلام نمايد که مقدار موجود بر روي گذرگاه داده را در خود نگاهدارد.(Latch)
• به " شمارنده برنامه " اعلام نمايد که مقدار خود را افزايش دهد.
• به " شمارنده برنامه " اعلام نمايد که مقدار خود را صفر (Reset) نمايد.
• به واحد منطق و حساب نوع عملياتي را که مي بايست انجام گيرد، اعلام نمايد.
• به ريجستر Test اعلام نمايد که بيت هاي ماحصل عمليات ALU را در خود نگاهدارد.
• فعال نمودن خط RD ( خواندن )
• فعال نمودن خط WR ( نوشتن )

حافظه هاي RAM و ROM

در بخش قبل گذرگاه هاي آدرس و داده نظيرخطوط RD,WR بررسي گرديدند. گذرگاه هاي فوق به حافظه هاي RAM ،ROM و يا هر دو متصل خواهند بود. در ريزپردازنده ساده فرضي فوق، از گذرگاه هاي آدرس و داده هشت بيتي استفاده مي گردد. بدين ترتيب پردازنده قادر به آدرس دهي 256 بايت حافظه و خواندن و يا نوشتن هشت بيت از حافظه در هر لحظه خواهد بود. فرض کنيد پردازنده فوق داراي 128 بايت حافظه ROM بوده که از آدرس صفر شروع شده و 128 بايت حافظه RAM که از آدرس 128 آغاز مي گردد ، است . حافظه ROM تراشه اي است که اطلاعاتي را از قبل و بصورت دائم در خود نگهداري مي نمايد. گذرگاه هاي آدرس به تراشه ROM اعلام خواهند کرد که کدام بايت را خواسته و آن را بر روي گذرگاه قرار خواهد داد. زمانيکه وضعيت خط RD تغيير نمايد تراشه ROM بايت مورد نظر و انتخابي را بر روي گذرگاه داده قرار خواهد داد. RAM شامل بايت هائي از اطلاعات است . ريزپردازنده قادر به خواندن و نوشتن در حافظه فوق بر اساس سيگنال هاي دريافتي از خطوط RD و RW است . در رابطه با حافظه RAM مي بايست به اين نکته نيز اشاره گردد که اين نوع از حافظه ها با از دست منبع انرژي ( برق ) اطلاعات خود را از دست خواهند داد.
تمامي کامپيوترها داراي حافظه ROM به ميزان مشخص مي باشند. ( برخي از کامپيوترها ممکن است داراي حافظه RAM نبوده نظير ميکرو کنترل ها ، ولي وجود و ضرورت حافظه ROM را در هيچ کامپيوتري نمي توان انکار نمود).بر روي کامپيوترهاي شخصي حافظه ROM را BIOS نيز مي نامند. زمانيکه ريزپردازنده فعاليت خود را آغاز مي نمايد ، در ابتدا دستورالعمل هائي را اجراء خواهد کرد که در BIOS مي باشند. دستورالعمل هاي موجود در BIOS عملياني نظير تست سخت افزار و سيستم را انجام و در ادامه فرآيندي آغاز خواهد شد که نتيجه آن استقرار سيستم عامل در حافظه خواهد بود. (Booting) . در آغاز فرآيند فوق ، بوت سکتور هارد ديسک ( مي تواند آغاز عمليات فوق از هارد شروع نشده و از فلاپي ديسک انجام گردد ، اتخاذ تصميم در رابطه با وضعيت فوق بر اساس پارامترهاي ذخيره شده در حافظه CMOS خواهند بود ) را بررسي خواهد کرد . بوت سکتور فوق حاوي برنامه اي کوچک است که در ادامه BIOS آن را خوانده و در حافظه RAM مستقر خواهد کرد. ريزپردازنده در ادامه دستورالعمل هاي مربوط به برنامه بوت سکتور را که در حافظه RAM مستقر شده اند ،اجراء خواهد کرد. برنامه فوق به ريزپردازنده اعلام خواهد کرد که اطلاعات ديگري را از هارد ديسک به درون حافظه RAM انتقال و آنها را اجراء نمايد. با ادامه وتکميل فرآيند فوق سيستم عامل در حافظه مستقر ومديريت خود را آغاز مي نمايد.

دستورالعمل هاي ريزپردازنده

هر ريزپردازنده داراي مجمو عه اي از دستورالعمل ها بوده که داراي کارآئي خاصي مي باشند. اين دستورالعمل ها بصورت الگوئي از صفر و يا يک پياده سازي مي گردنند. استفاده از دستورات فوق با توجه به ماهيت الگوئي آنها براي انسان مشکل و بخاطر سپردن آنها امري است مشکل تر! ، بدين دليل از مجموعه اي " کلمات " برا ي مشخص نمودن الگوهاي فوق استفاده مي گردد. مجموعه " کلمات " فوق " زبان اسمبلي " ناميده مي شوند. يک " اسمبلر" قادر به ترجمه کلمات به الگوهاي بيتي متناظر است .پس از ترجمه ، ماحصل عمليات که همان استخراج " الگوهاي بيتي " است، در حافظه مستقر تا زمينه اجراي آنها توسط ريزپردازنده فراهم گردد جدول زير برخي از دستورالعمل هاي مورد نياز در رابطه با پردازنده فرضي را نشانن مي دهد.

Instruction

Meaning

LOADA mem

لود نمودن ريجستر Aاز آدرس حافظه

LOADB mem

لود نمودن ريجستر Bاز آدرس حافظه

CONB con

لود نمودن يک مقدار ثابت در ريجستر B

SAVEB mem

ذخيره نمودن مقدار موجود در ريجستر Bدر يک آدرس حافظه

SAVEC mem

ذخيره نمودن مقدار موجود در ريجستر Cدر يک آدرس حافظه

ADD

جمع  Aو Bو ذخيره کردن حاصل در C

SUB

تفريق Aو Bو ذخيره کردن حاصل در C

MUL

ضرب  Aو Bو ذخيره کردن حاصل در C

DIV

تقسيم  Aو Bو ذخيره کردن حاصل در C

COM

مقا يسه  Aو Bو ذخيره کردن حاصل در Test

JUMP addr

پرش به يک آدرس مشخص

JEQ addr

پرش شرطي ( اگر مساوي است ) به يک آدرس مشخص

JNEQ addr

پرش شرطي ( اگر نا مساوي است ) به يک آدرس مشخص

JG addr

پرش شرطي ( اگر بزرگتر است ) به يک آدرس مشخص

JGE addr

پرش شرطي ( اگر بزرگتر و يا مساوي است ) به يک آدرس مشخص

JL addr

پرش شرطي ( اگر کوچکتر است ) به يک آدرس مشخص

JLE addr

پرش شرطي ( اگر کوچکتر و يا مساوي است ) به يک آدرس مشخص

STOP

توقف اجراء

مثال : فرض کنيد برنامه محاسبه فاکتوريل عدد پنج (5!=5*4*3*2*1 ) با يکي از زبانهاي سطح بالا نظير C نوشته گردد . کمپايلر ( مترجم ) زبان C برنامه مورد نظر را به زبان اسمبلي ترجمه خواهد کرد. ( فرض کنيد که آدرس شروع RAM در پردازنده فرضي 128 و آدرس شروع حافظه ROM صفر باشد.) جدول زير برنامه نوشته شده به زبان C را بهمراه کد ترجمه شده اسمبلي معادل آن، نشان مي دهد.

C Program

 Assembly Language

a=1;
f=1;
while (a <= 5)
{
    f = f * a;
    a = a + 1;
}

// Assume a is at address 128
// Assume F is at address 129
0   CONB 1      // a=1;
1   SAVEB 128
2   CONB 1      // f=1;
3   SAVEB 129
4   LOADA 128   // if a > 5 the jump to 17
5   CONB 5
6   COM
7   JG 17
8   LOADA 129   // f=f*a;
9   LOADB 128
10  MUL
11  SAVEC 129
12  LOADA 128   // a=a+1;
13  CONB 1
14  ADD
15  SAVEC 128
16  JUMP 4       // loop back to if
17  STOP

در ادامه مي بايست کدهاي ترجمه شده به زبان اسمبلي به زبان ماشين ( الگوهاي بيتي ) ترجمه گردند. بدين منظور لازم است که هر يک از دستورات اسمبلي داراي کد معادل (OpCode) باشند. فرض کنيد دستورات اسمبلي در پردازنده فرضي داراي Opcode ( کدهاي عملياتي) زير باشند.

Assembly Instruction

Opcode

LOADA mem

1

LOADB mem

2

CONB con

3

SAVEB mem

4

SAVEC mem

5

ADD

6

SUB

7

MUL

8

DIV

9

COM

10

JUMP addr

11

JEQ addr

12

JNEQ addr

13

JG addr

14

JGE addr

15

JL addr

16

JLE addr

17

STOP

18

در نهايت برنامه ترجمه شده به زبان اسمبلي به زبان ماشين ( الگوهاي بيتي ) ترجمه خواهد شد.

Assembly Language

Bit Patterns

// Assume a is at address 128
// Assume F is at address 129
0   CONB 1      // a=1;
1   SAVEB 128
2   CONB 1      // f=1;
3   SAVEB 129
4   LOADA 128   // if a > 5 the jump to 17
5   CONB 5
6   COM
7   JG 17
8   LOADA 129   // f=f*a;
9   LOADB 128
10  MUL
11  SAVEC 129
12  LOADA 128   // a=a+1;
13  CONB 1
14  ADD
15  SAVEC 128
16  JUMP 4       // loop back to if
17  STOP

// Assume a is at address 128
// Assume F is at address 129
Addr opcode/value
0 3                // CONB 1
1    1
2 4                // SAVEB 128
3    128
4 3                // CONB 1
5    1
6 4                // SAVEB 129
7    129
8 1                // LOADA 128
9    128
10 3               // CONB 5
11   5
12 10              // COM
13 14              // JG 17
14   31
15 1               // LOADA 129
16   129
17 2               // LOADB 128
18   128
19 8               // MUL
20 5               // SAVEC 129
21   129
22 1               // LOADA 128
23   128
24 3               // CONB 1
25   1
26 6               // ADD
27 5               // SAVEC 128
28   128
29 11              // JUMP 4
30   8
31 18              // STOP

همانگونه که مشاهده مي نمائيد برنامه نوشته شده به زبان C به 17 دستورالعمل معادل اسمبلي و 31 دستورالعمل زبان ماشين تبديل گرديد.
Instruction Decoder ( تشخيص دهنده نوع دستورالعمل ها ) با انجام عملياتي خاص، نوع دستورالعمل را تشخيص خواهد داد. فرض کنيد دستور العمل ADD را داشته باشيم و بخواهيم نحوه تشخيص دستورالعمل را دنبال نمائيم :
• در زمان اولين Clock ، دستورالعمل Load مي گردد. ( فعال کردن بافر tri-state براي " شمارنده برنامه " ، فعال شدن خط RD ، فعال کردن Data-in در بافر tri-state )
• در زمان دومين Clock ، دستورالعمل ADD تشخيص داده خواهد شد.( تنظيم عمليات جمع براي ALU ، ذخيره نمودن ماحصل عمليات ALU در ريجستر C )
• در زمان سومين Clock، " شمارنده برنامه " افزايش خواهد يافت ( در تئوري اين مرحله مي تواند در زمان دومين Clock نيز صورت پذيرد)
همانگونه که ملاحظه گرديد ، هر دستورالعمل اسمبلي داراي چندين Clock Cycle است . برخي از دستورات نظير ADD داراي دو و يا سه Clock و برخي ديگر از دستورات داراي پنج ويا شش Clock خواهند بود.
اضافه کردن نظر
نام:
پست الکترونيک:
نظرات کاربران:
کد امنیتی: تصویر امنیتیتغییر عکس