Мазмуну:

VHDLдеги жөнөкөй кэш контроллеринин дизайны: 4 кадам
VHDLдеги жөнөкөй кэш контроллеринин дизайны: 4 кадам

Video: VHDLдеги жөнөкөй кэш контроллеринин дизайны: 4 кадам

Video: VHDLдеги жөнөкөй кэш контроллеринин дизайны: 4 кадам
Video: FPGA Hello world или как программировать ПЛИС. Vivado, Spartan7 2024, Июнь
Anonim
VHDLдеги жөнөкөй кэш контроллеринин дизайны
VHDLдеги жөнөкөй кэш контроллеринин дизайны

Мен муну үйрөтүп жатам, анткени VHDL кодун үйрөнүү жана кэш контроллерин иштеп чыгууну баштоо бир аз кыйын болду. Ошентип, мен нөлдөн баштап кэш контроллерин иштеп чыктым жана аны FPGAда ийгиликтүү сынап көрдүм. Мен бул жерде жөнөкөй түз картага түшүрүлгөн кэш контроллерин, ошондой эле кэш контроллерин сыноо үчүн бүт процессор-эс тутумунун моделин сунуштадым. Балдар, бул нускаманы өз кэш контроллерлериңизди иштеп чыгуу үчүн пайдалуу деп ишенем.

1 -кадам: өзгөчөлүктөр

Мүнөздөмөлөр
Мүнөздөмөлөр

Булар биз иштеп чыга турган Cache Controllerдин негизги мүнөздөмөлөрү:

  • Түз карта. (Associative Mapped Cache Controller издесеңиз бул шилтемеге өтүңүз)
  • Бир банктуу, кэшти бөгөө.
  • Жазуу хиттери боюнча жазуу саясаты.
  • Жазуу жок жазуу боюнча саясатты бөлүштүрүү же жазуу.
  • Жазуу буфери же башка оптимизация жок.
  • Tag Array киргизилген.

Мындан тышкары, биз кэш эс тутумун жана негизги эс тутумун иштеп чыгабыз.

Кэш эстутумунун демейки (конфигурацияланган) өзгөчөлүктөрү:

  • 256 байт бир банкалуу кэш.
  • 16 Кэш линиясы, ар бир Кэш сызыгы (Блок) = 16 Байт.

Негизги эс тутумдун өзгөчөлүктөрү:

  • Синхрондуу окуу/жазуу эс тутуму.
  • Көп банкалуу Interleaved Memory - төрт эс тутум банкы.
  • Ар бир банктын өлчөмү = 1 кБ. Демек, жалпы көлөмү = 4 кБ.
  • Word (4 байт) даректүү эс тутуму 10-бит Адрес шинасы менен.
  • Окуу үчүн жогорку өткөрүү жөндөмдүүлүгү. Маалымат сааты = 16 байтты бир саат циклинде окуңуз.
  • Маалыматтардын туурасын жазуу = 4 байт.

ЭСКЕРТҮҮ: эгер сиз 4 тараптуу ассоциативдүү кэш контроллеринин дизайнын издесеңиз, менин жаңы инструктивдүүмдү текшериңиз

2 -кадам: Бүт системанын RTL көрүнүшү

Бүт системанын RTL көрүнүшү
Бүт системанын RTL көрүнүшү

Top модулунун толук RTL өкүлчүлүгү сүрөттө көрсөтүлгөн (процессорду кошпогондо). Автобустар үчүн демейки мүнөздөмөлөр:

  • Бардык маалыматтар автобустары 32 биттик автобустар.
  • Дарек Bus = 32-биттик автобус (Бирок бул жерде эстутум аркылуу 10 бит гана даректелген).
  • Маалыматтар блогу = 128 бит (Окуу үчүн кенен өткөрүү жөндөмдүү автобус).
  • Бардык компоненттер бир эле саат менен башкарылат.

3 -кадам: Test Environment

Top Module тест столунун жардамы менен сыналган, ал жөн гана түтүксүз процессорду моделдейт (анткени бүтүндөй процессорду долбоорлоо оңой эмес !!). Test Bench эс тутумуна маалыматтарды окуу/жазуу өтүнүчтөрүн тез -тез жаратат. Бул процессор тарабынан аткарылган бардык программаларда кездешкен "Load" жана "Store" көрсөтмөлөрүн шылдыңдайт. Тесттин жыйынтыгы кэш контроллеринин иштөөсүн ийгиликтүү текшерди. Төмөндө байкалган тест статистикасы:

  • Бардык Окуу/Жазуу Мисс жана Хит сигналдары туура түзүлгөн.
  • Бардык Окуу/Жазуу операциялары ийгиликтүү болду.
  • Маалыматтардын шайкешсиздиги/дал келбөөчүлүк көйгөйлөрү аныкталган жок.
  • Дизайн Maxm үчүн ийгиликтүү текшерилди. Иштөөнүн саат жыштыгы = Xilinx Virtex-4 ML-403 тактасында 110 МГц (бүт система), 195 МГц кэш контроллери үчүн гана.
  • Негизги эстутум үчүн блок -RAMлар чыгарылган. Башка бардык массивдер LUTsде ишке ашырылган.

4 -кадам: Тиркелген файлдар

Бул блог менен бул жерде төмөнкү файлдар тиркелет:

  • . VHD файлдары Cache Controller, Cache Data Array, Main Memory System.
  • Test Bench.
  • Кэш контроллери боюнча документтер.

Эскертүүлөр:

  • Бул жерде көрсөтүлгөн кэш контроллеринин өзгөчөлүктөрүн толук түшүнүү үчүн документтерди караңыз.
  • Коддогу бардык өзгөртүүлөр башка модулдарга көз каранды. Ошентип, өзгөртүүлөр акылдуулук менен жасалышы керек. Мен берген бардык комментарийлерге жана аталыштарга көңүл буруңуз.
  • Эгерде кандайдыр бир себептерден улам, Блок ОЗУнун эс тутуму боюнча жыйынтык чыгарылбаса, эс тутумдун көлөмүн КИЧИРТҮҮ, андан кийин файлдар боюнча дарек шинасынын туурасын өзгөртүү жана башкалар. Ошентип, ошол эле эстутум LUTs же Distributed RAM боюнча ишке ашырылышы мүмкүн. Бул маршруттун убактысын жана ресурстарын үнөмдөйт. Же болбосо, конкреттүү FPGA документациясына барыңыз жана Блок RAM үчүн ылайыктуу кодду таап, ошого жараша кодду түзөтүңүз жана ошол эле дарек шинасынын туурасынын өзгөчөлүктөрүн колдонуңуз. Altera FPGAлар үчүн бирдей техника.

Сунушталууда: