[OSy] TLB vyjimky

Lubomír Bulej bulej at nenya.ms.mff.cuni.cz
Tue Nov 29 12:06:09 CET 2005


Dobry den,

>  
> Ja bych mel jeden dotaz ohledne TLB vyjimek.
> Dle zadani mame osetrit vyjimky "TLB refill" a "TLB invalid".
> Handler pro TLB refill je v souboru Tlb.c
> Jak je to ale s vyjimkou a handlerem pro TLB invalid ??
>  
> Z manualu se zda, ze kazda vyjimka souvysejici s TLB je v podstate TLB 
> refill. A az podle toho jake bity jsou nastaveny v TLB entry lze 
> rozlisit napriklad TLB invalid.

Existuji 3 typy TLB vyjimek: TLB Refill, TLB Invalid a TLB Modified.

TLB Refill ma vlastni entry point, protoze se da ocekavat, ze bude nastavat 
pomerne casto, a ze tedy jeho obsluha bude maximalne rychla - jde pouze o to 
dostat informaci o virtualni pameti procesu z datove struktury do TLB. Casto 
byva implementovano v assembleru.

TLB Invalid vyvolava bezny exception handler s Cause=TLBL a Cause=TLBS. 
Invalid bit v TLB polozce by nasel vyuziti pri implementaci swapu - oblasti 
virtualni pameti je platna, ale data z teto oblasti jsou na disku. V kontextu 
semestralni prace ovsem obsluha TLB invalid udela to same co  TLB Refill, jen 
jinou cestou.

TLB Modified rovnez vyvolava bezny exception handler, avsak s Cause=MOD. Dirty 
bit v TLB polozce by nasel vyuziti pri implementaci copy-on-write a pri 
ochrane pameti obsahujici kod programu. V kontextu semestralni prace vsak 
obsluha TLB Modified udelala to same co TLB Refill.

Obsluha TLB Modified uz zadanim vyzadovana neni, protoze tu jinou cestu k 
obsluze TLB jiz bylo mozne si vyzkouset u TLB invalid.


> Znamena to, ze kdyz osetrime TLB refill, tak bude osetrena i TLB invalid ??
> A znamena to tedy, ze obe vyjimky maji stejny handler k jejich obsluze ??
>  

V ramci teto prace budou mit pravdepodobne stejny handler, ale urcite budou 
mit jiny entry point.



Lubomir Bulej




More information about the NSWI004 mailing list