[OSy] Ticks per second

Martin Decky decky at d3s.mff.cuni.cz
Sat Nov 15 23:08:17 CET 2014


Hezky den,

> TL,DR: jak zajistim konverzi realneho casu na pocet taktu/ticku?

Pro ucely semestralky bude stacit, kdyz se 1 sekunda v simulatoru bude 
alespon velmi ramcove blizit 1 sekunde realneho casu. Ale jestli to bude 
presne 400 ms nebo 2500 ms, to hodnotit nebudeme. Podstatne je, aby 2 
simulovane sekundy trvaly vicemene dvakrat dele nez 1 simulovana sekunda.

Cili bude stacit, pokud prevod realneho casu na takt procesoru provedete 
pomoci konstanty, kterou si rucne zkalibrujete na Vasem hostovskem stroji.

Nicmene pokud si prejete dosahnout vetsi presnosti a realistictejsiho 
chovani, muzete pouzit zarizeni realneho casu dtime, ktere ma MSIM, a 
pomoci nej provest kalibraci. Ani v tomto pripade sice nebude presnost 
dokonala (MSIM sice provadi kazdou instrukci MIPSu za 1 logicky takt, 
ale slozitost a tudiz realna doba provadeni ruznych instrukci se lisi; 
navic jeho rychlost je zavisla na aktualnim zatizeni hostovskeho 
stroje), ale presnejsi prostredek MSIM nenabizi.

> Jak se tohle resi v realnem svete?

V realnem svete mate typicky dva prostredky, jak se tento problem resit. 
V mnoha pripadech jsou navic k dispozici oba, takze je muzete vhodnym 
zpusobem kombinovat.

(a) Dovedete zjistit frekvenci procesoru a procesor pocita takty 
nezavisle na slozitosti instrukci. Takze i na zaklade velmi hrubeho 
zdroje realneho casu dovedete pocet taktu za jednotku realneho casu 
docela dobre zkalibrovat. [Typicky jeste musite mit na pameti zmeny 
frekvence procesoru z duvodu power managementu nebo pretaktovavani 
jader, nepocitani taktu v rezimu spanku atd., ale to vse je v principu 
resitelne.]

(b) Mate k dispozici nezavisle hodiny realneho casu, ktere maji jak 
rozumnou presnost, tak rozumne jemnou granularitu, tj. frekvenci tikani 
(casto konfigurovatelnou). Takze mnohe zalezitosti tykajici se casu 
muzete resit prakticky nezavisle na samotnem procesoru a v jednotkach 
odpovidajicich realnemu casu.


M.D.




More information about the NSWI004 mailing list