Article View: pl.comp.lang.asm
Article #2213Re: Nie zagadka, tylko pytanie
From: Michal Schulz
Date: Fri, 16 Apr 2010 13:47
Date: Fri, 16 Apr 2010 13:47
32 lines
1975 bytes
1975 bytes
Andrzej Grażyński wrote: > W efekcie Delay(1000) nie zawsze daje jedną sekundę oczekiwania. Te > mankamenty znikną, jeśli zamiast programowej pętli użyjemy RDTSC: za to pojawia sie inne problemy. > 1. czekamy, aż zmieni się wartość zegara BIOS:$6C > > 2. Odczytujemy RDTSC i zapisujemy do TSCSTART > > 3. czekamy, aż zmieni się wartość zegara BIOS:$6C > > 4. Odczytujemy RDTSC i zapisujemy do TSCSEND > > 5. Obliczamy liczbę tyknięć TSC na milisekundę: > > TSCPERMSEC = (TSCEND-TSCSTART)*(1193180/65536/1000) > > i odtąd możemy odmierzać interwały w czasie rzeczywistym. Badz ostrozny. W niektorych procesorach RDTSC liczy cykle w rozny sposob. W przypadku procesorow obslugujacych SpeedStep (Intel) albo Cool'n'Quiet (AMD) rdtsc moze zliczac cykle zaleznie od tego, z jaka predkoscia pracuje CPU w danej chwili. Twoja petla kontrolna zmierzy sie na przyklad przy 800MHz, a pozniej np. CPU przelaczy sie na 1800MHz. Jezeli to mozliwe, uzyj timera z lokalnego APIC. Jest troche mniej dokladny (100MHz, na przyklad) ale za to niezalezny od predkosci taktowania CPU. -- Michal Schulz
Technical Details
Message-ID:
<3230933.3mMJ4iE7TS@meehow.homeip.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mailReferences:
<hq83lv$5in$1@news.onet.pl> <hq8uv7$vas$1@newsread1.aster.pl> <hq9iem$gp7$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail From: Michal Schulz <michal.schulz@onet.eu> Newsgroups: pl.comp.lang.asm Subject: Re: Nie zagadka, tylko pytanie Followup-To: pl.comp.lang.asm Date: Fri, 16 Apr 2010 15:47:12 +0200 Organization: http://onet.pl Lines: 32 Message-ID: <3230933.3mMJ4iE7TS@meehow.homeip.net> References: <hq83lv$5in$1@news.onet.pl> <hq8uv7$vas$1@newsread1.aster.pl> <hq9iem$gp7$1@news.onet.pl> NNTP-Posting-Host: efzn038.efzn.tu-clausthal.de Mime-Version: 1.0 X-Trace: news.onet.pl 1271425632 8596 139.174.65.55 (16 Apr 2010 13:47:12 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Fri, 16 Apr 2010 13:47:12 +0000 (UTC) User-Agent: KNode/4.4.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit