الآن وقد أصبحنا نعرف كيف تعمل المعالجات على مستوى عالٍ ، فقد حان الوقت للتعمق في عملية تصميم مكوناتها الداخلية. هذه هي المقالة الثانية في سلسلة حول تطوير المعالج. أوصي بأن تدرس الجزء الأول أولاً ، حتى تفهم المفاهيم الموضحة أدناه.
الجزء 1: أساسيات هندسة الكمبيوتر (هندسة مجموعة التعليمات ، التخزين المؤقت ، خطوط الأنابيب ، التشعب)
الجزء 2: عملية تصميم وحدة المعالجة المركزية (الدوائر الكهربائية ، الترانزستورات ، عناصر المنطق ، التزامن)
الجزء 3: تخطيط والتصنيع المادي للرقاقة (VLSI وتصنيع السيليكون)
الجزء 4: الاتجاهات الحالية والاتجاهات المستقبلية الهامة في هندسة الكمبيوتر (بحر من المعجلات ، والتكامل ثلاثي الأبعاد ، FPGA ، بالقرب من حوسبة الذاكرة)
كما تعلمون ، تتكون المعالجات ومعظم الأجهزة الرقمية الأخرى من الترانزستورات. أسهل طريقة لإدراك الترانزستور كمفتاح متحكم به ثلاث جهات اتصال. عند تشغيل المصراع ، قد يتدفق التيار الكهربائي عبر الترانزستور. عند إيقاف تشغيل المصراع ، لا يمكن أن يتدفق التيار. يشبه المصراع مفتاح إضاءة في الغرفة ، إلا أنه أصغر كثيرًا وأسرع ويمكن التحكم فيه كهربائيًا.
هناك نوعان رئيسيان من الترانزستورات المستخدمة في المعالجات الحديثة: pMOS (PMOS) و nMOS (NMOS). يمر الترانزستور nMOS الحالي عندما تكون البوابة مشحونة أو ذات الجهد العالي ، ويمر الترانزستور pMOS الحالي عندما يتم تفريغ البوابة أو لديه الجهد المنخفض. من خلال الجمع بين هذه الأنواع من الترانزستورات بطريقة متكاملة ، يمكننا إنشاء عناصر منطق CMOS. في هذه المقالة ، لن نحلل بالتفصيل ميزات تشغيل الترانزستورات ، لكننا سنتطرق إلى ذلك في الجزء الثالث من السلسلة.
العنصر المنطقي هو جهاز بسيط يستقبل إشارات الدخل ويقوم بإجراء العملية ويخرج النتيجة. على سبيل المثال ، يقوم العنصر AND (AND) بتشغيل إشارة الخرج الخاصة به إذا وفقط إذا كانت جميع مدخلات البوابة قيد التشغيل. يعمل العاكس ، أو العنصر NOT (NOT) ، على تشغيل مخرجاته إذا تم تعطيل الإدخال. يمكنك دمج هذين المصراعين والحصول على عنصر NAND ، الذي يقوم بتشغيل الإخراج ، إذا وفقط إذا لم يتم تشغيل أي من المدخلات. هناك عناصر أخرى لها وظائفها المنطقية ، على سبيل المثال ، OR (OR) ، OR-NOT (NOR) ، حصري OR (XOR) وحصري OR مع انعكاس (XNOR).
يوضح التالي كيف يتم تجميع عنصرين بسيطين من الترانزستورات: العاكس و NAND. في العاكس ، يتم توصيل الترانزستور pMOS (أعلى) إلى السلطة ، ويتم توصيل الترانزستور nMOS (أسفل) إلى الأرض. على تعيين الترانزستورات pMOS هناك دائرة صغيرة متصلة البوابة. لقد قلنا أن أجهزة pMOS تمر حاليًا عند إيقاف تشغيل الإدخال ، وأن أجهزة nMOS تمر حاليًا عند تشغيل الإدخال ، لذلك فمن السهل ملاحظة أن إشارة الخرج (Out) ستكون دائمًا على عكس إشارة الدخل (In). بالنظر إلى عنصر NAND ، نرى أنه يتطلب أربعة ترانزستورات ، وأنه سيتم دائمًا تعطيل الإخراج في حالة إيقاف تشغيل أحد المدخلات على الأقل. إن توصيل الترانزستورات بهذه الطريقة لتكوين شبكات بسيطة هو نفس العملية التي يتم استخدامها لتصميم عناصر منطق أكثر تعقيدًا وغيرها من الدوائر داخل المعالجات.

اللبنات الأساسية في شكل عناصر منطقية بسيطة للغاية بحيث يصعب فهم كيفية تحولها إلى جهاز كمبيوتر يعمل. تتكون عملية التصميم من الجمع بين عدة عناصر لإنشاء جهاز صغير يمكنه أداء وظيفة بسيطة. يمكنك بعد ذلك الجمع بين العديد من هذه الأجهزة لإنشاء شيء يؤدي وظيفة أكثر تعقيدًا. إن عملية دمج المكونات الفردية لإنشاء هيكل عمل هي بالضبط العملية المستخدمة اليوم لإنشاء شرائح حديثة. الفرق الوحيد هو أن الشريحة الحديثة تتكون من
مليارات الترانزستورات.
كمثال صغير ، لنأخذ إعلانًا بسيطًا - إعلان كامل 1 بت. يستقبل ثلاث إشارات إدخال - A و B و Carry-In (إشارة دخل النقل) ، وينشئ إشارات خرج - Sum (sum) و Carry-Out (إشارة خرج النقل). تستخدم أبسط الدوائر خمسة عناصر منطقية ، ويمكن توصيلها معًا لإنشاء أفعى من أي حجم. في المخططات الحديثة ، تم تحسين هذه العملية من خلال تحسين جزء من المنطق وإشارات النقل ، لكن المبادئ الأساسية تظل كما هي.
يكون إخراج Sum إما A أو B ، ولكن ليس كليهما مطلقًا ، أو هناك إشارة حمل الإدخال ، ثم يتم تشغيل A و B أو كليهما قيد التشغيل. إخراج نقل أكثر تعقيدا قليلا. تكون نشطة عندما يكون كل من A و B في نفس الوقت ، أو يكون هناك جهاز Carry-in ويكون أحد A أو B قيد التشغيل. لتوصيل عدة إضافات 1-بت لإنشاء إعلان أوسع ، نحتاج فقط إلى توصيل "النقل" الخاص بالبت السابق إلى "التحميل" للبت الحالي. كلما أصبحت الدوائر أكثر تعقيدًا ، كان المنطق أكثر تشويشًا ، ولكن هذه هي أسهل طريقة لإضافة رقمين. تستخدم المعالجات الحديثة إضافات أكثر تطوراً ، لكن دوائرها معقدة للغاية بالنسبة لمثل هذه المراجعة. بالإضافة إلى الإضافات ، تحتوي المعالجات أيضًا على أجهزة لتقسيم جميع عمليات الفاصلة العائمة هذه وضربها وإصداراتها.
هذا المزيج من تسلسل العناصر لتنفيذ وظيفة على إشارات الإدخال يسمى
المنطق التوافقي . ومع ذلك ، ليس هذا هو النوع الوحيد من المنطق المستخدم في أجهزة الكمبيوتر. لن يكون ذا فائدة كبيرة إذا لم نتمكن من تخزين البيانات أو تتبع الحالة. لكي نتمكن من حفظ البيانات ، نحتاج إلى منطق متسلسل.
تم بناء المنطق المتسلسل عن طريق توصيل المحولات بدقة وعناصر المنطق الأخرى بحيث تقوم مخرجاتها بنقل إشارات التغذية الراجعة إلى مدخلات العناصر. يتم استخدام حلقات التعليقات هذه لتخزين جزء واحد من البيانات وتسمى
ذاكرة الوصول العشوائي الساكنة أو SRAM. تسمى هذه الذاكرة RAM ثابتة بدلاً من RAM الديناميكية (DRAM) لأن البيانات المخزنة مرتبطة دائمًا بالجهد الإيجابي أو الأرض.
الطريقة القياسية لتنفيذ بت واحد SRAM هي مع الدائرة 6 الترانزستور المبينة أدناه. الإشارة العليا التي تحمل علامة WL (
Word Line ) هي العنوان ، وعند تشغيله ، يتم نقل البيانات المخزنة في هذه الخلية ذات 1 بت إلى
خط Bit المحدد بعلامة BL. الناتج BLB يسمى
شريط الخط قليلا . هذه مجرد القيمة المقلوبة لخط Bit. يجب أن تتعرف على نوعي الترانزستورات وتفهم أن M3 مع M1 ، مثل M4 مع M2 ، تشكل عاكسًا.
يستخدم SRAM لإنشاء ذاكرة التخزين المؤقت فائقة السرعة وسجلات داخل المعالجات. هذه الذاكرة مستقرة للغاية ، ولكنها تتطلب من ستة إلى ثمانية الترانزستورات لتخزين كل بت من البيانات. لذلك ، بالمقارنة مع DRAM ، فإنه مكلف للغاية من حيث التكلفة والتعقيد والمساحة على الشريحة. ذاكرة الوصول العشوائي الديناميكية ، من ناحية أخرى ، تخزن البيانات في مكثف صغير ، بدلاً من استخدام البوابات المنطقية. يطلق عليه دينامية ، لأن الجهد على المكثف يمكن أن يتغير بشكل كبير ، لأنه غير متصل بالطاقة أو الأرض. لا يوجد سوى الترانزستور واحد يستخدم للوصول إلى البيانات المخزنة في مكثف.
نظرًا لأن DRAM لا يتطلب سوى ترانزستور واحد لكل بت وهو قابل للتطوير بدرجة كبيرة ، فيمكن تعبئته بكثافة وبتكلفة منخفضة. عيب DRAM هو أن الشحن على المكثف صغير جدًا بحيث يحتاج إلى تحديث مستمر. لهذا السبب ، بعد إيقاف تشغيل الطاقة عن الكمبيوتر ، يتم تفريغ جميع المكثفات وتفقد البيانات الموجودة في ذاكرة الوصول العشوائي.
لا تنشر شركات مثل Intel و AMD و Nvidia مخططات دائرية لمعالجاتها ، لذلك من المستحيل إظهار مثل هذه الدوائر الكهربائية الكاملة للمعالجات الحديثة. ومع ذلك ، يتيح لك هذا adder بسيط الحصول على فكرة أنه حتى الأجزاء الأكثر تعقيدًا من المعالج يمكن تقسيمها إلى عناصر منطقية وتخزينية ، ثم إلى الترانزستورات.
الآن بعد أن عرفنا كيف يتم تصنيع بعض مكونات المعالج ، نحتاج إلى معرفة كيفية تجميع كل شيء معًا والتزامن. جميع المكونات الرئيسية للمعالج متصلة
بإشارة ساعة . لديه بالتناوب الجهد العالي والمنخفض ، وتغييره مع فاصل زمني معين ، ودعا
التردد . يقوم المنطق الموجود داخل المعالج عادةً بتبديل القيم وإجراء العمليات الحسابية عندما تغير إشارة الساعة الجهد من الأقل إلى الأعلى. من خلال مزامنة جميع الأجزاء ، يمكننا أن نضمن أن تصل البيانات دائمًا في الوقت المناسب بحيث لا توجد أية مواطن الخلل في المعالج.
ربما تكون قد سمعت أنه يمكنك زيادة سرعة الساعة لزيادة أداء المعالج. هذه الزيادة في الأداء ترجع إلى حقيقة أن تبديل الترانزستورات والمنطق داخل المعالج يبدأ في الحدوث بشكل متكرر أكثر من المقصود. نظرًا لوجود عدد أكبر من الدورات في الثانية الواحدة ، يمكن القيام بالمزيد من العمل وسيحسن أداء المعالج. ومع ذلك ، هذا صحيح إلى حد ما. عادة ما تعمل المعالجات الحديثة بترددات من 3.0 جيجاهرتز إلى 4.5 جيجا هرتز ، وهذه القيمة لم تتغير كثيرًا على مدار السنوات العشر الماضية. مثلما أن السلسلة المعدنية ليست أقوى من أضعف حلقاتها ، لا يمكن للمعالج أن يعمل أسرع من الجزء الأضعف. بحلول نهاية كل دورة على مدار الساعة ، يجب أن يكمل كل عنصر معالج عمله. إذا لم تكتمل بعض الأجزاء بعد ، فستكون إشارة الساعة سريعة جدًا ولن يعمل المعالج. يصف المصممون هذا الجزء الأبطأ بالمسار
الحرج ، وهو الذي يحدد الحد الأقصى للتردد الذي يمكن أن يعمل به المعالج. فوق تردد معين ، ببساطة لا يوجد لدى الترانزستورات الوقت للتبديل بسرعة كافية والبدء في الفشل أو إنتاج قيم إخراج غير صحيحة.
من خلال زيادة جهد المعالج ، يمكننا تسريع تبديل الترانزستورات ، ولكن هذا يعمل أيضًا إلى حد معين. إذا تم استخدام الكثير من الجهد ، فإننا نخاطر بحرق المعالج. عندما نزيد تردد المعالج أو جهده ، فإنه يبدأ دائمًا في إشعاع مزيد من الحرارة ويستهلك المزيد من الطاقة. وذلك لأن طاقة المعالج تتناسب طرديا مع التردد وتتناسب مع مربع الجهد. لتحديد استهلاك المعالج للطاقة ، فإننا نعتبر كل ترانزستور كمكثف صغير يحتاج إلى شحن أو تفريغ عندما تتغير قيمته.
يعد مزود الطاقة جزءًا مهمًا من المعالج ، حيث لا يمكن استخدام ما يصل إلى نصف جهات الاتصال الفعلية على الشريحة إلا في بعض الحالات لتوليد الطاقة أو التأريض. يمكن أن تستهلك بعض الرقائق بأحمال كاملة أكثر من 150 أمبير ، ومع كل هذا التيار ، يجب التحكم بعناية فائقة. للمقارنة: يولد المعالج المركزي حرارة أكثر لكل وحدة مساحة عن المفاعل النووي.
تأخذ إشارة الساعة في المعالجات الحديثة حوالي 30-40٪ من إجمالي الطاقة ، لأنها معقدة للغاية ويجب أن تدير العديد من الأجهزة المختلفة. للحفاظ على الطاقة ، تقوم معظم المعالجات منخفضة الطاقة بتعطيل أجزاء من الشريحة عندما لا تكون قيد الاستخدام. يمكن القيام بذلك عن طريق إيقاف تشغيل الساعة (وتسمى هذه الطريقة "Clock Gating") أو إيقاف الطاقة (Power Gating).
تخلق إشارات الساعة صعوبة أخرى في تصميم المعالج: بما أن تردداتها تنمو باستمرار ، فإن قوانين الفيزياء تبدأ في التأثير على العمل. على الرغم من سرعة الإضاءة العالية للغاية ، فهي ليست كبيرة بما يكفي للمعالجات عالية الأداء. إذا قمت بتوصيل إشارة ساعة بأحد طرفي الشريحة ، فعندما تصل الإشارة إلى الطرف الآخر ، ستكون متزامنة بمقدار كبير. لمزامنة جميع أجزاء الرقاقة ، يتم توزيع إشارة الساعة باستخدام ما يسمى بـ H-Tree. هذا هيكل يضمن أن تكون جميع نقاط النهاية في نفس المسافة تمامًا عن المركز.

قد يبدو أن تصميم كل ترانزستور فردي وإشارة ساعة واتصال الطاقة في الرقاقة هو مهمة رتيبة وصعبة للغاية ، وهذا في الواقع كذلك. على الرغم من أن الآلاف من المهندسين يعملون في شركات مثل Intel و Qualcomm و AMD ، إلا أنهم لن يتمكنوا من تصميم كل جانب من جوانب الشريحة يدويًا. لتصميم الرقائق بهذا الحجم ، فإنها تستخدم العديد من الأدوات المتطورة التي تولد التصميمات والدوائر الكهربائية تلقائيًا. عادةً ما تحصل هذه الأدوات على وصف رفيع المستوى لما يجب أن يقوم به المكون ، وتحديد أفضل تكوين للأجهزة يلبي هذه المتطلبات. في الآونة الأخيرة ، نشأ اتجاه تطوير يسمى
High Level Synthesis ، والذي يسمح للمطورين بتحديد الوظيفة الضرورية في الكود ، وبعد ذلك تحدد أجهزة الكمبيوتر أفضل السبل لتحقيق ذلك في الجهاز.
بنفس الطريقة التي يمكنك بها وصف برامج الكمبيوتر من خلال التعليمات البرمجية ، يمكن للمصممين وصف الأجهزة التي تحتوي على تعليمات برمجية. تسمح لغات مثل Verilog و VHDL لمصممي المعدات بالتعبير عن وظائف أي دوائر يقومون بإنشائها. بعد إجراء عمليات المحاكاة والتحقق من مثل هذه المشروعات ، يمكن توليفها في الترانزستورات المحددة ، والتي ستتألف منها الدائرة الكهربائية. على الرغم من أن مرحلة التحقق قد لا تبدو مثيرة مثل تصميم ذاكرة تخزين مؤقت أو نواة جديدة ، إلا أنها أكثر أهمية منها. لكل مهندس تصميم تعاقدت معه شركة ، قد يكون هناك خمسة أو أكثر من مهندسي التحقق.
غالبًا ما يستغرق التحقق من مشروع جديد وقتًا وأموالًا أكثر من إنشاء الشريحة نفسها. تنفق الشركات الكثير من الوقت والمال على التحقق ، لأنه بعد إرسال الشريحة إلى الإنتاج ، لا يمكن إصلاحها. في حالة وجود خطأ في البرنامج ، يمكنك تحرير التصحيح ، لكن الجهاز يعمل بشكل مختلف. على سبيل المثال ، اكتشفت شركة إنتل وجود
خلل في وحدة تقسيم الفاصلة العائمة لبعض رقائق بنتيوم ، ونتيجة لذلك ، تسببت في خسائر تعادل ملياري دولار حاليًا.
من الصعب فهم أنه يمكن أن يكون هناك عدة مليارات من الترانزستورات في شريحة واحدة وفهم ما يفعلونه جميعًا. إذا قسمت الشريحة إلى مكوناتها الداخلية الفردية ، يصبح الأمر أسهل قليلاً. تتكون عناصر المنطق من الترانزستورات ، ويتم دمج عناصر المنطق في وحدات وظيفية تؤدي مهمة محددة ، وترتبط هذه الوحدات الوظيفية معًا لتشكيل بنية الكمبيوتر التي ناقشناها في الجزء الأول من السلسلة.
تتم معظم أعمال التصميم تلقائيًا ، ولكن ما سبق يتيح لنا إدراك مدى تعقيد وحدة المعالجة المركزية الجديدة التي اشتريناها للتو.
في الجزء الثاني من السلسلة ، تحدثت عن عملية تصميم وحدة المعالجة المركزية. ناقشنا الترانزستورات والبوابات المنطقية وإشارات الطاقة والساعة وتوليف التصميم والتحقق. في الجزء الثالث ، سنكتشف ما هو مطلوب للإنتاج المادي للرقاقة. جميع الشركات تحب أن تتفاخر بمدى حداثة عملية التصنيع لديها (Intel 10nm و Apple و AMD 7nm وما إلى ذلك) ، ولكن ماذا تعني هذه الأرقام حقًا؟ سنتحدث عن هذا في الجزء التالي.
القراءة الموصى بها