Microarchitecture
الیکٹرانکس، کمپیوٹر سائنس اور کمپیوٹر انجینئرنگ میں، مائیکرو آرکیٹیکچر، جسے کمپیوٹر آرگنائزیشن بھی کہا جاتا ہے اور بعض اوقات مختصر طور پر ایم یو آرچ یا یو آرچ کہا جاتا ہے، وہ طریقہ ہے جس سے کسی خاص پروسیسر میں دی گئی انسٹرکشن سیٹ آرکیٹیکچر (آئی ایس اے) کو نافذ کیا جاتا ہے۔ ایک دی گئی آئی ایس اے کو مختلف مائیکرو آرکیٹیکچرز کے ساتھ نافذ کیا جا سکتا ہے ؛ کسی دیئے گئے ڈیزائن کے مختلف اہداف کی وجہ سے یا ٹیکنالوجی میں تبدیلیوں کی وجہ سے نفاذ مختلف ہو سکتے ہیں۔ کمپیوٹر فن تعمیر مائیکرو آرکیٹیکچر اور انسٹرکشن سیٹ فن تعمیر کا مجموعہ ہے۔ انسٹرکشن سیٹ فن تعمیر سے تعلق آئی ایس اے تقریبا ایک پروسیسر کے پروگرامنگ ماڈل جیسا کہ اسمبلی زبان کے پروگرامر یا مرتب کرنے والے مصنف کے ذریعہ دیکھا جاتا ہے۔ آئی ایس اے میں دیگر چیزوں کے علاوہ ہدایات، عمل درآمد ماڈل، پروسیسر رجسٹر، پتہ اور ڈیٹا فارمیٹس شامل ہیں۔ مائیکرو آرکیٹیکچر میں پروسیسر کے اجزاء کے حصے شامل ہیں اور یہ کہ یہ آئی ایس اے کو نافذ کرنے کے لیے کس طرح آپس میں جڑتے اور آپس میں کام کرتے ہیں۔ مشین کے مائیکرو آرکیٹیکچر کو عام طور پر (کم و بیش تفصیلی) خاکے کے طور پر پیش کیا جاتا ہے جو مشین کے مختلف مائیکرو آرکیٹیکچرل عناصر کے باہمی رابطوں کو بیان کرتے ہیں، جو کہ واحد دروازوں اور رجسٹروں سے لے کر ریاضی منطق یونٹس (اے ایل یو) اور اس سے بھی بڑے عناصر کو مکمل کرنے تک کچھ بھی ہو سکتے ہیں۔ یہ خاکے عام طور پر ڈیٹا پتھ (جہاں ڈیٹا رکھا جاتا ہے) اور کنٹرول پاتھ (جسے ڈیٹا کو چلانے کے لیے کہا جا سکتا ہے) کو الگ کرتے ہیں۔ کسی نظام کو ڈیزائن کرنے والا شخص عام طور پر مخصوص مائیکرو آرکیٹیکچر کو ایک قسم کے ڈیٹا فلو ڈائیگرام کے طور پر کھینچتا ہے۔ بلاک ڈائیگرام کی طرح، مائیکرو آرکیٹیکچر ڈائیگرام مائیکرو آرکیٹیکچرل عناصر جیسے ریاضی اور منطق یونٹ اور رجسٹر فائل کو واحد اسکیمیٹک علامت کے طور پر دکھاتا ہے۔ عام طور پر، خاکہ ان عناصر کو تیروں، موٹی لکیروں اور پتلی لکیروں سے جوڑتا ہے تاکہ تین ریاستی بسوں (جس میں بس کو چلانے والے ہر آلے کے لیے تین ریاستی بفر کی ضرورت ہوتی ہے)، یک طرفہ بسوں (ہمیشہ ایک ہی ماخذ کے ذریعے چلائی جاتی ہے، جیسے کہ آسان کمپیوٹر پر ایڈریس بس کو ہمیشہ میموری ایڈریس رجسٹر کے ذریعے چلایا جاتا ہے)، اور انفرادی کنٹرول لائنوں کے درمیان فرق کیا جا سکے۔ بہت سادہ کمپیوٹرز میں ایک واحد ڈیٹا بس تنظیم ہوتی ہے ان کے پاس ایک واحد تین ریاستی بس ہوتی ہے۔ زیادہ پیچیدہ کمپیوٹرز کا خاکہ عام طور پر متعدد تین ریاستی بسیں دکھاتا ہے، جو مشین کو بیک وقت زیادہ آپریشن کرنے میں مدد کرتی ہیں۔ ہر مائیکرو آرکیٹیکچرل عنصر کی نمائندگی ایک اسکیمیٹک کے ذریعے کی جاتی ہے جو اسے نافذ کرنے کے لیے استعمال ہونے والے منطق گیٹس کے باہمی رابطوں کو بیان کرتا ہے۔ ہر منطق گیٹ کی نمائندگی ایک سرکٹ خاکہ کے ذریعے کی جاتی ہے جو کسی خاص منطق خاندان میں اسے نافذ کرنے کے لیے استعمال ہونے والے ٹرانجسٹروں کے رابطوں کو بیان کرتا ہے۔ مختلف مائیکرو آرکیٹیکچرز والی مشینوں میں ایک ہی انسٹرکشن سیٹ فن تعمیر ہو سکتا ہے، اور اس طرح وہ ایک ہی پروگرام کو انجام دینے کے قابل ہو سکتی ہیں۔ سیمی کنڈکٹر مینوفیکچرنگ میں پیشرفت کے ساتھ ساتھ نئے مائیکرو آرکیٹیکچرز اور/یا سرکٹری حل، وہی ہیں جو پروسیسرز کی نئی نسلوں کو ایک ہی آئی ایس اے کا استعمال کرتے ہوئے اعلی کارکردگی حاصل کرنے کی اجازت دیتے ہیں۔ اصولی طور پر، ایک واحد مائیکرو آرکیٹیکچر مائیکرو کوڈ میں صرف معمولی تبدیلیوں کے ساتھ کئی مختلف آئی ایس اے کو انجام دے سکتا ہے۔ پہلو پائپ لائنڈ ڈیٹا پیتھ آج مائیکرو آرکیٹیکچر میں سب سے زیادہ استعمال ہونے والا ڈیٹا پیتھ ڈیزائن ہے۔ یہ تکنیک زیادہ تر جدید مائکرو پروسیسرز، مائکرو کنکولر اور ڈی ایس پیز میں استعمال ہوتی ہے۔ پائپ لائنڈ فن تعمیر متعدد ہدایات کو عمل میں اوورلیپ کرنے کی اجازت دیتا ہے، بالکل اسمبلی لائن کی طرح۔ پائپ لائن میں کئی مختلف مراحل شامل ہیں جو مائیکرو آرکیٹیکچر ڈیزائن میں بنیادی ہیں۔ ان میں سے کچھ مراحل میں انسٹرکشن فیچ، انسٹرکشن ڈی کوڈ، ایکزیکٹ اور رائٹ بیک شامل ہیں۔ کچھ آرکیٹیکچرز میں میموری تک رسائی جیسے دیگر مراحل شامل ہیں۔ پائپ لائنوں کا ڈیزائن مرکزی مائیکرو آرکیٹیکچرل کاموں میں سے ایک ہے۔ ایگزیکیوشن یونٹس مائیکرو آرکیٹیکچر کے لیے بھی ضروری ہیں۔ ایگزیکیوشن یونٹس میں ریاضی منطق یونٹس (اے ایل یو)، فلوٹنگ پوائنٹ یونٹس (ایف پی یو)، لوڈ/اسٹور یونٹس، برانچ پیشن گوئی، اور ایس آئی ایم ڈی شامل ہیں۔ یہ اکائیاں پروسیسر کے آپریشنز یا حسابات انجام دیتی ہیں۔ پھانسی کی اکائیوں کی تعداد، ان کی تاخیر اور تھرو پٹ کا انتخاب ایک مرکزی مائیکرو آرکیٹیکچرل ڈیزائن کا کام ہے۔ نظام کے اندر یادوں کا سائز، تاخیر، تھرو پٹ اور کنیکٹوٹی بھی مائیکرو آرکیٹیکچرل فیصلے ہیں۔ سسٹم کی سطح کے ڈیزائن کے فیصلے جیسے کہ پردیئرز کو شامل کرنا ہے یا نہیں، جیسے کہ میموری کنٹرولرز، کو مائیکرو آرکیٹیکچرل ڈیزائن کے عمل کا حصہ سمجھا جا سکتا ہے۔ اس میں کارکردگی کی سطح اور ان پردیئرز کے رابطے سے متعلق فیصلے شامل ہیں۔ آرکیٹیکچرل ڈیزائن کے برعکس، جہاں ایک مخصوص کارکردگی کی سطح حاصل کرنا بنیادی مقصد ہے، مائیکرو آرکیٹیکچرل ڈیزائن دیگر رکاوٹوں پر زیادہ توجہ دیتا ہے۔ چونکہ مائیکرو آرکیٹیکچر کے ڈیزائن کے فیصلے نظام میں جانے والی چیزوں کو براہ راست متاثر کرتے ہیں، اس لیے چپ ایریا/لاگت، بجلی کی کھپت، منطق کی پیچیدگی، رابطے میں آسانی، مینوفیکچوریبلٹی، ڈیبگنگ میں آسانی، اور جانچ کی اہلیت جیسے مسائل پر توجہ دی جانی چاہیے۔ مائیکرو آرکیٹیکچرل تصورات انسٹرکشن سائیکل پروگراموں کو چلانے کے لیے، تمام سنگل یا ملٹی چپ سی پی یو: ایک انسٹرکشن پڑھیں اور اسے ڈی کوڈ کریں۔ کوئی بھی متعلقہ ڈیٹا تلاش کریں جو انسٹرکشن پروسیس پر کارروائی کرنے کے لیے درکار ہو۔ انسٹرکشن کے نتائج لکھیں۔ انسٹرکشن سائیکل کو بجلی بند ہونے تک مسلسل دہرایا جاتا ہے۔ ملٹی سائیکل مائیکرو آرکیٹیکچر تاریخی طور پر، ابتدائی کمپیوٹر ملٹی سائیکل ڈیزائن تھے۔ سب سے چھوٹے، سب سے کم مہنگے کمپیوٹر اکثر اب بھی اس تکنیک کا استعمال کرتے ہیں۔ ملٹی سائیکل آرکیٹیکچرز اکثر منطق عناصر کی کم سے کم کل تعداد اور معقول مقدار میں طاقت کا استعمال کرتے ہیں۔ انہیں مقررہ وقت اور اعلی وشوسنییتا کے لیے ڈیزائن کیا جا سکتا ہے۔ خاص طور پر، مشروط شاخیں یا رکاوٹیں لیتے وقت ان کے پاس رکنے کے لیے کوئی پائپ لائن نہیں ہوتی ہے۔ تاہم، دیگر مائیکرو آرکیٹیکچرز اکثر ایک ہی منطق خاندان کا استعمال کرتے ہوئے فی یونٹ وقت میں زیادہ ہدایات انجام دیتے ہیں۔ "بہتر کارکردگی" پر بحث کرتے وقت، بہتری اکثر ملٹی سائیکل ڈیزائن سے متعلق ہوتی ہے۔ ملٹی سائیکل کمپیوٹر میں، کمپیوٹر گھڑی کے کئی چکروں پر ترتیب میں چار مراحل انجام دیتا ہے۔ کچھ ڈیزائن متبادل گھڑی کے کناروں پر مسلسل مراحل کو مکمل کرکے دو گھڑی کے چکروں میں ترتیب انجام دے سکتے ہیں، ممکنہ طور پر مرکزی سائیکل سے باہر ہونے والی طویل کارروائیوں کے ساتھ۔ مثال کے طور پر، پہلا مرحلہ پہلے چکر کے بڑھتے ہوئے کنارے پر، دوسرا مرحلہ پہلے چکر کے گرنے والے کنارے پر، وغیرہ۔ کنٹرول منطق میں، سائیکل کاؤنٹر، سائیکل اسٹیٹ (ہائی یا لو) اور انسٹرکشن ڈی کوڈ رجسٹر کے بٹس کا مجموعہ اس بات کا تعین کرتا ہے کہ کمپیوٹر کے ہر حصے کو کیا کرنا چاہیے۔ کنٹرول منطق کو ڈیزائن کرنے کے لیے، ہر ہدایت کے ہر چکر میں کمپیوٹر کے ہر حصے کے کنٹرول سگنلز کو بیان کرنے والے بٹس کی ایک میز بنائی جا سکتی ہے۔ پھر، اس منطق ٹیبل کو ٹیسٹ کوڈ چلانے والے سافٹ ویئر تخروپن میں آزمایا جا سکتا ہے۔ اگر منطق ٹیبل کو میموری میں رکھا جاتا ہے اور اسے حقیقی کمپیوٹر چلانے کے لیے استعمال کیا جاتا ہے، تو اسے مائکرو پروگرام کہا جاتا ہے۔ کچھ کمپیوٹر ڈیزائنوں میں، منطق کی میز کو منطق کے دروازوں سے بنی مشترکہ منطق کی شکل میں بہتر بنایا جاتا ہے، عام طور پر ایک کمپیوٹر پروگرام کا استعمال کرتے ہوئے جو منطق کو بہتر بناتا ہے۔ ابتدائی کمپیوٹرز نے کنٹرول کے لیے ایڈہاک منطق ڈیزائن کا استعمال کیا جب تک کہ مورس ولکس نے یہ ٹیبلولر نقطہ نظر ایجاد نہیں کیا اور اسے مائکرو پروگرامنگ کہا۔ عمل درآمد کی رفتار میں اضافہ آسان نظر آنے والے مراحل کے اس سلسلے کو پیچیدہ بنانا یہ حقیقت ہے کہ میموری کی درجہ بندی، جس میں کیشنگ، مین میموری اور غیر مستحکم اسٹوریج جیسے ہارڈ ڈسک (جہاں پروگرام کی ہدایات اور ڈیٹا رہتا ہے) شامل ہیں، ہمیشہ خود پروسیسر کے مقابلے میں سست رہی ہے۔ مرحلہ (2) اکثر ایک طویل (سی پی یو کے لحاظ سے) تاخیر متعارف کراتا ہے جب ڈیٹا کمپیوٹر بس پر پہنچتا ہے۔ ایسے ڈیزائنوں میں کافی مقدار میں تحقیق کی گئی ہے جو ان تاخیر سے ہر ممکن حد تک بچتے ہیں۔ سالوں کے دوران، ایک مرکزی مقصد متوازی طور پر مزید ہدایات پر عمل درآمد کرنا تھا، اس طرح کسی پروگرام کی موثر عمل درآمد کی رفتار میں اضافہ ہوتا ہے۔ ان کوششوں نے پیچیدہ منطق اور سرکٹ ڈھانچے کو متعارف کرایا۔ ابتدائی طور پر، ان تکنیکوں کے لیے درکار سرکٹری کی مقدار کی وجہ سے ان تکنیکوں کو صرف مہنگے مین فریموں یا سپر کمپیوٹرز پر لاگو کیا جا سکتا تھا۔ جیسے جیسے سیمی کنڈکٹر مینوفیکچرنگ میں ترقی ہوئی، ان میں سے زیادہ سے زیادہ تکنیکوں کو ایک سیمی کنڈکٹر چپ پر لاگو کیا جا سکتا ہے۔ مور کا قانون دیکھیں۔ انسٹرکشن سیٹ کے انتخاب انسٹرکشن سیٹ سالوں کے دوران منتقل ہوئے ہیں، اصل میں بہت آسان سے بعض اوقات بہت پیچیدہ (مختلف معاملات میں)۔ حالیہ برسوں میں، لوڈ اسٹور آرکیٹیکچرز، وی ایل آئی ڈبلیو اور ای پی آئی سی کی اقسام فیشن میں رہی ہیں۔ آرکیٹیکچرز جو ڈیٹا متوازی سے نمٹ رہے ہیں ان میں SIMD اور ویکٹرز شامل ہیں۔ سی پی یو آرکیٹیکچرز کی کلاسوں کو ظاہر کرنے کے لیے استعمال ہونے والے کچھ لیبل خاص طور پر وضاحتی نہیں ہیں، خاص طور پر سی آئی ایس سی لیبل ؛ بہت سے ابتدائی ڈیزائن جن کو ماضی سے ظاہر کیا جاتا ہے "سی آئی ایس سی" درحقیقت جدید آر آئی ایس سی پروسیسرز (کئی لحاظ سے) کے مقابلے میں نمایاں طور پر آسان ہیں۔ تاہم، انسٹرکشن سیٹ فن تعمیر کا انتخاب اعلی کارکردگی والے آلات کو نافذ کرنے کی پیچیدگی کو بہت زیادہ متاثر کر سکتا ہے۔ نمایاں حکمت عملی، جو پہلے آر آئی ایس سی پروسیسرز کو تیار کرنے کے لیے استعمال کی جاتی تھی، اعلی انکوڈنگ باقاعدگی اور سادگی کے ساتھ کم سے کم انفرادی الفاظ کی پیچیدگی کے لیے ہدایات کو آسان بنانا تھا۔ اس طرح کی یکساں ہدایات کو آسانی سے پائپ لائنڈ انداز میں لایا، ڈی کوڈ کیا اور اس پر عمل درآمد کیا گیا اور اعلی آپریٹنگ فریکوئنسی تک پہنچنے کے لیے منطق کی سطحوں کی تعداد کو کم کرنے کی ایک آسان حکمت عملی ؛ انسٹرکشن کیش میموریز کو اعلی آپریٹنگ فریکوئنسی اور فطری طور پر کم کوڈ ڈینسٹی کے لیے معاوضہ دیا گیا جبکہ بڑے رجسٹر سیٹ کو زیادہ سے زیادہ (سست) میموری رسائی کو فیکٹر کرنے کے لیے استعمال کیا گیا۔ انسٹرکشن پائپ لائننگ کارکردگی کو بہتر بنانے کی پہلی اور سب سے طاقتور تکنیکوں میں سے ایک انسٹرکشن پائپ لائننگ کا استعمال ہے۔ ابتدائی پروسیسر ڈیزائن اگلے پر جانے سے پہلے ایک ہدایت کے لیے اوپر کے تمام مراحل پر عمل کریں گے۔ سرکٹری کے بڑے حصے کسی بھی ایک قدم پر بیکار رہ گئے تھے ؛ مثال کے طور پر، انسٹرکشن ڈیکوڈنگ سرکٹری پر عمل درآمد وغیرہ کے دوران بیکار رہے گی۔ پائپ لائننگ ایک ہی وقت میں پروسیسر کے ذریعے متعدد ہدایات کو اپنے طریقے سے کام کرنے کی اجازت دے کر کارکردگی کو بہتر بناتی ہے۔ اسی بنیادی مثال میں، پروسیسر (مرحلہ 1) ایک نئی ہدایت کو ڈی کوڈ کرنا شروع کر دے گا جب کہ آخری ہدایت نتائج کا انتظار کر رہی تھی۔ یہ ایک وقت میں چار ہدایات کو "پرواز میں" رہنے کی اجازت دے گا، جس سے پروسیسر چار گنا تیز نظر آئے گا۔ اگرچہ کسی بھی ایک ہدایت کو مکمل ہونے میں اتنا ہی وقت لگتا ہے (ابھی بھی چار مراحل ہیں) سی پی یو مجموعی طور پر "ریٹائرڈ" ہدایات کو بہت تیزی سے انجام دیتا ہے۔ آر آئی ایس سی ہدایات کے عمل کے ہر مرحلے کو صاف ستھرا الگ کرکے اور انہیں ایک ہی وقت-ایک سائیکل میں لے کر پائپ لائنوں کو چھوٹا اور تعمیر کرنا بہت آسان بناتا ہے۔ پروسیسر مجموعی طور پر اسمبلی لائن کے انداز میں کام کرتا ہے، جس میں ہدایات ایک طرف آتی ہیں اور دوسرے کا نتیجہ نکلتا ہے۔ کلاسک آر آئی ایس سی پائپ لائن کی کم پیچیدگی کی وجہ سے، پائپ لائنڈ کور اور ایک انسٹرکشن کیش کو اسی سائز کے ڈائی پر رکھا جا سکتا ہے جو بصورت دیگر سی آئی ایس سی ڈیزائن پر اکیلے کور میں فٹ ہوتا ہے۔ یہ اصل وجہ تھی کہ آر آئی ایس سی تیز تھا۔ ایس پی اے آر سی اور ایم آئی پی ایس جیسے ابتدائی ڈیزائن اکثر ایک ہی گھڑی کی رفتار اور قیمت پر انٹیل اور موٹرولا سی آئی ایس سی حل سے 10 گنا زیادہ تیزی سے چلتے تھے۔ پائپ لائنز کسی بھی طرح سے آر آئی ایس سی ڈیزائن تک محدود نہیں ہیں۔ 1986 تک ٹاپ آف دی لائن وی اے ایکس کا نفاذ (وی اے ایکس 8800) ایک بہت زیادہ پائپ لائنڈ ڈیزائن تھا، جو پہلے تجارتی ایم آئی پی ایس اور ایس پی اے آر سی ڈیزائن سے قدرے پہلے کا تھا۔ زیادہ تر جدید سی پی یوز (یہاں تک کہ سرایت شدہ سی پی یوز) اب پائپ لائن ہیں، اور مائیکرو کوڈڈ سی پی یوز جن میں کوئی پائپ لائننگ نہیں ہے وہ صرف سب سے زیادہ علاقے سے محدود سرایت شدہ پروسیسرز میں دیکھے جاتے ہیں۔ وی اے ایکس 8800 سے لے کر جدید پینٹیم 4 اور ایتھلون تک بڑی سی آئی ایس سی مشینیں مائیکرو کوڈ اور پائپ لائنز دونوں کے ساتھ لاگو کی جاتی ہیں۔ پائپ لائننگ اور کیشنگ میں بہتری دو بڑی مائیکرو آرکیٹیکچرل پیش رفت ہیں جنہوں نے پروسیسر کی کارکردگی کو سرکٹ ٹیکنالوجی کے ساتھ رفتار برقرار رکھنے کے قابل بنایا ہے جس پر وہ مبنی ہیں۔ کیش اس سے زیادہ عرصہ نہیں ہوا تھا کہ چپ مینوفیکچرنگ میں بہتری نے ڈائی پر اور بھی زیادہ سرکٹری لگانے کی اجازت دی، اور ڈیزائنرز نے اسے استعمال کرنے کے طریقے تلاش کرنا شروع کر دیے۔ سب سے عام میں سے ایک یہ تھا کہ مرنے کے بعد کیش میموری کی بڑھتی ہوئی مقدار کو شامل کیا جائے۔ کیش بہت تیز اور مہنگی میموری ہے۔ مرکزی میموری سے "بات" کرنے کے لیے درکار بہت سے چکروں کے برعکس اس تک چند چکروں میں رسائی حاصل کی جا سکتی ہے۔ سی پی یو میں ایک کیش کنٹرولر شامل ہوتا ہے جو کیش سے پڑھنے اور لکھنے کو خودکار بناتا ہے۔ اگر ڈیٹا پہلے سے ہی کیش میں ہے تو اسے وہاں سے حاصل کیا جاتا ہے-کافی وقت کی بچت پر، جبکہ اگر ایسا نہیں ہے تو پروسیسر "اسٹالڈ" ہوتا ہے جبکہ کیش کنٹرولر اسے پڑھتا ہے۔ آر آئی ایس سی ڈیزائنوں نے 1980 کی دہائی کے وسط سے آخر تک کیش شامل کرنا شروع کیا، اکثر مجموعی طور پر صرف 4 کے بی۔ یہ تعداد وقت کے ساتھ بڑھتی گئی، اور عام سی پی یوز میں اب کم از کم 2 ایم بی ہوتے ہیں، جبکہ زیادہ طاقتور سی پی یوز 4 یا 6 یا 12 ایم بی یا یہاں تک کہ 32 ایم بی یا اس سے زیادہ کے ساتھ آتے ہیں، جن میں سب سے زیادہ نئے جاری کردہ ای پی وائی سی میلان-ایکس لائن میں 768 ایم بی ہوتا ہے، جو میموری کی درجہ بندی کی متعدد سطحوں میں منظم ہوتا ہے۔ عام طور پر، زیادہ کیش کا مطلب ہے زیادہ کارکردگی، کم رکنے کی وجہ سے۔ کیش اور پائپ لائنز ایک دوسرے کے لیے ایک بہترین میچ تھے۔ اس سے پہلے، ایک ایسی پائپ لائن بنانا زیادہ معنی نہیں رکھتا تھا جو آف چپ میموری کی رسائی تاخیر سے زیادہ تیزی سے چل سکے۔ اس کے بجائے آن چپ کیش میموری کا استعمال کرنے کا مطلب یہ تھا کہ ایک پائپ لائن کیش تک رسائی کی تاخیر کی رفتار سے چل سکتی ہے، جو کہ وقت کی بہت کم لمبائی ہے۔ اس نے پروسیسرز کی آپریٹنگ فریکوئنسیز کو آف چپ میموری کے مقابلے میں بہت تیز رفتار سے بڑھنے کی اجازت دی۔ شاخ کی پیشن گوئی ہدایات کی سطح کے متوازی کے ذریعے اعلی کارکردگی حاصل کرنے میں ایک رکاوٹ پائپ لائن کے اسٹالوں اور شاخوں کی وجہ سے فلش سے پیدا ہوتی ہے۔ عام طور پر، آیا کوئی مشروط برانچ لی جائے گی، یہ پائپ لائن میں دیر تک معلوم نہیں ہوتا ہے کیونکہ مشروط برانچوں کا انحصار رجسٹر سے آنے والے نتائج پر ہوتا ہے۔ اس وقت سے جب پروسیسر کے انسٹرکشن ڈیکوڈر نے یہ معلوم کیا ہے کہ اسے ایک مشروط برانچ انسٹرکشن کا سامنا کرنا پڑا ہے اس وقت تک کہ فیصلہ کن رجسٹر ویلیو کو پڑھا جا سکے، پائپ لائن کو کئی چکروں تک روکنے کی ضرورت ہے، یا اگر ایسا نہیں ہے اور برانچ لی گئی ہے، تو پائپ لائن کو فلش کرنے کی ضرورت ہے۔ جیسے جیسے گھڑی کی رفتار بڑھتی ہے پائپ لائن کی گہرائی اس کے ساتھ بڑھتی ہے، اور کچھ جدید پروسیسرز میں 20 مراحل یا اس سے زیادہ ہو سکتے ہیں۔ اوسطا، ہر پانچویں ہدایت پر عمل درآمد ایک شاخ ہے، لہذا بغیر کسی مداخلت کے، یہ رکنے کی ایک بڑی مقدار ہے۔ ان برانچ جرمانوں کو کم کرنے کے لیے برانچ پیشن گوئی اور قیاس آرائی پر عمل درآمد جیسی تکنیکیں استعمال کی جاتی ہیں۔ برانچ پیشن گوئی وہ جگہ ہے جہاں ہارڈ ویئر تعلیم یافتہ اندازے لگاتا ہے کہ آیا کسی خاص برانچ کو لیا جائے گا۔ حقیقت میں شاخ کی ایک طرف یا دوسری طرف دوسرے کے مقابلے میں بہت زیادہ کال کی جائے گی۔ جدید ڈیزائنوں میں پیچیدہ شماریاتی پیشن گوئی کے نظام ہوتے ہیں، جو ماضی کی شاخوں کے نتائج کو زیادہ درستگی کے ساتھ پیش گوئی کرنے کے لیے دیکھتے ہیں۔ اندازہ لگانا ہارڈ ویئر کو رجسٹر پڑھنے کا انتظار کیے بغیر ہدایات کو پہلے سے حاصل کرنے کی اجازت دیتا ہے۔ قیاس آرائی پر عمل درآمد ایک اور اضافہ ہے جس میں پیش گوئی شدہ راستے کے ساتھ کوڈ کو نہ صرف پہلے سے تیار کیا جاتا ہے بلکہ اس سے پہلے کہ یہ معلوم ہو کہ برانچ لی جانی چاہیے یا نہیں اس پر عمل درآمد بھی کیا جاتا ہے۔ جب اندازہ اچھا ہو تو اس سے بہتر کارکردگی حاصل ہو سکتی ہے، جب اندازہ برا ہو تو بھاری جرمانے کا خطرہ ہوتا ہے کیونکہ ہدایات کو کالعدم کرنے کی ضرورت ہوتی ہے۔ اوپر بیان کردہ تصورات کی حمایت کرنے کے لیے درکار تمام اضافی پیچیدگی اور دروازوں کے باوجود، سیمی کنڈکٹر مینوفیکچرنگ میں بہتری نے جلد ہی مزید منطق دروازوں کو استعمال کرنے کی اجازت دی۔ مندرجہ بالا خاکہ میں پروسیسر ایک وقت میں ایک ہی ہدایت کے حصوں پر کارروائی کرتا ہے۔ اگر بیک وقت متعدد ہدایات پر کارروائی کی جائے تو کمپیوٹر پروگراموں کو تیزی سے انجام دیا جا سکتا ہے۔ یہ وہی ہے جو سپر اسکالر پروسیسرز اے ایل یو جیسے فنکشنل یونٹس کی نقل کرکے حاصل کرتے ہیں۔ فنکشنل یونٹس کی نقل صرف اس وقت ممکن ہوئی جب سنگل ایشو پروسیسر کے ڈائی ایریا نے قابل اعتماد طریقے سے تیار کی جانے والی چیزوں کی حدود کو مزید نہیں بڑھایا۔ 1980 کی دہائی کے آخر تک، سپر اسکالر ڈیزائن بازار میں داخل ہونے لگے۔ جدید ڈیزائنوں میں دو لوڈ یونٹس، ایک اسٹور (بہت سی ہدایات کو ذخیرہ کرنے کے لیے کوئی نتیجہ نہیں ملتا)، دو یا زیادہ انٹیجر ریاضی یونٹس، دو یا زیادہ فلوٹنگ پوائنٹ یونٹس، اور اکثر کسی قسم کا SIMD یونٹ تلاش کرنا عام بات ہے۔ انسٹرکشن ایشو منطق میموری سے ہدایات کی ایک بہت بڑی فہرست کو پڑھ کر اور انہیں مختلف ایگزیکیوشن یونٹس کے حوالے کر کے پیچیدگی میں بڑھتا ہے جو اس وقت بیکار ہیں۔ اس کے بعد نتائج اکٹھے کیے جاتے ہیں اور آخر میں دوبارہ آرڈر کیے جاتے ہیں۔ آؤٹ آف آرڈر پر عمل درآمد کیشز کا اضافہ میموری کے درجہ بندی سے ڈیٹا حاصل کرنے کے انتظار کی وجہ سے اسٹالز کی تعدد یا مدت کو کم کرتا ہے، لیکن ان اسٹالز سے مکمل طور پر چھٹکارا نہیں پاتا ہے۔ ابتدائی ڈیزائنوں میں کیش مس کیش کنٹرولر کو پروسیسر کو روکنے اور انتظار کرنے پر مجبور کرتا ہے۔ یقینا پروگرام میں کچھ اور ہدایات ہو سکتی ہیں جن کا ڈیٹا اس وقت کیش میں دستیاب ہے۔ آؤٹ آف آرڈر پر عمل درآمد اس تیار ہدایت پر کارروائی کرنے کی اجازت دیتا ہے جب کہ پرانی ہدایت کیش پر انتظار کرتی ہے، پھر نتائج کو دوبارہ آرڈر کرتا ہے تاکہ یہ ظاہر ہو کہ سب کچھ پروگرام شدہ ترتیب میں ہوا ہے۔ یہ تکنیک دیگر آپریڈ انحصار اسٹالوں سے بچنے کے لیے بھی استعمال کی جاتی ہے، جیسے کہ طویل تاخیر فلوٹنگ پوائنٹ آپریشن یا دیگر ملٹی سائیکل آپریشنز کے نتیجے کا انتظار کرنے والی ہدایت۔ رجسٹر کا نام تبدیل کرنے سے مراد ایک ایسی تکنیک ہے جو پروگرام کی ہدایات کے غیر ضروری سلسلہ وار نفاذ سے بچنے کے لیے استعمال ہوتی ہے کیونکہ ان ہدایات کے ذریعے وہی رجسٹر دوبارہ استعمال ہوتے ہیں۔ فرض کریں کہ ہمارے پاس ہدایات کے دو گروپ ہیں جو ایک ہی رجسٹر کا استعمال کریں گے۔ ہدایات کا ایک سیٹ پہلے رجسٹر کو دوسرے سیٹ پر چھوڑنے کے لیے انجام دیا جاتا ہے، لیکن اگر دوسرا سیٹ مختلف اسی طرح کے رجسٹر کو تفویض کیا جاتا ہے، تو ہدایات کے دونوں سیٹوں کو متوازی (یا) سیریز میں انجام دیا جا سکتا ہے۔ ملٹی پروسیسنگ اور ملٹی تھریڈنگ کمپیوٹر آرکیٹیکٹس سی پی یو آپریٹنگ فریکوئنسیز اور ڈی آر اے ایم تک رسائی کے اوقات میں بڑھتی ہوئی عدم مطابقت کی وجہ سے رک گئے ہیں۔ ایک پروگرام کے اندر انسٹرکشن لیول متوازی (آئی ایل پی) کا استحصال کرنے والی تکنیکوں میں سے کوئی بھی ان طویل اسٹالوں کی تلافی نہیں کر سکی جو اس وقت پیش آئے جب مرکزی میموری سے ڈیٹا لینا پڑتا تھا۔ مزید برآں، زیادہ جدید آئی ایل پی تکنیکوں کے لیے درکار ٹرانجسٹر کی بڑی گنتی اور اعلی آپریٹنگ فریکوئنسیز کے لیے بجلی کی کھپت کی سطح کی ضرورت ہوتی تھی جسے اب سستے طریقے سے ٹھنڈا نہیں کیا جا سکتا تھا۔ ان وجوہات کی بناء پر، کمپیوٹرز کی نئی نسلوں نے متوازی کی اعلی سطحوں کا استحصال کرنا شروع کر دیا ہے جو کسی ایک پروگرام یا پروگرام تھریڈ سے باہر موجود ہیں۔ اس رجحان کو بعض اوقات تھرو پٹ کمپیوٹنگ کے نام سے جانا جاتا ہے۔ یہ خیال مین فریم مارکیٹ میں شروع ہوا جہاں آن لائن ٹرانزیکشن پروسیسنگ نے نہ صرف ایک ٹرانزیکشن کی عمل درآمد کی رفتار پر زور دیا بلکہ بڑی تعداد میں ٹرانزیکشنز سے نمٹنے کی صلاحیت پر بھی زور دیا۔ لین دین پر مبنی ایپلی کیشنز جیسے نیٹ ورک روٹنگ اور ویب سائٹ کے ساتھ گزشتہ دہائی میں بہت زیادہ اضافہ ہوا ہے، کمپیوٹر انڈسٹری نے صلاحیت اور تھرو پٹ کے مسائل پر دوبارہ زور دیا ہے۔ یہ متوازییت کس طرح حاصل کی جاتی ہے اس کی ایک تکنیک ملٹی پروسیسنگ سسٹمز، متعدد سی پی یو والے کمپیوٹر سسٹمز کے ذریعے ہے۔ ایک بار اعلی درجے کے مین فریموں اور سپر کمپیوٹرز کے لیے مخصوص ہونے کے بعد، چھوٹے پیمانے کے (2-8) ملٹی پروسیسر سرور چھوٹے کاروباری بازار کے لیے عام ہو گئے ہیں۔ بڑی کارپوریشنوں کے لیے، بڑے پیمانے کے (16-256) ملٹی پروسیسرز عام ہیں۔ یہاں تک کہ متعدد سی پی یو والے پرسنل کمپیوٹر بھی 1990 کی دہائی سے نمودار ہوئے ہیں۔ سیمی کنڈکٹر ٹیکنالوجی کی ترقی کے ساتھ دستیاب ٹرانجسٹر کے سائز میں مزید کمی کے ساتھ، ملٹی کور سی پی یو نمودار ہوئے ہیں جہاں ایک ہی سلکان چپ پر متعدد سی پی یو نافذ کیے جاتے ہیں۔ ابتدائی طور پر سرایت شدہ بازاروں کو نشانہ بنانے والی چپس میں استعمال کیا جاتا ہے، جہاں آسان اور چھوٹے سی پی یو سلکان کے ایک ٹکڑے پر متعدد فوری طور پر فٹ ہونے کی اجازت دیتے ہیں۔ 2005 تک، سیمی کنڈکٹر ٹیکنالوجی نے دوہری اعلی درجے کے ڈیسک ٹاپ سی پی یو سی ایم پی چپس کو حجم میں تیار کرنے کی اجازت دی۔ کچھ ڈیزائن، جیسے کہ سن مائیکرو سسٹمز کا الٹرا ایس پی اے آر سی ٹی 1 سلکان کے ایک ٹکڑے پر زیادہ پروسیسرز کو فٹ کرنے کے لیے آسان (اسکیلر، ان آرڈر) ڈیزائنوں کی طرف لوٹ گیا ہے۔ ایک اور تکنیک جو حال ہی میں زیادہ مقبول ہوئی ہے وہ ملٹی تھریڈنگ ہے۔ ملٹی تھریڈنگ میں، جب پروسیسر کو سست سسٹم میموری سے ڈیٹا حاصل کرنا ہوتا ہے، ڈیٹا کے پہنچنے کے لیے رکنے کے بجائے، پروسیسر کسی دوسرے پروگرام یا پروگرام تھریڈ پر چلا جاتا ہے جو انجام دینے کے لیے تیار ہوتا ہے۔ اگرچہ یہ کسی خاص پروگرام/تھریڈ کو تیز نہیں کرتا ہے، لیکن یہ سی پی یو کے بیکار رہنے کے وقت کو کم کرکے مجموعی طور پر سسٹم تھرو پٹ کو بڑھاتا ہے۔ تصوراتی طور پر، ملٹی تھریڈنگ آپریٹنگ سسٹم کی سطح پر سیاق و سباق کے تبادلے کے برابر ہے۔ فرق یہ ہے کہ ایک ملٹی تھریڈڈ سی پی یو سینکڑوں یا ہزاروں سی پی یو سائیکلوں کے بجائے ایک سی پی یو سائیکل میں تھریڈ سوئچ کر سکتا ہے جس کی عام طور پر سیاق و سباق میں تبدیلی کی ضرورت ہوتی ہے۔ یہ ہر فعال دھاگے کے لیے ریاستی ہارڈ ویئر (جیسے رجسٹر فائل اور پروگرام کاؤنٹر) کی نقل بنا کر حاصل کیا جاتا ہے۔ ایک اور اضافہ بیک وقت ملٹی تھریڈنگ ہے۔ یہ تکنیک سپر اسکالر سی پی یوز کو ایک ہی چکر میں بیک وقت مختلف پروگراموں/دھاگوں سے ہدایات پر عمل درآمد کرنے کی اجازت دیتی ہے۔ کنٹرول یونٹ ہارڈ ویئر فن تعمیر ہارڈ ویئر تفصیل زبان (ایچ ڈی ایل) انسٹرکشن لیول متوازی (آئی ایل پی) اے ایم ڈی سی پی یو مائیکرو آرکیٹیکچرز کی فہرست انٹیل سی پی یو مائیکرو آرکیٹیکچرز پروسیسر ڈیزائن اسٹریم پروسیسنگ وی ایچ ڈی ایل بہت بڑے پیمانے پر انضمام (وی ایل ایس آئی) ویرلاگ حوالہ جات مزید پڑھنا سنٹرل پروسیسنگ یونٹ انسٹرکشن پروسیسنگ مائکرو پروسیسرز