الاتصال بنا



النتائج 1 إلى 3 من 3

الموضوع: ما هو Pipeline وفي أي أنواع cpu موجوده ......... ?

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    300


    السلام عليكم والرحمة

    أشكر إخواني على هذا القسم المفيد والمتجديد دوما بالمواضيع الهادفة.

    سؤالي كما في العنوان:

    ما هو Pipeline بشرح بسيط وليس صعب وأيضا لو تكرمتم بمثال عشان أفهم ؟

    وأيضا هل هذه التكنولوجيا موجوده في Intel و Amd ?

    وأيضا لو عندنا جهازين بنفس المواصفات ولكن الفرق الوحيد بوجود pipeline فهل هنالك فرق في سرعة وأداء الجهاز ؟









    سوالف غير متواجد حالياً


  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    3,009

    بسم الله الرحمن الرحيم



    Pipeline تقنية أول ما سمعت بها كانت في الذاكرة المبخئية من المستوى الثاني:
    Pipeline Brust L2 Cache

    أما عن هذه التقنية في المعالجات فهي مستخدمة في جميع المعالجات الحالية ، الفارق يبقى في كيفية استخدامها وكثافة هذا الاستخدام ، أحاول أن أشرح لك ما فهمته حول هذه التقنية من صفحة :
    http://www.hardwarecentral.com

    وسوف أقسم الموضوع إلى فصول.

    ( الفصل الأول )

    لنفترض أن معالجا ما ينفذ دورة واحدة في الثانية ، إذن سرعته هي:
    1 Hz.
    ولنفترض أنه خلال هذه الدورة ينفض أربع خطوات:
    1. أخذ البيانات من الذاكرة وسنسميها الأجراء A.
    2. ترجمة هذه البيانات وسنسميه الإجراء B.
    3. تنفيذ العملية المطلوبة طبقا للبيانات الواردة وسنسميه الإجراء C.
    4. أرسال النتيجة إلى الذاكرة مرة أخرى أو تسجيلها وسنسميه الإجراء D.

    ولنفترض انه يؤدي العمليات A و B و C و D في دورة واحدة.

    وهذا ما نفهمه من الرسم التالي:


    تسمى الخطوات الأربع السابقة "تعليمة منفذة" أو instruction ، ولو افترضنا أن معالجا من نفس النوع يعمل بنفس التقنية ولكنه يعمل بسرعة 800Mhz ، فإنه ينفذ 800 مليون تعليمة في الثانية.

    لنفترض أننا نريد زيادة سرعة المعالج النموذجي من 1 HZ إلى 2 HZ ، ما علينا سوى تقليص حجم المعالج ، مما يسمح بزيادة سرعة الـ Switching في الترانزستورات ، وهذا سيعطينا HZ أكثر لكل ثانية ، مما يساهم في زيادة قدرة التعليمات المنفذة في الثانية الواحدة ، ولكن تبقى عملية اختزال وتقليص حجم المعالج محدودة.

    المعالج السابق يسمى NonPipelined

    أتمنى أن تركز في النقطة الماضية قبل الانتقال للتالية لأنها لا تفهم بمعزل عن السابقة:

    ( الفصل الثاني )


    ولنفترض أن لدينا معالج آخر يعمل كالتالي ، ينفذ كل عملية على حدة في دورة واحدة (HZ):

    A في دورة.
    B في دورة.
    C في دورة.
    D في دورة.

    وهذا ما نفهم من الرسم التالي:



    هذا المعالج الجديد سيعطينا التعليمة خلال أربعة أضعاف من عدد الدورات في المعالج السابق ، هذا المعالج هو معالج Pipeline ويقسم العمليات على الدورات.

    طبعا وفق التبسيط السابق ، فإن المعالج الأول خلال دورة كاملة يستخرج تعليمة منفذة كاملة ، أما المعالج الثاني فإنه خلال دورة ينفذ ربع التعليمة ، وخلال أربع دورات ينفذ تعليمة كاملة إلا أن سرعته أربع أَضعاف سرعة المعالج السابق.

    التعليمات المنفذة في المعالج الأول =
    عدد الدورات في الثانية x عدد التعليمات المنفذة في الدورة
    1 * 1 = 1.

    التعليمات المنفذة في المعالج الثاني =
    عدد الدورات في الثانية x عدد التعليمات المنفذة في الدورة
    4 * 0.25 = 1.

    ( الفصل الثالث )

    PipleLine الخطوط المتوازية ،،،

    في الحقيقة البايبلاين لا يعمل في الشكل السابق كما شاهدناه ، ولكن نستطيع أن نعبر عنه بأربعة خطوط متوازية كل خط منه ينفذ نوعا معينا من العمليات كالتالي:
    خط عمليات A
    خط عمليات B
    خط عمليات C
    خط عمليات D

    فينقسم العمل كالتالي:
    الدورة الأولى:
    خط A ينفذ عملية A للأمر الأول.

    الدورة الثانية :
    خط A ينفذ عملية A للأمر الثاني.
    خط B ينفذ عملية B للأمر الأول.

    الدورة الأولى:
    خط A ينفذ عملية A للأمر الثالث.
    خط B ينفذ عملية B للأمر الثاني.
    خط C ينفذ عملية C للأمر الأول.

    الدورة الرابعة :
    خط A ينفذ عملية A للأمر الرابع.
    خط B ينفذ عملية B للأمر االثالث.
    خط C ينفذ عملية C للأمر الثاني.
    خط D ينفذ عملية D للأمر الأول.
    وإنهاء تعليمة واحدة.

    الدورة الخامسة:
    خط A ينفذ عملية A للأمر الخامس.
    خط B ينفذ عملية B للأمر الرابع.
    خط C ينفذ عملية C للأمر الثالث.
    خط D ينفذ عملية D للأمر الثاني.
    وإنهاء تعليمة ثانية.


    كالجدول التالي:


    إذن نستطيع أن نعتبر أن المراحل الأولية هي فقط التي تضيع فيها مزيد من الدورات ، فأول تعليمة تحتاج 4 دورات ، أما الثانية فواحدة والثالثة واحدة والرابعة واحدة.. وهكذا...

    في معالج مثل P4 يصل البايبلاين إلى 20 ، فتكون التعليمة الأولى تحتاج إلى 20 دورة والثانية تحتاج دورة إضافية واحدة وهكذا..

    (الفصل الرابع)

    في المعالج ما يسمى Dependency وهو اعتماد التعليمة على ما سبقها كالتالي:
    لنفترض برنامج يطلب من المستخدم قيم x و z ، بحيث يقوم المعالج بتنفيذ التالي ، إذا كانت X أكبر من Z يعطي ناتج X ناقص Z أما إذا كان Z أكبر من X سيقوم بإعطاء ناتج Z ناقص X.

    فق هذا البرنامج سينفذ التالي (كتبسيط):
    العملية الأولى (قراءة X)
    العملية الثانية (قراءة Z)
    العملية الثالثة الموازنة بين Z و X أيهما أكبر.
    العملية الرابعة طرح الأصغر من الأكبر.

    ولكن مع Pipeline يقوم المعالج بما يلي:
    خلال العمليات السابقة للموازنة يقوم بافتراض الناتج لكلا الحالتين وبمجرد معرفة القرائتين يعطي النتيجة ويختزل عملية الموازنة لأنه وضع الافتراض.



    ختاما

    طبعا هذا كتبسيط نظري وليست أمور عملية فأرجو المعذرة.. طبعا لا يوجد معالج حاليا إلا ويدعم هذه التقنية..







    __________________
    [COLOR=red][FONT=times new roman]مجلة عرب هاردوير
    منتدى عرب هاردوير
    HardWare غير متواجد حالياً

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    300

    السلام عليكم



    جزاك الله كل خير على هذا الشرح الوافي والقيم أخوي

    هل الخطوات الأربع إللي ذكرتها A, B, C, D هم الخطوات الرئيسية لأي معالج وهل هنالك خطوات أكثر ...

    سؤال آخر ولا أعرف إذا السؤال صحيح, كيف تتعامل تقنية Pipleine مع الكاش سواء في الذاكرة أو على القرص, أتوقع أنها ستختلف عن الخطوات السابقة.







    سوالف غير متواجد حالياً





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
0