আমি সম্প্রতি সমাবেশ শিখতে শুরু করেছি এবং লিঙ্কার স্ক্রিপ্ট এবং হার্ডওয়্যার প্রোগ্রামিংয়ের অন্যান্য নিম্ন-স্তরের বিশদ সম্পর্কে জানতে পারি। আমি নিজেও কম্পিউটার আর্কিটেকচার শেখাচ্ছি এবং লাইন বরাবর কোথাও আমি আশঙ্কা করতে এসেছি যে মেমরির মডেলটির আমার ছবিটি সম্ভবত ভুল হয়েছে।
আমি বর্তমানে যা বুঝেছি তার অনুসারে, সমস্ত কোড এবং ডেটা কোনও প্রসেসরের বাইনারিটি 'বার্ন' করার ঠিক পরে-অ-উদ্বায়ী মেমরির উপরে থাকে - র্যামটি অস্থির হওয়ার কারণে পুনরায় সেট করার পরে কিছুই থাকে না। প্রোগ্রামটি 'এক্সিকিউটিভ' শুরু করলে এটি 0x0000 ঠিকানা থেকে এটি করে যা প্রায় সবসময় (এএফআইকে) ফ্ল্যাশের সর্বনিম্ন ঠিকানা। সুতরাং, সিপিইউ কোরের সাথে ফ্ল্যাশ সংযোগকারী বাসের দিকে নির্দেশিকা ল্যাচ করা হয়েছে এবং সেখানেই প্রকৃত বাস্তবায়ন ঘটে। যাইহোক, আমরা যখন মেমরি থেকে সিপিইউ পুনরুদ্ধার বা সঞ্চয় করার বিষয়ে কথা বলি, আমরা সাধারণত র্যামের কথা বলি - আমি সচেতন যে আমরা প্রোগ্রামের মেমোরি থেকেও ডেটা পড়তে / লিখতে পারি (আমি এটিআরআইতে দেখেছি) তবে এটি কি সাধারণ নয়? এটি কি কারণ র্যাম রমের চেয়ে দ্রুততর যে আমরা সেখানে ডেটা সঞ্চয় করতে পছন্দ করি?
এই প্রশ্নের গৃহীত উত্তর বলে যে বেশিরভাগ কোডের টুকরো র্যামের বাইরে চলে।
এর অর্থ কি এই যে স্টার্ট-আপ রানটাইম কোড (যা নিজেই ফ্ল্যাশ থেকে চালায়) সমস্ত প্রোগ্রামের অপকডগুলি ফ্ল্যাশ থেকে র্যামে অনুলিপি করতে হয় এবং কোনওভাবে ফ্ল্যাশের ঠিকানাগুলিকে র্যামের দিকে নির্দেশ করে ম্যাপ করে যাতে সিপিইউ সেখান থেকে অপকডগুলি নিয়ে আসে? এটি কি সেই প্রক্রিয়াটির মতো যা আমরা শুরুতে ROM থেকে র্যামে .Data বিভাগগুলিতে স্থানান্তরিত করি?
আমি ভ্যান নিউম্যান আর্কিটেকচারগুলিতে এটিকে সহজ বলে কল্পনা করতে পারি যেখানে প্রোগ্রাম এবং ডেটা স্মৃতিগুলি একটি বাস ভাগ করে নিয়েছে কিন্তু হার্ভার্ড আর্কিটেকচারে এর অর্থ এই নয় যে সমস্ত কোড এবং ডেটা প্রথমে সিপিইউ নিবন্ধগুলির মধ্য দিয়ে যেতে হবে?
আপনি সম্ভবত অনুমান করতে পারেন, আমি পুরো ব্যবসাটি দ্বারা কিছুটা বিভ্রান্ত হয়ে পড়েছি। উচ্চতর বিমূর্ত স্তরে সর্বদা প্রোগ্রাম করা আমি এই ধরণের বিবরণ দিয়ে খুব সহজেই সমস্যায় পড়েছি। কোন সাহায্য প্রশংসা করা হয়।