Modified Harvard architecture
ترمیم شدہ ہارورڈ فن تعمیر ہارورڈ کمپیوٹر فن تعمیر کا ایک تغیر ہے جو خالص ہارورڈ فن تعمیر کے برعکس، میموری کی اجازت دیتا ہے جس میں ہدایات پر مشتمل ڈیٹا تک رسائی حاصل کی جا سکتی ہے۔ زیادہ تر جدید کمپیوٹر جو ہارورڈ فن تعمیر کے طور پر دستاویزی ہیں، درحقیقت، ترمیم شدہ ہارورڈ فن تعمیر ہیں۔ ہارورڈ فن تعمیر اصل ہارورڈ فن تعمیر کمپیوٹر، ہارورڈ مارک I نے ہدایات اور ڈیٹا کو ذخیرہ کرنے کے لیے مکمل طور پر الگ میموری سسٹم کا استعمال کیا۔ سی پی یو نے اگلی ہدایت حاصل کی اور بیک وقت اور آزادانہ طور پر ڈیٹا کو لوڈ یا اسٹور کیا۔ یہ وان نیومن آرکیٹیکچر کمپیوٹر کے برعکس ہے، جس میں ہدایات اور ڈیٹا دونوں ایک ہی میموری سسٹم میں محفوظ ہوتے ہیں اور (سی پی یو کیش کی پیچیدگی کے بغیر) باری باری رسائی حاصل کی جانی چاہیے۔ انسٹرکشن اور ڈیٹا میموری کی جسمانی علیحدگی کو بعض اوقات جدید ہارورڈ آرکیٹیکچر کمپیوٹرز کی امتیازی خصوصیت سمجھا جاتا ہے۔ مائیکرو کنکولر کے ساتھ (پورے کمپیوٹر سسٹم کو سنگل چپس پر مربوط کیا گیا ہے)، ہدایات کے لیے مختلف میموری ٹیکنالوجیز کا استعمال (مثال کے طور پر۔ وان نیومن مشینوں میں فلیش میموری) اور ڈیٹا (عام طور پر پڑھنے/لکھنے کی میموری) مقبول ہو رہے ہیں۔ ہارورڈ مشین کا حقیقی فرق یہ ہے کہ انسٹرکشن اور ڈیٹا میموری مختلف ایڈریس خالی جگہوں پر قابض ہیں۔ دوسرے لفظوں میں، میموری ایڈریس اسٹوریج کے مقام کی منفرد شناخت نہیں کرتا ہے (جیسا کہ یہ وان نیومن مشین میں ہوتا ہے) ؛ میموری کی جگہ (ہدایات یا ڈیٹا) کو جاننا بھی ضروری ہے جس سے ایڈریس کا تعلق ہے۔ وان نیومن فن تعمیر والا کمپیوٹر ہارورڈ مشینوں کے مقابلے میں فائدہ مند ہے جیسا کہ اس کوڈ میں اوپر بیان کیا گیا ہے کہ اس تک رسائی حاصل کی جا سکتی ہے اور ڈیٹا کی طرح ہی علاج کیا جا سکتا ہے، اور اس کے برعکس۔ یہ، مثال کے طور پر، ڈیٹا کو ڈسک اسٹوریج سے میموری میں پڑھنے اور پھر کوڈ کے طور پر انجام دینے کی اجازت دیتا ہے، یا خود کو بہتر بنانے والے سافٹ ویئر سسٹم کو جسٹ ان ٹائم تالیف جیسی ٹیکنالوجیز کا استعمال کرتے ہوئے مشین کوڈ کو اپنی میموری میں لکھنے اور پھر بعد میں اس پر عمل درآمد کرنے کی اجازت دیتا ہے۔ ایک اور مثال خود ترمیم شدہ کوڈ ہے، جو کسی پروگرام کو خود میں ترمیم کرنے کی اجازت دیتا ہے۔ ان طریقوں کا ایک نقصان قابل عمل جگہ کے تحفظ کے مسائل ہیں، جو میلویئر اور سافٹ ویئر کے نقائص کے خطرات میں اضافہ کرتے ہیں۔ ترمیم شدہ ہارورڈ فن تعمیر اس کے مطابق، کچھ خالص ہارورڈ مشینیں خاص مصنوعات ہیں۔ زیادہ تر جدید کمپیوٹر اس کے بجائے ایک ترمیم شدہ ہارورڈ فن تعمیر کو نافذ کرتے ہیں۔ وہ ترامیم کوڈ اور ڈیٹا کے درمیان سخت علیحدگی کو ڈھیلا کرنے کے مختلف طریقے ہیں، جبکہ اب بھی ہارورڈ فن تعمیر کے اعلی کارکردگی کے بیک وقت ڈیٹا اور ہدایات تک رسائی کی حمایت کرتے ہیں۔ اسپلٹ کیش (یا تقریبا-وون-نیومن) فن تعمیر سب سے عام ترمیم درجہ بندی کے نچلے درجے پر ہدایات اور ڈیٹا کے لیے علیحدہ سی پی یو کیش کے ساتھ میموری درجہ بندی بناتی ہے۔ ہدایات اور ڈیٹا کے لیے ایک ہی ایڈریس کی جگہ ہے، جو وان نیومن ماڈل فراہم کرتی ہے، لیکن سی پی یو انسٹرکشن کیش سے ہدایات حاصل کرتا ہے اور ڈیٹا کیش سے ڈیٹا حاصل کرتا ہے۔ زیادہ تر پروگرامرز کو اس حقیقت سے آگاہ ہونے کی ضرورت نہیں ہے کہ پروسیسر کور (ترمیم شدہ) ہارورڈ فن تعمیر کو لاگو کرتا ہے، حالانکہ وہ اس کے رفتار کے فوائد سے فائدہ اٹھاتے ہیں۔ صرف وہ پروگرامر جو ہدایات کو میموری میں تیار اور اسٹور کرتے ہیں انہیں کیش کوہرنسی جیسے مسائل سے آگاہ ہونے کی ضرورت ہے، اگر اسٹور انسٹرکشن کیش میں ہدایات کی کیش شدہ کاپی میں ترمیم یا اسے کالعدم نہیں کرتا ہے۔ انسٹرکشن میموری جیسا ڈیٹا فن تعمیر ایک اور تبدیلی ہارورڈ مشین کی "علیحدہ ایڈریس اسپیس" کی نوعیت کو محفوظ رکھتی ہے، لیکن انسٹرکشن میموری کے مندرجات کو ڈیٹا کے طور پر حاصل کرنے کے لیے خصوصی مشین آپریشن فراہم کرتی ہے۔ چونکہ ڈیٹا ہدایات کے طور پر براہ راست قابل عمل نہیں ہے، اس طرح کی مشینوں کو ہمیشہ "ترمیم شدہ" ہارورڈ فن تعمیر کے طور پر نہیں دیکھا جاتا ہے: رسائی پڑھیں: پروگرام شروع ہونے پر ابتدائی ڈیٹا ویلیوز کو انسٹرکشن میموری سے ڈیٹا میموری میں کاپی کیا جا سکتا ہے۔ یا، اگر ڈیٹا میں ترمیم نہیں کی جانی ہے (یہ ایک مستقل قدر ہو سکتی ہے، جیسے پائی، یا ٹیکسٹ سٹرنگ)، تو اسے چل رہے پروگرام کے ذریعے ڈیٹا میموری میں جگہ لیے بغیر براہ راست انسٹرکشن میموری سے حاصل کیا جا سکتا ہے (جو اکثر پریمیم پر ہوتا ہے)۔ لکھنے تک رسائی: ری پروگرامنگ کی صلاحیت عام طور پر درکار ہوتی ہے۔ کچھ کمپیوٹر خالصتا روم پر مبنی ہوتے ہیں۔ مثال کے طور پر، ایک مائکرو کنکولر میں عام طور پر فلیش میموری کو لکھنے کے لیے آپریشن ہوتے ہیں جو اس کی ہدایات کو برقرار رکھنے کے لیے استعمال ہوتے ہیں۔ اس صلاحیت کو سافٹ ویئر اپ ڈیٹس سمیت مقاصد کے لیے استعمال کیا جا سکتا ہے۔ EEPROM/PROM متبادل ایک متبادل طریقہ ہے۔ کچھ ہارورڈ فن تعمیر پروسیسرز، جیسے میکسم انٹیگریٹڈ میکس کیو، کسی بھی میموری حصے سے حاصل کردہ ہدایات پر عمل درآمد کر سکتے ہیں-اصل ہارورڈ پروسیسر کے برعکس، جو صرف پروگرام میموری حصے سے حاصل کردہ ہدایات پر عمل درآمد کر سکتا ہے۔ اس طرح کے پروسیسرز، دوسرے ہارورڈ آرکیٹیکچر پروسیسرز کی طرح-اور خالص وان نیومن آرکیٹیکچر کے برعکس-ایک ہدایت کو پڑھ سکتے ہیں اور ڈیٹا ویلیو کو بیک وقت پڑھ سکتے ہیں، اگر وہ میموری کے الگ الگ حصوں میں ہیں، کیونکہ پروسیسر میں (کم از کم) آزاد ڈیٹا بسوں کے ساتھ دو الگ الگ میموری حصے ہوتے ہیں۔ اس قسم کے ترمیم شدہ ہارورڈ فن تعمیر اور خالص وان نیومن فن تعمیر کے درمیان سب سے واضح پروگرامر-مرئی فرق یہ ہے کہ-جب ایک میموری کے حصے سے کسی ہدایت پر عمل درآمد کیا جاتا ہے-تو اسی میموری کے حصے تک بیک وقت ڈیٹا کے طور پر رسائی حاصل نہیں کی جا سکتی۔ موازنہ ترمیم شدہ ہارورڈ مشینوں کو خالص ہارورڈ اور وان نیومن مشینوں سے ممتاز کرنے کے لیے تین خصوصیات استعمال کی جا سکتی ہیں: ہدایات اور ڈیٹا کی یادیں مختلف ایڈریس کی جگہوں پر قابض ہیں خالص ہارورڈ مشینوں کے لیے، انسٹرکشن کی جگہ میں ایک ایڈریس "صفر" ہوتا ہے جو انسٹرکشن اسٹوریج کے مقام سے مراد ہوتا ہے اور ڈیٹا کی جگہ میں ایک علیحدہ ایڈریس "صفر" ہوتا ہے جو ڈیٹا اسٹوریج کے ایک الگ مقام سے مراد ہوتا ہے۔ اس کے برعکس، وان نیومن اور اسپلٹ کیش میں ترمیم شدہ ہارورڈ مشینیں ہدایات اور ڈیٹا دونوں کو ایک ہی ایڈریس کی جگہ میں محفوظ کرتی ہیں، لہذا ایڈریس "صفر" سے مراد صرف ایک مقام ہے اور آیا اس مقام میں بائنری پیٹرن کی تشریح ایک ہدایت کے طور پر کی جاتی ہے یا ڈیٹا کی وضاحت اس بات سے کی جاتی ہے کہ پروگرام کیسے لکھا جاتا ہے۔ تاہم، خالص ہارورڈ مشینوں کی طرح، انسٹرکشن میموری کے طور پر ترمیم شدہ ہارورڈ مشینوں میں ایڈریس کی علیحدہ جگہیں ہوتی ہیں، اس لیے انسٹرکشن اور ڈیٹا کی جگہ کے لیے الگ پتے "صفر" ہوتے ہیں، اس لیے یہ اس قسم کی ترمیم شدہ ہارورڈ مشینوں کو خالص ہارورڈ مشینوں سے ممتاز نہیں کرتا ہے۔ ہدایات اور ڈیٹا میموری کے مرکزی پروسیسنگ یونٹ (سی پی یو) کے لیے الگ ہارڈ ویئر راستے ہوتے ہیں۔ یہ خالص یا ترمیم شدہ ہارورڈ مشینوں کا نقطہ ہے، اور وہ زیادہ لچکدار اور عام وان نیومن فن تعمیر کے ساتھ کیوں موجود ہیں: سی پی یو کے لیے علیحدہ میموری راستے ہدایات کو لانے اور ڈیٹا تک رسائی کی اجازت دیتے ہیں، جس سے تھرو پٹ بہتر ہوتا ہے۔ خالص ہارورڈ مشینوں میں علیحدہ ایڈریس خالی جگہوں کے ساتھ الگ راستے ہوتے ہیں۔ اسپلٹ کیش ترمیم شدہ ہارورڈ مشینوں میں سی پی یو کیشز یا دیگر مضبوطی سے جوڑی ہوئی یادوں کے لیے اس طرح کے علیحدہ رسائی کے راستے ہوتے ہیں، لیکن ایک متحد رسائی کا راستہ باقی میموری کی درجہ بندی کا احاطہ کرتا ہے۔ ایک وان نیومن پروسیسر کے پاس صرف وہی متحد رسائی کا راستہ ہوتا ہے۔ پروگرامر کے نقطہ نظر سے، ایک ترمیم شدہ ہارورڈ پروسیسر جس میں ہدایات اور ڈیٹا کی یادیں ایڈریس کی جگہ کا اشتراک کرتی ہیں، عام طور پر وان نیومن مشین کے طور پر سمجھا جاتا ہے جب تک کہ کیش کوہرنسی ایک مسئلہ نہ بن جائے، جیسا کہ خود ترمیم شدہ کوڈ اور پروگرام لوڈنگ کے ساتھ ہوتا ہے۔ یہ الجھن کا باعث بن سکتا ہے، لیکن اس طرح کے مسائل عام طور پر صرف سسٹم پروگرامرز اور انٹیگریٹرز کو نظر آتے ہیں۔ دیگر ترمیم شدہ ہارورڈ مشینیں اس سلسلے میں خالص ہارورڈ مشینوں کی طرح ہیں۔ ہدایات اور ڈیٹا کی یادوں تک مختلف طریقوں سے رسائی حاصل کی جا سکتی ہے اصل ہارورڈ مشین، مارک I، ایک پنچڈ پیپر ٹیپ پر ہدایات اور الیکٹرو مکینیکل کاؤنٹرز میں ڈیٹا کو محفوظ کرتی ہے۔ تاہم، یہ مکمل طور پر اس وقت دستیاب ٹیکنالوجی کی حدود کی وجہ سے تھا۔ آج ہارورڈ مشین جیسے پی آئی سی مائکرو کنکولر ہدایات کے لیے 12 بٹ وائڈ فلیش میموری اور ڈیٹا کے لیے 8 بٹ وائڈ ایس آر اے ایم استعمال کر سکتی ہے۔ اس کے برعکس، ایک وان نیومن مائکرو کنکولر جیسے کہ اے آر ایم 7 ٹی ڈی ایم آئی، یا ایک ترمیم شدہ ہارورڈ اے آر ایم 9 کور، لازمی طور پر فلیش میموری اور ایس آر اے ایم (ان صورتوں میں 8 بٹ بائٹس کے طور پر) تک یکساں رسائی فراہم کرتا ہے۔ ترمیم شدہ ہارورڈ فن تعمیر کے جدید استعمال ایپلی کیشنز کے باہر جہاں کیش لیس ڈی ایس پی یا مائیکرو کنکولر کی ضرورت ہوتی ہے، زیادہ تر جدید پروسیسرز میں سی پی یو کیش ہوتا ہے جو ہدایات اور ڈیٹا کو تقسیم کرتا ہے۔ ایسے پروسیسرز بھی ہیں جو انتہائی سخت تعریف کے مطابق ہارورڈ مشینیں ہیں (کہ پروگرام اور ڈیٹا میموری مختلف ایڈریس خالی جگہوں پر قابض ہیں)، اور صرف اس کمزور معنی میں ترمیم کی جاتی ہیں کہ پروگرام میموری کو ڈیٹا کے طور پر پڑھنے اور/یا لکھنے کے لیے آپریشن ہوتے ہیں۔ مثال کے طور پر، ایٹمل اے وی آر میں ایل پی ایم (لوڈ پروگرام میموری) اور ایس پی ایم (اسٹور پروگرام میموری) ہدایات اس طرح کی ترمیم کو نافذ کرتی ہیں۔ اسی طرح کے حل دوسرے مائکرو کنکولرز جیسے پی آئی سی اور زیڈ 8 اینکور!، ڈیجیٹل سگنل پروسیسرز کے بہت سے خاندانوں جیسے ٹی آئی سی 55 ایکس کور، اور بہت کچھ میں پائے جاتے ہیں۔ کیونکہ ہدایات پر عمل درآمد اب بھی پروگرام ایڈریس کی جگہ تک محدود ہے، یہ پروسیسرز وان نیومن مشینوں کے بالکل برعکس ہیں۔ بیرونی وائرنگ سختی سے ہارورڈ سی پی یو کور کو ترمیم شدہ ہارورڈ کور میں بھی تبدیل کر سکتی ہے، مثال کے طور پر صرف 'پی ایس ای این #' (پروگرام اسپیس ریڈ) اور 'آر ڈی #' (بیرونی ڈیٹا اسپیس ریڈ) سگنلز کو انٹیل 8051 فیملی مائیکرو کنکولر پر اے این ڈی گیٹ کے ذریعے بیرونی طور پر جوڑ کر، مائیکرو کنکولر کو "وان نیومن منسلک" کہا جاتا ہے، کیونکہ بیرونی ڈیٹا اور پروگرام ایڈریس اسپیس متحد ہو جاتے ہیں۔ الگ ایڈریس خالی جگہوں کا ہونا اعلی سطح کی زبانوں کے ساتھ پروگرامنگ میں کچھ مشکلات پیدا کرتا ہے جو اس خیال کی براہ راست حمایت نہیں کرتے ہیں کہ صرف پڑھنے والے ڈیٹا کی میزیں عام تحریری ڈیٹا سے مختلف ایڈریس کی جگہ میں ہو سکتی ہیں (اور اس طرح مختلف ہدایات کا استعمال کرتے ہوئے پڑھنے کی ضرورت ہے)۔ سی پروگرامنگ زبان یا تو غیر معیاری ایکسٹینشنز کے ذریعے یا سرایت شدہ پروسیسرز کی حمایت کے لیے اب معیاری ایکسٹینشنز کے ذریعے متعدد ایڈریس خالی جگہوں کی حمایت کر سکتی ہے۔ مزید دیکھیں ہارورڈ فن تعمیر وان نیومن فن تعمیر نوٹ حوالہ جات کمپیوٹر فن تعمیر کمپیوٹر فن تعمیر کی کلاسیں