ربما حان الوقت ليدرك الجميع هذه الحقيقة الحزينة: إن تردد المعالجات المركزية CPU Frequency قد مات، مات وتم دفنه وبدأت جثته في التحلل بالفعل .. و كلما تقبلنا هذه الحقيقة بشكل أسرع كلما تخطيناها لما هو أهم وأفضل .. إن كل يوم يأتي معه ما يكشف لنا كيف ان صناعة المعالجات المركزية قد وصلت لافاق مسدودة غير مسبوقة، يصعب التملص منها. في السابق كانت الوسيلة الأقوي للوصول لاداء اعلي هي الوصول لتردد اعلي Higher GHz، من 1GHz الي 2GHz الي 3GHz ..الخ، وعندما لم يعد هذا ممكنا، اضطر الجميع لزيادة عدد الأنوية، رغم ما يصاحبه هذا من صعوبة في استخراج الأداء، فكتابة وتصميم التطبيقات احتاجت للتغيير لتستفيد من تعدد الأنوية في تقديم أداء أعلي. مع الوقت استطعنا زيادة ترددات المعالجات بمقدار بسيط في كل جيل، الآن لم يعد غريبا أن نري معالجا بتردد 4.7GHz دون الحاجة لكسر سرعة. الأن صار من السهل علي أي مستخدم أن يكسر سرعة معالجه لـ 5.0GHz بسهولة. تردد المعالجات المركزية يتعرض للموت لكن الحقيقة أن زيادة التردد لم تعد مجدية كما كانت في الماضي، لقد وصلت استفادة المعالجات من التردد الي اقصاها ولم يعد هناك المزيد. لقد اصطدمنا حرفيا بحائط سد كبير. حائط من العسير علينا تخطيه. يمكنك كسر سرعة معالجك لسرعة الضوء حتي، لكن أداءك لن يتحسن حينها الا بقدر ضئيل للغاية! ذلك أن تركيب المعالج نفسه يمنع استفادته من التردد العالي. OverClock والتردد هو بالأساس وسيلة المعالجات المعاصرة لاتمام العمل المطلوب منها، فالمعالج يقسم العمل (أو يٌجزؤه) الي أجزاء صغيرة كل جزء يتم انجازه في تردد واحد. إن المعالجات الحديثة كلها تعتمد مبدأ التجزئة Pipeline، فاجزاء المعالج الصلبة كثيرة للغاية، وبالتالي فان التعليمات والأوامر تقسم الي أجزاء كثيرة أيضا، يتوزع كل جزء منها علي جزء مقابل في المعالج، وتسير عملية المعالجة جزءا بجزء، في خط تجزئة Pipeline طويل يصل بعضه بعضا، كالسير المتحرك في مصنع كبير، أو كخط تعبئة ضخم، والسير يتحرك باستمرار.. ما يخرج منه من أجزاء يدخل مكانها أجزاء أخري بشكل متواصل. دون فراغات أو فواصل. بهذا الشكل نضمن الاستفادة من كل جزء في المعالج في انجاز العمل. بل أنه كلما قسمت العمل لأجزاء كثيرة صغيرة، كلما تمكنت من زيادة التردد الي مستويات كثيرة، فكلما صغر الجزء يمكنك حشره وانجازه في تردد واحد، وهكذا يصير لكل تردد جزءا يتم انجازه فيه، نبضة بنبضة، وجزءا بجزء.. كذا يسير العمل كأروع ما يكون. تردد المعالجات المركزية يتعرض للموت لكن للتجزئة حدود، وهي حدود تأتي من قدرات مصمم المعالج، الذي يحاول بكل ما أوتي من جهد أن يقسم كل شئ الي أصغر أجزاء ممكنة، ثم يقسم كل جزء الي أجزاء أكثر وأكثر وأكثر. لكن الحقيقة أن هناك أجزاء لا تقبل التقسيم الي ما هو أصغر. تلك الأجزاء مثل الغصة التي تقف في حلق الانسان، تخنقه وتضايقه وقد تقتله. تلك الأجزاء الضخمة تبطأ عملية المعالجة، فهي تجعل الوصول للتردد العالي غير ممكنا، لأنها ببطئها تستهلك الكثير من الترددات، حتي لو كسرت تردد المعالج الي أفاق غير مسبوقة، ستظل تلك الأجزاء البطيئة تأكل الكثير من الترددات، وسيتضاعف مقدار ما تأكله من ترددات كلما ضاعفت التردد! والسبب في هذا أن بطء تلك الأجزاء ينبع من أنها ثابتة الزمن، أي لا يمكن تقليل زمن انجازها، وعملية رفع التردد هي بالأساس اختصار للزمن بين كل تردد، لكن هذا لا يؤثر علي الأجزاء البطيئة لأنها تستغرق نفس الزمن في كل مرة، بغض النظر عن قصر أو طول الوقت بين كل تردد. وبغض النظر عن التردد ذاته من الأساس! وكنتيجة لهذا فان وقت انجاز العمل يظل ثابتا مهما زدت في التردد، لأن الأجزاء التي لا تقبل التجزئة تظل ثابتة السرعة، بل إنها تعطل ما بعدها من أجزاء كذلك!، فهي تعرقل انتظام سير العمل، هي كالسيارة المعطلة في شارع ضيق، تحشر خلفها طابورا طويلا من السيارات الغاضبة التي لا تستطيع الحركة حتي يتم تصليح السيارة المعطلة. Pipeline

صورة تخيلية لمعالج يعمل بسرعة 4Hz أو 4 ترددات في الثانية، كل تردد يستغرق ربع ثانية والعملية رقم 3 تستغرق التردد بأكمله (ربع ثانية) لأنها كبيرة ولا تقبل التقسيم

 
تردد المعالجات المركزية يتعرض للموت

هذه المرة ضاعفنا سرعة المعالج لـ 8Hz أو 8 ترددات في الثانية، كل تردد يستغرق ثٌمن ثانية (1/8) وكل عملية تستغرق ثٌمن ثانية أيضا، لكن العملية رقم 3 تستغرق ترددين بكأملهما (ربع ثانية أيضا) لأنها كبيرة ولا تقبل التقسيم وثابتة الزمن، وتأخذ زمنها كاملا، وهو الأمر الذي يعني أنها تأخذ زمنا لها وزمنا اخر كان لغيرها، فتعطل ما بعدها من عمليات وتترك خلفها فراغات تؤخر مابعدها

إننا نري أثار كل هذا في كل يوم، نسمع عن كسر سرعة المعالج كذا من 3GHz الي 5GHz، وهي زيادة 70% في السرعة، لكن ماذا عن زيادة الأداء؟ فقط 30%! ونسمع عن المعالج كذا الذي ارتفعت سرعته من 4GHz الي 5GHz، وهي زيادة في السرعة بمقدار 25%، فقط لتجد أن الأداء يزيد فقط بمقدار~ 12%! بل ونسمع عن كسر جنوني للسرعة Overclock لـ 6GHz و 7GHz ليقابلها زيادة محدودة في الأداء لا تتناسب بالمرة مع الزيادة الرهيبة في التردد، والتي يصاحبها استهلاك شنيع للطاقة وخرج حراري هائل يجعل أجزاء المعالج تسيح وتتفكك حرفيا. لا يمكن التحايل علي هذه العقبة الا باعادة تصميم المعالج من الصفر، وتجزئة كل الأجزاء الضخمة الي ما هو أصغر، وهي عملية صعبة للغاية بعد مرور كل تلك العقود التي اعتمدنا فيها علي تصميمات متشابهة، كما سيصاحبها تكلفة أعلي في عدد دوائر المعالج، وفي استهلاكه للطاقة، وحتي في تلقينه microcode programming من الداخل. وبالقطع لا يمكننا زيادة التردد لأنها عملية غير مجدية، ويصاحبها استهلاك شنيع للطاقة دون فائدة. CPU Frequency وليت الأمر يقتصر علي هذا وحسب، ففي الاعوام الاخيرة .. فلقد أصبحنا نشاهد عالم الحوسبة وهو يتجه بخطي ثابتة نحو الحشو والاطناب بلا داع .. كل عام تخرج الي النور معالجات عملاقة بأنوية كثيرة many cores تحوي مليارات الدارات الكهربية Transistors، وباستخدام أصغر أساليب تصنيع Manufacturing Process ممكنة، وبسحب للطاقة يتناقص كل عام، أي بقدرة حسابية هائلة بحجم أصغر وكهرباء أقل .. لكنها قدرة وهمية للأسف، لا يمكن الحصول عليها. فالحقيقة أن تلك المعالجات تحوي فجوات قاتلة أشبه بالثقوب السوداء Black Holes أو المادة المظلمة Dark Matter في فضاء الكون. إنه السيليكون المظلم اللعين Dark Silicon. والمادة المظلمة Dark Silicon في المعالجات هي حصاد التقدم التقني، فمع ازدياد عدد الدارات Transistors الي الضعف كل فترة، وثبات استهلاك الطاقة أو انكماشها المستمر، فان الطاقة المتوفرة لكل دارة Transistor تتقلص الي النصف، مما يعني أنه من المستحيل عمليا تشغيل كل الدارات في المعالج معا في نفس الوقت، وأقصي ما يمكننا عمله هو تشغيل نصف المعالج وترك النصف الاخر مظلما بلا عمل. CPU Frequency
 

وزيادة عدد الدارات هو مشكلة أخري في حد ذاتها، فمساحة المعالج ثابتة لا تتغير .. لذا فان زيادة عدد الدارات بداخله يتطلب تصغير حجم كل دارة Transistor بحيث تشغل حيزا أقل من الفراغ، مما يسمح بحشر دارات اكثر في نفس المساحة. ويتحقق هذا باستخدام عملية تصنيع Manufacturing Process بأدوات متناهية الصغر ودقيقة للغاية. والنتيجة هي دارات ضئيلة الحجم لا تحتاج الا لجهد Voltage قليل لتشغيلها! لأن الجهد يقل كلما قل الحجم، ومن هنا يأتي التخفيض في استهلاك الطاقة.

لكن الطامة الكبري تأتي عندما تعلم أن حجم الدارات Transistors نفسه لا يمكن تقليصه بعد حد معين لأن تسريب الجهد Voltage يزداد كلما صغر حجم الدارة، فتجد أن الدائرة الصغيرة تٌسرب الطاقة منها الي ما حولها، وهذا التسريب يتبعه زيادة في استهلاك الطاقة، فالدارة المسرب منها تحتاج لجهد جديد، بينما الدارة المسرب اليها تضيع الجهد فيما لا يفيد .. وتظهر آثار هذا عندما تجد الاجزاء المظلمة او المعطلة من المعالج تستهلك طاقة ايضا حتي وهي بلا عمل، حيث تمتص الدارات المظلمة Dark Transistors الكهرباء من الأجزاء غير المظلمة حولها، مما يعني ارتفاع استهلاك الطاقة الكلي للمعالج بدون داع حتي مع تصغير الحجم! اذن الحجم الصغير للدارة هو مشكلة في حد ذاتها، والحل سهل، اليس كذلك؟ نتجنب التمادي في تصغيرها من الأساس اذن! للإسف لا يعتبر هذا حلا صحيحا، لأن المشكلة الاخري ان عدم تقليص حجم الدارة بما فيه الكفاية او بعد حد معين يؤثر علي استهلاك الطاقة! فثبات الحجم يعني ثبات استهلاك الطاقة، وعدم قدرتنها علي تقليلها.. ثبات حجم الدارة يستلزم معه ثبات جهد التشغيل Voltage فلا يمكن تقليله لأنه لن يصلح حينها لاختراق الدارة الكبيرة التي لم نصغرها بشكل كاف ومن ثم لن يقدر علي تشغيلها! .. مما يعني ان جهد التشغيل يظل مرتفعا حتي مع عملية التصنيع الجديدة و يعني أن استهلاك الطاقة لايقل بالدرجة المرغوبة كل عام. ويعني أن المعالج يسخن بسرعة، ولا يصل لترددات عالية بسهولة، فلا نستفيد من دقة التصنيع الجديدة بالشكل الأمثل .. مما يجبر المُصنع علي أن يقيد من قدرة المعالج علي سحب الطاقة بعد حد معين فيحرم أجزاءه كلها من القدرة علي العمل معا. وحينها تبرز مشكلة الدارات المظلمة Dark Silicon بمنتهي العنف، حيث لا يجد المعالج طاقة كافية لتشغيل كل أجزاؤه وداراته في وقت واحد بسرعات كافية!

اذن فالمصمم ملعون اذا قلص من حجم الدارة، وملعون اذا لم يقلصها Damned If you do, Damned If you don't .. ما يعني أن المصمم يعيش في جحيم متواصل يحاول فيه الموازنة بين المطرقة والسندان، مطرقة حجم الدارة الصغير الذي يسرب الكهرباء، ومطرقة حجم الدارة الكبير الذي يستهلك الكهرباء! وفي كل الحالات هي كهرباء ضائعة!

والخلاصة أن التصميمات الحالية للمعالجات تقبع بشدة تحت طغيان الأجزاء المظلمة Dark Silicon بداخلها، تلك الأجزاء التي تقصم سرعة المعالج في قسوة اذا ما بدأت في العمل، مما يعني أنه لا يمكنك تشغيل أجزاء المعالج كلها معا بسرعات عالية، فما أكثر المعالجات التي تنخفض سرعتها بمقدار الرُبع اذا ما عملت كل أنويتها معا في وقت واحد، بل وما أكثر المعالجات التي قد تنخفض سرعتها الي النصف فقط لمجرد تشغيل مسرعات الوسائط المتعددة يها (مثل AVX-512)! Silicon تردد المعالجات المركزية وكل هذه التراكمات ترسم صورة قاتمة لحال المعالجات المركزية في وقتنا هذا، وما يكتنفها من غموض حول أسباب بطء تطورها وقوتها، إن الأجزاء الضخمة والأجزاء المظلمة هي مثل السرطان الخبيث الذي يقاوم كل عقاقير العلاج التي تحقن في جسد المريض، وما لم يتم استئصال تلك الأجزاء باعادة تركيب المعالج من جديد، فان الطريق الي آفاق جديدة من مستقبل الحوسبة لن يتحقق في أي وقت قريب، والسؤال الآن هل يوافق مصنعي المعالجات علي الخضوع لعملية الاستئصال بكل مضاعفاتها وعواقبها؟ أم أن الحال سينتهي بنا الي مجرد محاولات يائسة لإحياء جثة مدفونة ومتحللة منذ زمن طويل؟ إنها محاولات مكتوب لها الفشل المحتوم بطبيعة الحال .. منذ متي سمعتم عن موتي يقومون من قبورهم؟ نأسف أيها الحالمون القدامي، ان عالم الحاسب يتطور تصنيعيا كل عام، لكن ليس كما تصورتم، ان ما تصورتموه من تقدم تقني وحوسبي متزايد يحتاج الي طاقة هائلة لكي يعمل بكامل قدرته، والطاقة تنتج حرارة كبيرة تحتاج تبريد ضخما ومكلفا مما يجعل الامر برمته غير عمليا وغير صالح للتطبيق، وهو ما يعني اننا نحصل علي القليل من التطور في مقابل الكثير من التكلفة. ويعني اننا في امس الحاجة الي فتح علمي جديد يعيد الامجاد القديمة الي نصابها الصحيح، قبل ان يبتلع الظلام ما تبقي لنا من تطور محدود.