Lukas Jezek wrote:
No to by asi slo, ale opravdu chceme zneplatnovat celou TLB a ne jenom zaznamy tykajici se daneho procesu? Ja bych skoro rekl, ze funkce, co cisti podle ASID by mela stacit....Rozhodne je nutne umet zneplatnit celou TLB pri prepnuti z 1 procesu do jineho. (Resp. ty zaznamy, co nemaji global flag)
Ok, udelam funkci, ktere reknes, ktery zaznam (cislo 0-47) chces zapsat (prepsat). Tu chytristiku by si ale dle meho mel resit nekde jinde, nez u funkcni tlb_*(). Imho k ni budes potrebovat dalsi funkce, neco co ti bud eresetovat accessed / dirty flagy....no to se domluvime. Zatim bych to nechal na nahodne.Jinak jsem spis pro verzi pridavani po 1 zaznamu, chytristiku s vybiranim bych delal, naimplementujeme nejakou rozumnou strategii pro vyhozeni nejstarsi stranky, ktera bude vsudepouzitelna (jako ze bychom to mohli pouzit i u swapovani a tak, ktere se nas netyka).
no jeste se hodi dat tam vic zaznamu, treba pole nebo neco, nebo to vkladani udelat tak aby kdyz budes chtit vlozit vic zaznamu, tak aby jsi si nevyhodil ty drive vlozene... J.
S tim prepsanim je to dobra pripominka, ale to b yse dalo resit prave tim, ze reknes kam je chces napsat. Podle me by tohle zase funkce tlb_*() nemeli resit. A popravde si myslim, ze kdyz tam budes chtit narvat cele pole zaznamu, tak to vyjde nastejno jako kdyz ve for smycce to tam das po jednom (na dany index, aby sis to neprepisoval).
Zdravi Jirka H.