সুচিপত্র:

ভিএইচডিএলে একটি সাধারণ ক্যাশে কন্ট্রোলারের ডিজাইন: 4 টি ধাপ
ভিএইচডিএলে একটি সাধারণ ক্যাশে কন্ট্রোলারের ডিজাইন: 4 টি ধাপ

ভিডিও: ভিএইচডিএলে একটি সাধারণ ক্যাশে কন্ট্রোলারের ডিজাইন: 4 টি ধাপ

ভিডিও: ভিএইচডিএলে একটি সাধারণ ক্যাশে কন্ট্রোলারের ডিজাইন: 4 টি ধাপ
ভিডিও: Как спрятать данные в ячейках Excel? 2024, নভেম্বর
Anonim
ভিএইচডিএলে একটি সাধারণ ক্যাশে কন্ট্রোলারের ডিজাইন
ভিএইচডিএলে একটি সাধারণ ক্যাশে কন্ট্রোলারের ডিজাইন

আমি এই নির্দেশযোগ্য লিখছি, কারণ আমি একটি ক্যাশে কন্ট্রোলার শিখতে এবং ডিজাইন শুরু করার জন্য কিছু রেফারেন্স ভিএইচডিএল কোড পেতে একটু কঠিন পেয়েছি। তাই আমি নিজে থেকেই একটি ক্যাশে কন্ট্রোলার ডিজাইন করেছি, এবং এটি FPGA তে সফলভাবে পরীক্ষা করেছি। আমি এখানে একটি সহজ সরাসরি ম্যাপ করা ক্যাশে কন্ট্রোলার উপস্থাপন করেছি, পাশাপাশি ক্যাশে কন্ট্রোলার পরীক্ষা করার জন্য একটি সম্পূর্ণ প্রসেসর-মেমরি সিস্টেমের মডেলিং করেছি। আমি আশা করি আপনারা আপনার নিজের ক্যাশে কন্ট্রোলারগুলি ডিজাইন করার জন্য একটি রেফারেন্স হিসাবে এই নির্দেশযোগ্য উপযোগী পাবেন।

ধাপ 1: বিশেষ উল্লেখ

স্পেসিফিকেশন
স্পেসিফিকেশন

এইগুলি ক্যাশে কন্ট্রোলারের প্রধান বৈশিষ্ট্য যা আমরা ডিজাইন করতে যাচ্ছি:

  • সরাসরি ম্যাপ করা। (অ্যাসোসিয়েটিভ ম্যাপড ক্যাশে কন্ট্রোলার খুঁজলে এই লিঙ্কে যান)
  • একক ব্যাঙ্ক, ব্লকিং ক্যাশে।
  • লেখার মাধ্যমে হিট লেখার নীতি।
  • নো-রাইট বরাদ্দ বা লেখার চারপাশে নীতি লিখুন।
  • কোন বাফার বা অন্যান্য অপ্টিমাইজেশন লিখুন
  • ট্যাগ অ্যারে ইনকর্পোরেটেড।

এর পাশাপাশি, আমরা একটি ক্যাশে মেমরি এবং একটি প্রধান মেমরি সিস্টেমও ডিজাইন করব।

ক্যাশে মেমরির ডিফল্ট (কনফিগারযোগ্য) স্পেসিফিকেশন:

  • 256 বাইট একক ব্যাঙ্কযুক্ত ক্যাশে।
  • 16 ক্যাশে লাইন, প্রতিটি ক্যাশে লাইন (ব্লক) = 16 বাইট।

প্রধান স্মৃতির স্পেসিফিকেশন:

  • সিঙ্ক্রোনাস রিড/রাইট মেমরি।
  • মাল্টি ব্যাঙ্কড ইন্টারলিভড মেমরি - চারটি মেমরি ব্যাংক।
  • প্রতিটি ব্যাংকের আকার = 1 কেবি প্রতিটি। সুতরাং, মোট আকার = 4 kB
  • ওয়ার্ড (4 বাইট) অ্যাড্রেসেবল মেমোরি 10-বিট এড্রেস বাস সহ।
  • পড়ার জন্য উচ্চতর ব্যান্ডউইথ। এক ঘড়ি চক্রে ডাটা প্রস্থ = 16 বাইট পড়ুন।
  • ডেটা প্রস্থ = 4 বাইট লিখুন।

দ্রষ্টব্য: যদি আপনি 4-উপায় সহযোগী ক্যাশে নিয়ন্ত্রক নকশা খুঁজছেন তবে আমার নতুন নির্দেশযোগ্য পরীক্ষা করুন

ধাপ 2: পুরো সিস্টেমের RTL ভিউ

পুরো সিস্টেমের RTL ভিউ
পুরো সিস্টেমের RTL ভিউ

শীর্ষ মডিউলের সম্পূর্ণ আরটিএল উপস্থাপনা চিত্রে দেখানো হয়েছে (প্রসেসর বাদে)। বাসগুলির জন্য ডিফল্ট স্পেসগুলি হল:

  • সমস্ত ডেটা বাস 32-বিট বাস।
  • ঠিকানা বাস = 32-বিট বাস (কিন্তু মেমোরি দ্বারা এখানে শুধুমাত্র 10 বিট ঠিকানা দেওয়া যায়)।
  • ডেটা ব্লক = 128 বিট (পড়ার জন্য ওয়াইড ব্যান্ডউইথ বাস)।
  • সমস্ত উপাদান একই ঘড়ি দ্বারা চালিত হয়।

ধাপ 3: পরিবেশ পরীক্ষা

শীর্ষ মডিউলটি একটি টেস্ট বেঞ্চ ব্যবহার করে পরীক্ষা করা হয়েছিল, যা কেবল একটি নন-পাইপলাইনযুক্ত প্রসেসরের মডেল করে (কারণ একটি সম্পূর্ণ প্রসেসর ডিজাইন করা মোটেও সহজ নয় !!)। টেস্ট বেঞ্চ মেমরিতে ঘন ঘন রিড/রাইট ডেটা রিকোয়েস্ট তৈরি করে। এটি সাধারণ "লোড" এবং "স্টোর" নির্দেশাবলী উপহাস করে, যা প্রসেসরের দ্বারা সম্পাদিত সমস্ত প্রোগ্রামে সাধারণ। পরীক্ষার ফলাফল সফলভাবে ক্যাশে কন্ট্রোলারের কার্যকারিতা যাচাই করেছে। নিম্নলিখিত পরীক্ষার পরিসংখ্যান পর্যবেক্ষণ করা হয়:

  • সমস্ত পড়া/লিখুন মিস এবং হিট সংকেত সঠিকভাবে উৎপন্ন হয়েছিল।
  • সমস্ত পড়া/লেখার ডেটা অপারেশন সফল হয়েছে।
  • কোন তথ্য অসঙ্গতি/অসঙ্গতি সমস্যা সনাক্ত।
  • নকশা সফলভাবে একটি ম্যাক্সমের জন্য যাচাই করা হয়েছিল। Xilinx Virtex-4 ML-403 বোর্ড (পুরো সিস্টেম) -এর ক্লক ফ্রিকোয়েন্সি = 110 MHz, শুধুমাত্র ক্যাশে কন্ট্রোলারের জন্য 195 MHz।
  • মেইন মেমরির জন্য ব্লক র‍্যাম অনুমান করা হয়েছিল। অন্যান্য সমস্ত অ্যারে LUTs এ প্রয়োগ করা হয়েছিল।

ধাপ 4: সংযুক্ত ফাইল

এই ব্লগের সাথে এখানে নিম্নলিখিত ফাইল সংযুক্ত করা হয়েছে:

  • ক্যাশে কন্ট্রোলার, ক্যাশে ডেটা অ্যারে, প্রধান মেমরি সিস্টেমের
  • টেস্ট বেঞ্চ।
  • ক্যাশে কন্ট্রোলারে ডকুমেন্টেশন।

মন্তব্য:

  • এখানে উপস্থাপিত ক্যাশে কন্ট্রোলারের স্পেসিফিকেশন সম্পূর্ণ বোঝার জন্য ডকুমেন্টেশনের মাধ্যমে যান।
  • কোডের যেকোনো পরিবর্তন অন্য মডিউলের উপর নির্ভরশীলতা রয়েছে। সুতরাং, পরিবর্তনগুলি সঠিকভাবে করা উচিত। আমার দেওয়া সমস্ত মন্তব্য এবং শিরোনামগুলিতে মনোযোগ দিন।
  • যদি কোন কারণে, প্রধান মেমরির জন্য ব্লক রs্যামগুলি অনুমান করা হয় না, মেমরির আকার হ্রাস করুন, তারপরে ফাইল জুড়ে ঠিকানা বাসের প্রস্থে পরিবর্তন এবং আরও অনেক কিছু। যাতে একই মেমরিটি LUTs বা বিতরণকৃত RAM এ প্রয়োগ করা যায়। এটি রাউটিং সময় এবং সম্পদ সংরক্ষণ করবে। অথবা, নির্দিষ্ট এফপিজিএ ডকুমেন্টেশনে যান এবং ব্লক র RAM্যামের জন্য সামঞ্জস্যপূর্ণ কোড খুঁজুন এবং সেই অনুযায়ী কোড সম্পাদনা করুন এবং একই ঠিকানা বাস প্রস্থের স্পেসিফিকেশন ব্যবহার করুন। Altera FPGAs এর জন্য একই কৌশল।

প্রস্তাবিত: