Բովանդակություն:

VHDL- ում պարզ քառակողմ ասոցիատիվ քեշի վերահսկիչի նախագծում. 4 քայլ
VHDL- ում պարզ քառակողմ ասոցիատիվ քեշի վերահսկիչի նախագծում. 4 քայլ

Video: VHDL- ում պարզ քառակողմ ասոցիատիվ քեշի վերահսկիչի նախագծում. 4 քայլ

Video: VHDL- ում պարզ քառակողմ ասոցիատիվ քեշի վերահսկիչի նախագծում. 4 քայլ
Video: How to use a For-Loop in VHDL 2024, Հունիսի
Anonim
VHDL- ում պարզ քառակողմ ասոցիատիվ քեշի վերահսկիչի նախագծում
VHDL- ում պարզ քառակողմ ասոցիատիվ քեշի վերահսկիչի նախագծում

Իմ նախորդ հրահանգում մենք տեսանք, թե ինչպես նախագծել պարզ ուղղակի քարտեզագրված քեշի վերահսկիչ: Այս անգամ մենք մի քայլ առաջ ենք գնում: Մենք նախագծելու ենք մի պարզ քառակողմ ասոցիատիվ քեշի վերահսկիչ: Առավելություն? Ավելի քիչ բաց թողնված տոկոսադրույք, բայց կատարման գնով: Ինչպես և իմ նախորդ բլոգը, մենք նախագծում և ընդօրինակում էինք մի ամբողջ պրոցեսոր, հիմնական հիշողություն և քեշ միջավայր `մեր քեշի վերահսկիչը փորձարկելու համար: Հուսով եմ, որ տղերք դա օգտակար տեղեկանք եք համարում հասկացությունները հասկանալու և ապագայում ձեր սեփական քեշի վերահսկիչները նախագծելու համար: Քանի որ պրոցեսորի (փորձնական նստարանի) մոդելը և հիմնական հիշողության համակարգը նույնն են, ինչ իմ նախորդ բլոգը, ես դրանք այլևս չեմ բացատրի: Խնդրում ենք անդրադառնալ նախորդ հրահանգին `դրա վերաբերյալ մանրամասների համար:

Քայլ 1: Տեխնիկական պայմաններ

Տեխնիկական պայմաններ
Տեխնիկական պայմաններ

Արագ հայացք այստեղ ներկայացված Cache Controller- ի բնութագրերի միջոցով.

  • Քառուղի Set Associative Cache Controller (անցեք այս հղումով, եթե փնտրում եք Direct Mapped Cache Controller):
  • Մեկ բանկային, արգելափակող քեշ:
  • Գրելու հիթեր գրելու քաղաքականություն:
  • Գրելու բացթողումներ գրելու շուրջ-քաղաքականություն:
  • Reeառերի կեղծ-LRU (pLRU) փոխարինման քաղաքականություն:
  • Պիտակների զանգվածը վերահսկիչի ներսում:
  • Կարգավորելի պարամետրեր:

Cache Memory- ի և Main Memory- ի կանխադրված բնութագրերը նույնն են, ինչ իմ նախորդ հրահանգի դեպքում: Խնդրում ենք անդրադառնալ նրանց:

Քայլ 2: Ամբողջ համակարգի RTL տեսք

Ամբողջ համակարգի RTL տեսք
Ամբողջ համակարգի RTL տեսք

Վերևի մոդուլի ամբողջական RTL ներկայացումը ներկայացված է Նկարում (առանց պրոցեսորի): Ավտոբուսների կանխադրված բնութագրերն են.

  • Բոլոր տվյալների ավտոբուսները 32-բիթանոց ավտոբուսներ են:
  • Հասցեի ավտոբուս = 32-բիթանոց ավտոբուս (Բայց Հիշողության միջոցով այստեղ հասցեագրելի է ընդամենը 10 բիթ):
  • Տվյալների արգելափակում = 128 բիթ (կարդալու համար լայն թողունակության ավտոբուս):
  • Բոլոր բաղադրիչները շարժվում են նույն ժամացույցով:

Քայլ 3: Թեստի արդյունքներ

Վերևի մոդուլը փորձարկվել է Test Bench- ի միջոցով, որը պարզապես մոդելավորում է ոչ խողովակաշարային պրոցեսոր, ինչպես դա արեցինք վերջին հրահանգում: Թեստային նստարանը հաճախակի ստեղծում է Հիշողության համար կարդալու/գրելու տվյալների պահանջներ: Սա ծաղրում է տիպիկ «Բեռնում» և «Պահել» հրահանգները, որոնք տարածված են պրոցեսորի կողմից կատարված բոլոր ծրագրերում:

Թեստի արդյունքները հաջողությամբ ստուգեցին Cache Controller- ի ֆունկցիոնալությունը: Ստորև բերված են թեստերի վիճակագրությունը.

  • Բոլոր կարդալ/գրել Miss և Hit ազդանշանները ճիշտ են ստեղծվել:
  • Տվյալների կարդալու/գրելու բոլոր գործողությունները հաջող էին բոլոր չորս եղանակներով:
  • pLRU ալգորիթմը հաջողությամբ հաստատված է քեշի տողերի փոխարինման համար:
  • Տվյալների անհամապատասխանության/անհամապատասխանության խնդիրներ չեն հայտնաբերվել:
  • Դիզայնը հաջողությամբ հաստատվեց Maxm- ի համար: Clամացույցի հաճախականությունը = 100 ՄՀց Xilinx Virtex-4 ML-403 տախտակում (ամբողջ համակարգ), 110 ՄՀց միայն Cache Controller- ի համար:
  • Արգելափակված RAM- ները եզրակացվեցին հիմնական հիշողության համար: Մնացած բոլոր զանգվածները կիրառվել են LUT- երի վրա:

Քայլ 4: Կից ֆայլեր

Հետևյալ ֆայլերը կցված են այստեղ այս բլոգին.

  • . VHD ֆայլեր Cache Controller, Cache Data Array, Main Memory System:
  • Փորձնական նստարան:
  • Փաստաթղթեր Cache Controller- ի վերաբերյալ:

Նշումներ

  • Անցեք փաստաթղթերը ՝ այստեղ ներկայացված Cache Controller- ի բնութագրերը լիովին հասկանալու համար:
  • Կոդի ցանկացած փոփոխություն կախված է այլ մոդուլներից: Այսպիսով, փոփոխությունները պետք է արվեն խելամիտ:
  • Ուշադրություն դարձրեք իմ տված բոլոր մեկնաբանություններին և վերնագրերին:
  • Եթե ինչ -ինչ պատճառներով, հիմնական հիշողության համար արգելափակված RAM- ները չեն եզրակացվում, Նվազեցրեք հիշողության չափը, որին հաջորդում են հասցեների ավտոբուսի լայնությունների փոփոխությունները ֆայլերում և այլն: Որպեսզի նույն հիշողությունը կարող է իրականացվել կամ LUT- ներով կամ Distributed RAM- ով: Սա կփրկի երթուղու ժամանակը և ռեսուրսները: Կամ, գնացեք FPGA- ի հատուկ փաստաթղթերը և գտեք Block RAM- ի համար համատեղելի կոդը և համապատասխանաբար խմբագրեք ծածկագիրը, և օգտագործեք նույն հասցեի ավտոբուսի լայնության բնութագրերը: Նույն տեխնիկան Altera FPGA- ների համար:

Խորհուրդ ենք տալիս: