[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