একটি খাঁটি হার্ভার্ড আর্কিটেকচার সাধারণত ভন নিউম্যান আর্কিটেকচারের চেয়ে কম প্রদত্ত জটিলতার একটি কম্পিউটারকে দ্রুত চালনার অনুমতি দেয়, তবে শর্ত থাকে যে কোড এবং ডেটা স্মৃতিগুলির মধ্যে কোনও সংস্থান ভাগ করার দরকার নেই। যদি পিনআউট সীমাবদ্ধতা বা অন্যান্য কারণগুলি উভয় মেমরি স্পেসগুলি অ্যাক্সেস করতে একটি বাসের ব্যবহারকে বাধ্য করে, তবে এই ধরনের সুবিধাগুলি মূলত বাতিল করা উপযুক্ত।
একটি "খাঁটি" হার্ভার্ড আর্কিটেকচারটি চলমান কোডের মধ্যে সীমাবদ্ধ থাকবে যা প্রসেসর বাদে অন্য কোনও ব্যবস্থার দ্বারা মেমোরিতে রাখে যা কোড চালাবে। এটি এমন ডিভাইসগুলির জন্য যেমন আর্কিটেকচারের ইউটিলিটি সীমাবদ্ধ করে যার উদ্দেশ্য কারখানা দ্বারা নির্ধারিত হয়নি (বা বিশেষায়িত প্রোগ্রামিং সরঞ্জাম সহ কেউ)। এই সমস্যাটি দূর করতে দুটি পদ্ধতির ব্যবহার করা যেতে পারে:
কিছু সিস্টেমে পৃথক কোড এবং মেমরির ক্ষেত্র রয়েছে, তবে বিশেষ হার্ডওয়্যার সরবরাহ করে যা সংক্ষেপে কোড বাসটি গ্রহণ করতে, কিছু অপারেশন করতে এবং এই জাতীয় ক্রিয়াকলাপটি শেষ হয়ে গেলে সিপিইউতে নিয়ন্ত্রণ ফিরিয়ে আনতে বলা যেতে পারে। এই জাতীয় কিছু সিস্টেমে এ জাতীয় ক্রিয়াকলাপ পরিচালনার জন্য মোটামুটি বিস্তৃত প্রোটোকল প্রয়োজন, কারও কারও কাছে এ জাতীয় কার্য সম্পাদনের জন্য বিশেষ নির্দেশনা রয়েছে এবং কিছু কিছু এমনকি "ডেটা মেমরি" ঠিকানাগুলির জন্য নজর রাখে এবং সেগুলি অ্যাক্সেস করার চেষ্টা করা হলে টেকওভার / রিলিজ ট্রিগার করে some । এই জাতীয় সিস্টেমগুলির একটি মূল দিক হ'ল "কোড" এবং "ডেটা" এর জন্য মেমরির স্পষ্টভাবে সংজ্ঞায়িত ক্ষেত্র রয়েছে; এমনকি সিপিইউতে "কোড" স্পেস পড়া এবং লেখা সম্ভব হলেও এটি ডেটা স্পেস থেকে শব্দার্থগতভাবে আলাদা বলে স্বীকৃত ''
একটি বিকল্প পদ্ধতির যা কিছু উচ্চ-শেষ সিস্টেমে ব্যবহৃত হয়, তা হল দুটি মেমরি বাস সহ একটি কন্ট্রোলার, একটি কোডের জন্য এবং একটি ডেটার জন্য, যা উভয়ই একটি মেমরি আরবিট্রেশন ইউনিটের সাথে সংযুক্ত থাকে। সেই ইউনিটটি প্রতিটি জন্য পৃথক মেমরি বাস ব্যবহার করে বিভিন্ন মেমরি সাবসিস্টেমের সাথে সংযুক্ত হয়ে থাকে। একটি মেমরি সাবসিস্টেমের একটি কোড অ্যাক্সেস অন্যটিতে অ্যাক্সেসের সাথে একই সাথে প্রক্রিয়া করা যেতে পারে; যদি কোড এবং ডেটা একই সাবসিস্টেমটি একই সাথে অ্যাক্সেস করার চেষ্টা করে তবেই একজনকে অপেক্ষা করতে হবে।
যে পদ্ধতিগুলিতে এই পদ্ধতির ব্যবহার রয়েছে, কোনও প্রোগ্রামের অ-কর্মক্ষমতা-সমালোচনামূলক অংশগুলি মেমরির সাবসিস্টেমগুলির মধ্যে সীমাটি উপেক্ষা করতে পারে। যদি কোড এবং ডেটা একই মেমরি সাবসিস্টেমের মধ্যে থাকতে পারে তবে জিনিসগুলি তত দ্রুত চলবে না যেমন তারা পৃথক সাবসিস্টিমে রয়েছে, তবে একটি সাধারণ প্রোগ্রামের অনেক অংশের জন্য এটি গুরুত্বপূর্ণ নয়। একটি সাধারণ সিস্টেমে কোডের একটি ছোট্ট অংশ থাকবে যেখানে কার্য সম্পাদন সত্যিই গুরুত্বপূর্ণ, এবং এটি কেবলমাত্র সিস্টেমের হাতে থাকা ডেটার একটি ছোট অংশে কাজ করবে। যদি কারও কাছে 16K র্যামের একটি সিস্টেম থাকে যা দুটি 8 কে পার্টিশনে বিভক্ত ছিল, কেউ লিঙ্কার নির্দেশাবলী ব্যবহার করে তা নিশ্চিত করতে পারফরম্যান্স-ক্রিটিকাল কোডটি সামগ্রিক মেমরি স্পেসের শুরুর কাছাকাছি ছিল এবং পারফরম্যান্স-সমালোচনামূলক ডেটা নিকটে ছিল শেষ. যদি সামগ্রিক কোডের আকারটি 9K তে বৃদ্ধি পায়, শেষ 1K এর মধ্যে কোডটি অন্য কোথাও রাখা কোডের চেয়ে ধীরে চলবে, তবে সেই কোডটি পারফরম্যান্সের সমালোচনা নয়। তেমনিভাবে, যদি কোডটি কেবলমাত্র 6K হয় তবে ডেটা 9K-তে বৃদ্ধি পেয়েছে, সর্বনিম্ন 1K ডেটাতে অ্যাক্সেসটি ধীর হবে তবে যদি পারফরম্যান্স-সমালোচনামূলক ডেটা অন্য কোথাও অবস্থিত হয়, তবে এটি কোনও সমস্যা সৃষ্টি করবে না।
নোট করুন যে কোডটি 8K এর নিচে এবং ডেটা 8K এর নিচে থাকলে কর্মক্ষমতা সর্বোত্তম হবে, উল্লিখিত মেমরি-সিস্টেম ডিজাইন কোড এবং ডেটা স্পেসের মধ্যে কোনও কঠোর বিভাজন চাপিয়ে দেবে না। যদি কোনও প্রোগ্রামের কেবল 1K ডেটা প্রয়োজন হয় তবে কোডটি 15K পর্যন্ত বাড়তে পারে। যদি কেবলমাত্র 2K কোডের প্রয়োজন হয় তবে ডেটা 14 কেতে বাড়তে পারে। কেবল কোডের জন্য একটি 8 কে অঞ্চল এবং কেবলমাত্র ডেটার জন্য একটি 8 কে অঞ্চল থাকার চেয়ে অনেক বেশি বহুমুখী।