Агуулгын хүснэгт:

VHDL дээрх энгийн кэш хянагчийн загвар: 4 алхам
VHDL дээрх энгийн кэш хянагчийн загвар: 4 алхам

Видео: VHDL дээрх энгийн кэш хянагчийн загвар: 4 алхам

Видео: VHDL дээрх энгийн кэш хянагчийн загвар: 4 алхам
Видео: 5 настай заазуурдуулсан хүү ингэж ярив 2024, Оны зургадугаар сарын
Anonim
VHDL дээрх энгийн кэш хянагчийн загвар
VHDL дээрх энгийн кэш хянагчийн загвар

VHDL кодыг сурч, кэш хянагч зохион бүтээхэд жаахан хэцүү байсан тул би үүнийг заавартай бичиж байна. Тиймээс би өөрөө эхнээс нь кэш хянагч зохион бүтээсэн бөгөөд үүнийг FPGA дээр амжилттай туршсан. Би энд шууд зурагласан кэш хянагчийг танилцуулж, кэш хянагчийг туршихын тулд бүх процессор-санах ойн системийг загварчилсан болно. Энэхүү зааварчилгаа нь өөрийн кэш хянагчийг зохион бүтээхэд хэрэгтэй гэж найдаж байна.

Алхам 1: Техникийн үзүүлэлтүүд

Үзүүлэлтүүд
Үзүүлэлтүүд

Эдгээр нь бидний зохион байгуулах гэж буй Cache Controller -ийн үндсэн үзүүлэлтүүд юм.

  • Шууд газрын зураг. (Associated Mapped Cache Controller хайж байгаа бол энэ линк рүү орно уу)
  • Нэг банктай, кэшийг хаах.
  • Бичих хитүүдийн талаархи бичих бодлого.
  • Бичихгүй байх талаар Бичихгүй байх эсвэл эргэн тойрондоо бичих бодлого бичих.
  • Бичих буфер эсвэл бусад оновчлол байхгүй.
  • Tag Array -ийг нэгтгэсэн болно.

Үүнээс гадна бид кэш санах ой болон үндсэн санах ойн системийг зохион бүтээнэ.

Кэш санах ойн анхдагч (тохируулж болох) үзүүлэлтүүд:

  • 256 байт дан банктай кэш.
  • 16 кэш мөр, кэш мөр бүр (блок) = 16 байт.

Үндсэн санах ойн үзүүлэлтүүд:

  • Синхрон унших/бичих санах ой.
  • Олон банктай Interleaved санах ой - санах ойн дөрвөн банк.
  • Банк бүрийн хэмжээ = тус бүр 1 кБ. Тиймээс нийт хэмжээ = 4 кБ байна.
  • 10 битийн хаягийн автобус бүхий Word (4 байт) хаягтай санах ой.
  • Уншихад илүү өндөр зурвасын өргөн. Өгөгдлийн өргөн = 16 байтыг нэг цагийн мөчлөгт уншина уу.
  • Өгөгдлийн өргөнийг бичих = 4 байт.

ТАЙЛБАР: Хэрэв та 4 талын ассоциатив кэш хянагчийн загвар хайж байгаа бол миний шинэ зааврыг шалгаарай

Алхам 2: Бүх системийн RTL харагдац

Бүх системийн RTL харагдац
Бүх системийн RTL харагдац

Топ модулийн RTL -ийн бүрэн дүрслэлийг Зураг дээр үзүүлэв (процессороос бусад). Автобусны стандарт үзүүлэлтүүд нь:

  • Бүх өгөгдлийн автобус нь 32 битийн автобус юм.
  • Хаягийн автобус = 32 битийн автобус (Гэхдээ энд зөвхөн 10 битийг санах ойд хандах боломжтой).
  • Өгөгдлийн блок = 128 бит (унших өргөн зурвасын өргөн).
  • Бүх бүрэлдэхүүн хэсгүүдийг нэг цаг удирддаг.

Алхам 3: Туршилтын орчин

Топ модулийг туршилтын вандан ашиглан туршиж үзсэн бөгөөд энэ нь дамжуулах хоолойгүй процессорыг загварчилдаг (Учир нь бүх процессорыг зохион бүтээх нь тийм ч хялбар биш юм!). Туршилтын вандан нь санах ойд өгөгдөл унших/бичих хүсэлтийг байнга гаргадаг. Энэ нь процессор гүйцэтгэдэг бүх програмд түгээмэл байдаг "Ачаалах" ба "Хадгалах" зааврыг дооглодог. Туршилтын үр дүн нь кэш хянагчийн ажиллагааг амжилттай баталгаажуулав. Туршилтын статистикийг доор харуулав.

  • Алдагдах, бичих бүх унших/бичих дохиог зөв үүсгэсэн.
  • Өгөгдлийг унших/бичих бүх үйлдлүүд амжилттай болсон.
  • Мэдээллийн нийцгүй байдал/нийцэхгүй байдлын асуудал илрээгүй.
  • Дизайн нь Maxm -ийн цаг хугацааг амжилттай баталгаажуулсан. Ажиллах цагийн давтамж = Xilinx Virtex-4 ML-403 ТУЗ-д 110 МГц (бүхэл систем), зөвхөн кэш хянагчийн хувьд 195 МГц.
  • Блок RAM -ийг үндсэн санах ойд зориулж гаргасан. Бусад бүх массивыг LUT дээр хэрэгжүүлсэн.

Алхам 4: Хавсаргасан файлууд

Дараах файлуудыг энэ блогт хавсаргав.

  • Cache Controller, Cache Data Array, Main Memory System -ийн. VHD файлууд.
  • Туршилтын вандан.
  • Кэш хянагчийн талаархи баримт бичиг.

Тэмдэглэл:

  • Энд танилцуулсан кэш хянагчийн техникийн үзүүлэлтүүдийг бүрэн ойлгохын тулд баримт бичгийг үзнэ үү.
  • Кодын аливаа өөрчлөлт нь бусад модулиудаас хамааралтай байдаг. Тиймээс өөрчлөлтийг ухаалгаар хийх ёстой. Миний өгсөн бүх тайлбар, толгой хэсэгт анхаарлаа хандуулаарай.
  • Хэрэв ямар нэг шалтгаанаар Блок RAM -ийг үндсэн санах ойд тооцдоггүй бол санах ойн хэмжээг багасгаж, файлуудын хаягийн автобусны өргөнийг өөрчлөх гэх мэт. Ижил санах ойг LUTs эсвэл Distributed RAM дээр хэрэгжүүлэх боломжтой болно. Энэ нь чиглүүлэлтийн цаг хугацаа, нөөцийг хэмнэх болно. Эсвэл, FPGA -ийн тодорхой баримт бичиг рүү очоод, RAM -ийг блоклоход тохирох кодыг олоод кодоо тохируулаад хаягийн автобусны өргөний үзүүлэлтийг ашиглана уу. Altera FPGA -ийн хувьд ижил техник.

Зөвлөмж болгож буй: