[OSy] Vyvolavanie vynimky TLB invalid
David Matousek
david at matousec.com
Tue Jan 8 19:10:37 CET 2008
Todle jsem taky cetl pred par dny, ale takova situace nikdy nenastava,
aspon v nasi implementaci. TLB refill mame udelany taky, ze se pohybuje jen
v nemapovanych castech, tudiz nic takovyho nenastava.
Naopak TLB refill v TLB exception nam nastava bezne.
A typicky asi bude nastavat i ostatnim.
Rastislav Wartiak wrote:
> R4000_Users_Manual_2Ed.pdf, číslování stránek dle Readeru (ne těch v
> dokumentu)
>
> s. 159: TLB Refill Exception
> It is possible that the virtual address used to obtain the physical address
> and access control information is on a page that is not resident in the TLB.
> This condition is processed by allowing a TLB refill exception in the TLB
> refill handler. This second exception goes to the common exception vector
> because the EXL bit of the Status register is set.
>
> s. 151: General Exception Process, Figure 5-17
> if SR1 = 0 then /* if not EXL */
> if TLBrefill then vector <- 0x000
> elseif XTLBrefill then vector <- 0x080
> else /* not a miss */ vector <- 0x180
> else
> vector <- 0x180
> endif
> SR <- SR31:2 || 1 || SR0 /* EXL */
>
> Postup:
> - nastane TLB miss, nastaví se EXL, zavolá se obsluha z adresy 0 (tlb_refill)
> - během obsluhy nastane TLB miss, zavolá se obsluha z adresy 0x180
> (dle Cause to bude tlb_invalid)
>
> Pro zjednodušení jsem nepsal plnění Cause registru, ten bude v obou
> případech obsahovat TLBL nebo TLBS.
>
> Rastislav Wartiak
>
>> Rastislav Wartiak wrote:
>>> Myslím, že je to obráceně - v TLB refill může missnout a pokud se tak
>>> stane, tak se volá TLB invalid.
>> Refill pouziva kernel temp stack, nema proc by missnul.
>> Excepsna pouziva thread stack.
>
>
> _______________________________________________
> OSy mailing list
> OSy at dsrg.mff.cuni.cz
> https://dsrg.mff.cuni.cz/mailman/listinfo/osy
More information about the NSWI004
mailing list