تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 3 از 3

نام تاپيک: مقاله ای 20 صفحه ای در مورد Cpu و نحوه کار آن

  1. #1
    اگه نباشه جاش خالی می مونه bookworm's Avatar
    تاريخ عضويت
    Sep 2005
    محل سكونت
    End Of Line
    پست ها
    207

    پيش فرض مقاله ای 20 صفحه ای در مورد Cpu و نحوه کار آن

    مقاله ای 20 صفحه ای در مورد Cpu و نحوه کار آن وانواع آن می خواهم.

  2. #2
    در آغاز فعالیت
    تاريخ عضويت
    Mar 2007
    پست ها
    8

    پيش فرض

    دوست عزیز 20 صفحه نیست ولی از هیچی بهتره

    پردازنده
    کامپيوتری که هم اکنون بکمکآن در حال مشاهده و مطالعه اين صفحه هستيد، دارای يک ريزپردازنده است . ريزپردازنده بمنزله مغز درکامپيوتر است. تمام کامپيوترها اعم از کامپيوترهای شخصی ، کامپيوترهای دستی و ... دارای ريزپردازنده می باشند. نوع ريزپردازنده استفاده شده در يک کامپيوتر می تواندمتفاوت باشد ولی تمام آنها عمليات يکسانی را انجام خواهند داد.
    تاريخچه ريزپردازنده ها
    ريزپردازنده که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 ( ميليون دستورالعمل در هرثانيه ) بوده و واحدی برای سنجش کارآئی يک پردازنده است.
    درون يک پردازنده
    بمنظورآشنائی با نحوه عملکرد پردازنده لازماست،نگاهی به درون يکريزپردازنده داشته و با منطق نحوه انجام عمليات بيشتر آشنا شويم. يک ريزپردازندهمجموعه ای از دستورالعمل ها را اجراء می کند. دستورالعمل های فوق ماهيت و نوععمليات مورد نظر را برای پردازنده مشخص خواهند کرد. با توجه به نوع دستورالعمل ها،يک ريزپردازنده سهعمليات اساسی را انجام خواهد داد :
    1 - يک ريزپردازنده با استفاده از واحد منطق و حسابخود (ALU) قادر به انجام عمليات محاسباتی نظير: جمع،تفريق،ضرب و تقسيم است. پردازنده های جديد دارای پردازنده های اختصاصی برای انجام عمليات مربوط به اعداداعشاری می باشند.
    2 - يک ريزپردازنده قادر به انتقال داده از يک محلحافظهبه محل ديگر است .
    3 - يک ريزپردازنده قادر به اتخاذ تصميم ( تصميمگيری ) و پرش به يک محل ديگر برای اجرای دستورالعمل های مربوطه بر اساس تصميم اتخاذشده است .
    شکل زير يک پردازنده ساده را نشان می دهد.
    پردازنده فوق دارای :
    يک گذرگاه آدرس (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 129Addr opcode/value0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12824 3 // CONB 125 126 6 // ADD27 5 // SAVEC 12828 12829 11 // JUMP 430 831 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 خواهندبود.
    موفق باشید

  3. این کاربر از pchosein بخاطر این مطلب مفید تشکر کرده است


  4. #3
    در آغاز فعالیت
    تاريخ عضويت
    Jun 2013
    پست ها
    3

    پيش فرض

    سلام
    مطالبتون خوب بود اما من میخواستم بدونم دقیقا cpu چطور کار میکنه و مثل اینه که شما چند تا لامپ خلأ رو به هم وصل کنید و یه جمع یا تفریق رو انجام بده(البته در اولین کامپیوتر ها) میخوام بدونم این مرحله دقیقا چطور اتفاق میفته
    توی اینترنت خیلی گشتم و مشابه مطالب همینجا رو پیدا کردم لطفا راهنماییم کنید که در مورد چی دقیقا باید تحقیق کنم تا نحوه کار دقیقcpu رو بفهمم

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •