الوضع الراهن للمعالجات
الجزء الثالث
نتابع في هذا الجزء تسليط الضوء على بقية عائلة معالجات إنتل، بدءاً من المعالج 80486 وصولاً إلى سلسلة بينتيوم، ثم ننتقل إلى معالجات
AMD K6، ومعالجات Cyrix M II، ومعالجات PowerPC G3.
نظرنا في الجزأين السابقين من هذا المقال، إلى المعالجات الميكروية (
microprocessors): كيفية صنعها، وآلية عملها، والتقنيات التي اعتمدت عليها في تطوّرها. وبدأنا في الجزء الماضي، بإلقاء نظرة عامة على العائلات الرئيسية للمعالجات، وابتدأنا، بعائلة معالجات إنتل. ووصلنا في آخر الجزء السابق إلى معالج 80386، مما يعني أننا في صدد المعالج الذي يليه، وهو معالج 80486. وسنتابع في هذا الجزء، استعراض باقي أعضاء عائلة إنتل، إلى أن نصل إلى معالج بينتيوم الثاني (Pentium II). وسنتطرق، أيضاً، إلى المعالجات المشابهة (clones) لمعالجات إنتل، ثم نستعرض باقتضاب عائلة معالجات موتورولا 680x0، وعائلة معالجات باور بي سي (PowerPC)، التي تبنى عليها أجهزة ماكنتوش.
عائلة إنتل 80486
على الرغم من أهمية معالجات 80386 في تطوير صناعة الكمبيوترات الشخصية، إلا أن منصة الكمبيوترات الشخصية التي نشهدها اليوم، بزغت فعلياً مع ظهور معالجات 80486 عام 1989. فقد كان نظام ويندوز 3.
x يعمل بشكل جيد، نسبياً، على نظم 80386DX، وبشكل بطيء، لكن مقبول، على نظم 80386SX، إلا أن معالج 486 جلب إلى الساحة عدداً من التقنيات الجديدة، التي حسّنت الأداء.
كان 80486 أول معالج من عائلة إنتل يحتوي على ذاكرة كاش رئيسية L1 (سعة 8 كيلوبايت)، مما خفّض عدد مرات التعامل مع ذاكرة رام. ونظراً لأن ذاكرة كاش الرئيسية كانت مبنية مباشرة داخل المعالج ذاته، فقد كانت عملية الوصول إلى البيانات الموجودة فيها، أسرع بكثير من الوصول إلى ذاكرة رام، في السابق. وكان معالج 486 أول من قدّم النمط الانفجاري (burst mode) في نقل البيانات، مما سمح بزيادة سرعة نقلها بين الذاكرة رام والمعالج. وكان أيضاً، أول معالج من عائلة x86 يحتوي فعلياً على خط معالجة (pipeline)، مما أعطى معدّل إنجاز أكبر. واحتوى هذا المعالج على حوالي 1.25 مليون ترانزستور، أي خمسة أضعاف عدد الترانزستورات في معالج 80386، خصّصت لوحدات وظيفية أكثر تطوراً، ولوحدة الفاصلة العائمة (FPU) داخل المعالج، ولذاكرة كاش L1 الرئيسية. وتقوم وحدة الفاصلة العائمة (FPU) بتنفيذ العمليات الرياضية على الأعداد الحقيقية (التي تتضمّن فواصل عشرية)، مما أدّى إلى تحسين أداء أنواع معينة من التطبيقات (وبشكل خاص البرامج العلمية والرسومية).
توافرت معالجات 486 بسرعات 25 و 33 و 50 ميجاهرتز. ولم تكن الرقاقات بحاجة إلى مبدّدات حرارية (heat sinks)، على الرغم من أن بعض الأجهزة كانت تُشحن مع هذه المبدّدات. وكان بإمكان رقاقة 486 أن تتعامل مع 4 جيجابايت من الذاكرة رام، وأن تعمل، مثل رقاقة 386، بالنمط الحقيقي، والنمط المحمي، ونمط 8086 الافتراضي.
كما هو حال معالج 80386، فقد جاء معالج 486 في إصدارة DX وإصدارة SX. وكانت إصدارة SX، الأرخص ثمناً، متوافرة بسرعات 16 و 20 و 25 و 33 ميجاهرتز. وبشكل عام، كانت إصدارة SX مطابقة لإصدارة 486DX، باستثناء أنها كانت تعمل على سرعات أخفض، وباستثناء ميزة أخرى مهمة، هي افتقارها إلى المعالج الرياضي المساعد (math coprocessor). لكن، حتى هذا الأمر لم يكن صحيحاً في الواقع، فمعالج 486SX في الواقع عبارة عن معالج 486DX بدون تفعيل للمعالج الرياضي المساعد. ولم تكن الفروقات بين DX وSX في معالجات عائلة 486 سوى خدعة تسويقية، فقد كان من الممكن ترقية معالج 486SX ليتضمّن وظائف المعالج الرياضي المساعد، عن طريق تركيب رقاقة على اللوحة-الأم، سميّت 80487SX، ولم تكن هذه الرقاقة في الواقع سوى معالج 80486DX. وكانت رقاقة 80487SX توقف، عند تركيبها، عمل معالج 486SX بشكل كامل. ويعتبر هذا الأمر غريباً، إلا أنه الواقع.
لم تكن رقاقة 487SX مثل رقاقة 486DX تماماً، إذ كان ترتيب الإبر مختلفاً، بحيث لا يمكن تركيب رقاقة 486DX في شق رقاقة 487SX، في اللوحات-الأم المخصصة لمعالجات 486SX، والأرخص ثمناً. وقد مكّن ترتيب الإبر هذا، شركة إنتل، من تسويق معالج أسرع للوحات 486SX، وهو رقاقة OverDrive. كانت رقاقة OverDrive، التي ظهرت عام 1992، تركّب في شق رقاقة 487SX. وجاءت هذه الرقاقة للعمل فوق معالج 486SX ذو السرعة 25 ميجاهرتز أولاً، ثم ظهرت بإصدارة جديدة لمعالج 486SX ذو السرعة 33 ميجاهرتز. وكانت الفكرة من ورائها، مضاعفة سرعة رقاقة SX الأصلية، ولذلك اشتهرت باسم رقاقة مضاعفة سرعة الساعة (clock-doubling chip). وتمكّنت هذه الرقاقة، في إصدارة 25 ميجاهرتز، من الحفاظ على سرعة 25 ميجاهرتز أثناء نقل البيانات من مصادر خارجية بالنسبة للمعالج، لكن عمليات المعالجة الداخلية كانت تتم بضعف السرعة، أي 50 ميجاهرتز. وكانت السرعة الداخلية، في إصدارة 33 ميجاهرتز، هي 66 ميجاهرتز.
لاقت فكرة مضاعفة سرعة الساعة رواجاً كبيراً، لدرجة أن شركة إنتل قررت في خريف عام 1992، أن تطرح إصدارات بسرعة مضاعفة لمعالج DX ذاته، وأسمتها 80486DX2-50، و80486DX2-66. ولم تكن هذه الرقاقات داعمة لرقاقات 486DX القياسية، كما كان حال رقاقة OverDrive عند إضافتها لرقاقة 486SX، بل استبدلتها كلياً.
وطرحت إنتل عام 1994، المعالج 80486DX4، الذي كان يعمل بثلاثة أضعاف سرعة ساعة DX. وبقيت عمليات المعالجة الخارجية تعمل بسرعة ناقل النظام، وهي 25 أو 33 ميجاهرتز، لكن المعالجة الداخلية وصلت إلى سرعة 75 ميجاهرتز (لمعالجات DX-25)، وسرعة 100 ميجاهرتز (لإصدارات DX-33). واستخدمت هذه المعالجات توتراً قدره 3.3 فولط، لكي لا ترتفع حرارتها (احتاج معالج DX2 الذي كان يعمل على توتر 5 فولط، إلى مبدّدات حرارية)، مما يعني أنها كانت بحاجة إلى لوحات-أم جديدة.
شركتا
AMD و Cyrix تدخلان الحلبة
قدمت كل من شركة
AMD (Advanced Micro Devices)، وشركة Cyrix، إصداراتها الخاصة من المعالج 486DX، وكان هذا أول معالج يتم تقليده على نطاق واسع، من شركات أخرى. وقامت إحداهما بنسخ معالج 486DX2-66، ووصلت الأخرى إلى سرعة 80 ميجاهرتز لعمليات المعالجة الداخلية. وكان معالج 486DX2-80 مبنياً على ناقل نظام بسرعة 40 ميجاهرتز، وخلافاً لمعالج إنتل 486DX2 (الذي كان يعمل على توتر 5 فولط، وينشر حرارة كبيرة)، فقد عمل هذا المعالج على توتر 3.3 فولط. وأصدرت كل من AMD وسايركس، إصدارات بثلاثة أضعاف سرعة الساعة، لمعالجاتها 486 ذات السرعة 40 ميجاهرتز، حيث وصلت إلى سرعة داخلية قدرها 120 ميجاهرتز. وقدّمت كل من الشركتين، مزايا لإدارة الطاقة، ابتداءً من معالجاتها ذات السرعة المضاعفة، لكن إنتل لم تقدّم هذه المزايا حتى معالج DX4.
وعلى الرغم من أن إنتل توقفت عن تحسين معالجات 486، عند المعالج
DX4-100، إلا أن شركتي AMD وسايركس استمرّتا في تحسين معالجاتهما المشابهة. وقدّمت AMD عام 1995 المعالج 5x86 بسرعة مضاعفة أربع مرات، وهو عبارة عن معالج 486DX بسرعة 33 ميجاهرتز، يعمل داخلياً بسرعة 133 ميجاهرتز. وسوّقت AMD معالجها الجديد، مقارنةً أداءه مع أداء معالج بينتيوم 75، الجديد في حينه، وأسمته 5x86-75. لكنه كان عبارة عن معالج 486DX من جميع الأوجه، بما في ذلك إضافة 16 كيلوبايت من ذاكرة كاش الرئيسية L1 المبنية ضمن المعالج، والتي قدّمتها إنتل في معالجها DX4. ولحقت سايركس بالركب فقدمت معالجها الخاص 5x86 وأسمته M1sc، لكنه كان مختلفاً بشكل كبير عن معالج AMD. قدّم المعالج M1sc، في الواقع، مزايا مماثلة لمزايا معالج بينتيوم، على الرغم من أنه صُمم للعمل على لوحات-أم 486. وتضمّن هذا المعالج، الذي يعمل بسرعتي 100 و 120 ميجاهرتز، ناقلاً داخلياً عيار 64 بت، وخط معالجة (pipeline) بست مراحل (مقارنة مع خمس مراحل في معالج DX4)، وتقنية توقع التفرّعات (branch-prediction) لزيادة سرعة تنفيذ التعليمات. ومن المهم أن نتذكر أن معالج M1sc، ظهر في الأسواق بعد أن أطلقت إنتل معالجات بينتيوم، ولذلك فإن هذه المزايا كانت مفيدة لترقية معالجات 486، أكثر من كونها مزايا ستستخدم لبناء نظم جديدة. وفيما يخص هذا المقال، فإن الرقاقة تمثل استمراراً لمعالجات بينتيوم.
النكهات المتعددة لمعالجات بينتيوم
لا تعني كلمة بينتيوم (Pentium) أي شيء، لكنها تحتوي على المقطع pent، الذي يعني العدد خمسة في اللاتينية. وكانت إنتل تنوي بداية، تسمية معالج بينتيوم، باسم 80586، لتحافظ على تناغم تسمية معالجاتها السابقة 80x86. لكن الشركة لم تعجبها فكرة أن AMD وسايركس، وأي شركة مقلّدة أخرى، يمكنها أن تستخدم اسم 80x86 أيضاً، ولهذا قررت أن تستخدم تسمية يمكن تسجيلها كعلامة تجارية، ومن هنا جاء الاسم "بينتيوم". وعلى الرغم من أن هذه الرقاقة الجديدة بقيت مبنية على تقنية سيسك (CISC)، إلا أنها استخدمت عدداً من تقنيات ريسك (RISC) ضمن تصميمها، وكانت أول معالج لشركة إنتل بتقنية التدرج الفائق (superscalar). وقد مكّنت هذه التقنيات الرقاقة من تنفيذ 300 مليون تعليمة في الثانية (MIPS)، فيما ينفّذ معالج DX2-66، أقل من 60 مليون تعليمة في الثانية. ولا يعتبر استخدام معدّلات MIPS أمراً دقيقاً علمياً، حيث أنه يشير فقط إلى قدرة المعالج (وليس إلى عمليات الدخل والخرج والعوامل الأخرى المكملة لعمليات المعالجة)، لكن هذه الأرقام تعطي فكرة عن مدى زيادة السرعة.
قدّم معالج بينتيوم تقنيات أخرى مهمة. أولها، كما ذكرنا، معمارية التدرج الفائق (superscalar)، فقد استخدم خطي معالجة، بدلاً من خط واحد في معالجات 80486، على الرغم من ضرورة تصميم البرامج بطريقة مختلفة، لتستفيد من إمكانية عمل خطي المعالجة مع بعضهما البعض. ثانيها أن معالج بينتيوم استخدم تقنية توقع التفرّعات، للحد من التأخيرات التي تحدث غالباً، عندما تغيّر تعليمة تفرع مجرى تنفيذ التعليمات. وثالثها أن معالج بينتيوم رفع معدّل نقل البيانات من وإلى الذاكرة، باستخدام ناقل بيانات عيار 64 بت، بدلاً من عيار 32 بت المستخدم في معالجات 80486. وساهم معالج بينتيوم في زيادة معدل النقل بشكل أكبر، عن طريق تطبيق نمط خط المعالجة الانفجاري (pipeline-burst mode)، أثناء القراءة من ذاكرة كاش، والكتابة إليها، وعن طريق استخدام ناقل ذاكرة بسرعة 66 ميجاهرتز (كانت في البداية 60)، فيما استخدم معالج 486 ناقل 33 ميجاهرتز. ورابعها أن معالج بينتيوم جاء مع مزايا مبيتة لإدارة الطاقة. وخامسها أن استخدام ذاكرتي كاش L1 منفصلتين، إحداهما للبيانات، والأخرى للتعليمات، سمح للبرامج باستخدامهما بشكل أمثل. كما أن استخدام خط معالجة مستقل لحسابات الفاصلة العائمة، ساهم في تحسين سرعة تنفيذها.
ومن المفارقات أن إمكانات حساب الفاصلة العائمة، المبيتة ضمن الرقاقة، أو بشكل أكثر تحديداً، مشكلات حساب الفاصلة العائمة، هي التي كانت سبباً في اهتمام الناس الواسع بهذه الرقاقة. فبعد فترة وجيزة من طرح معالج بينتيوم، ضجّت وسائل الإعلام حول وجود خطأ برمجي في تعليمة القسمة FDIV (floating-point divide). بشكل عام، إذا قسمنا العدد A على العدد B، واحتوى الناتج على نسبة معينة (ممثلة بعدد من الخانات إلى يمين الفاصلة العشرية)، ففي بعض الحالات النادرة، كان جداء الناتج بالعدد B، يختلف عن العدد الأصلي A بمقدار 256. وقدّمت إنتل بسرعة، بديلاً عن الرقاقة الخاطئة، وتمكّنت في الواقع، من تحويل الخطأ التصميمي إلى دعاية تسويقية كبيرة. وكانت هذه هي المرة الأولى التي تصل فيها المعالجات إلى مستوى الأحداث الأخبارية الضخمة. (انظر صفحة www.intel.com/procs/support/pentium/fdiv/index.htm، لتحديد فيما إذا كان معالج بينتيوم لديك يحتوي على خطأ FDIV).
ظهرت معالجات بينتيوم لأول مرة في مارس/آذار 1993، باسمين:
P/60 و P/66 (تمثل الأرقام كالعادة، سرعة الرقاقة مقاسة بالميجاهرتز). وكانت جميع معالجات بينتيوم التالية -حتى معالج P/200 الذي طرح منتصف عام 1996- مبنية على هذين المعالجين. واستخدمت معالجات P/75، وP/90، وP/100، عامل جداء لسرعة الساعة مساوياً لـ 1.5، واعتمدت معالجات P/120، وP/133، على مضاعفة سرعة الإصدارات الأصلية، بينما اعتمد معالج P/200 على ثلاثة أضعاف سرعة الساعة، واستخدمت معالجات P/150، وP/166 عامل جداء 2.5 لسرعة الساعة. واحتوت كافة إصدارات بينتيوم على أكثر من 3 ملايين ترانزستور، وتطلّبت جميعها مبدّدات حرارية، للتخلص من الحرارة الناتجة عن عمل المعالج.