home *** CD-ROM | disk | FTP | other *** search
- Hilfedatei für CDSpeed
-
-
- Autor: Peter Teichmann
- Fritz-Löffler-Str.12/A010
- 01069 Dresden
-
- Email: sol@mail.wh1.tu-dresden.de
- oder: teich-p@rcs.urz.tu-dresden.de
-
- Das Programm darf frei kopiert werden, jedoch nur ohne irgend
- welche Dateien zu verändern.
- Der Zweck dieses Programms ist es, wie man sicher unschwer errät,
- CD-Rom-Laufwerke zu testen. Haftung für auftretende Schäden
- wird nicht übernommen. Man sollte vor dem Start sicherheitshalber
- alle noch nicht gespeicherten Daten sichern.
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!! !!!!
- !!!! BEI EINEM ABSTURZ DES PROGRAMMS WÄHREND DES TESTS MUSS !!!!
- !!!! UNWEIGERLICH DER GANZE RECHNER ABSCHMIEREN. !!!!
- !!!! !!!!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- Das liegt daran, daß eine Timerinterrupt verbogen wird, und vor
- Programmende zurückgebogen werden muß, da sonst die Zieladresse
- nicht mehr existent ist! Beim Absturz ist das nicht
- gewährleistet.
-
- Während des Test wird öfter mal der Wimp-Poll aufgerufen, wenn
- es möglich ist (wenn der Timer gerade nicht gebraucht wird).
- Das kann man nutzen, um durch Schließen des Fensters oder klicken
- auf Cancel den Test abzubrechen, falls er einem zu lange dauert.
-
- Einige Beispieldateien befinden sich im Verzeichnis
- !CDSpeed.SpeedLog. Wer die von seinem Laufwerk auch dort sehen
- will, sollte sie mir zuschicken.
-
- Technische Details:
-
- Die Anzahl der angeschlossenen Laufwerke wird nicht über
- CDFS_GetNumberOfDrives ermittelt, da dieser Wert nur der konfigu-
- rierten Anzahl von Laufwerken entspricht, was nicht unbedingt
- der Wahrheit entsprechen muß. Statt dessen wird auf jedem Lauf-
- werk beginnend bei 0 eine Operation ausgeführt, zu der keine CD
- nötig ist, im konkreten Fall wird geguckt, ob die Lade zu ist.
-
- Die Zeitmessung geschieht mittels Timer auf 1/1000000 Sekunde
- genau. Gelesen wird mittels CD_ReadData.
-
- Die Datentransferrate wird getestet, indem direkt vor der zu
- testenden Stelle erst mal 2 kB gelesen werden, um den Kopf
- schon dort hinzubewegen, und die Drehzahl anzupassen. Gleich
- danach werden nochmal 512 kB gelesen, dafür wird die Zeit
- gemessen und die Transferrate errechnet. Die Werte sind gut
- reproduzierbar und schwanken um weniger als 1%.
-
- Die Cache-Transferrate wird gemessen, indem wieder vor der zu
- testenden Stelle 2 kB gelesen werden. Dann wird etwas länger
- gewartet, als das Laufwerk brauchen würde, um einen vorhandenen
- Read-Ahead-Cache soweit zu füllen, wie der zu übertragende
- Block groß ist. Danach wird dieser Block gelesen, und die Zeit
- gemessen. Das wird in 16-kB-Schritten bis maximal 512 kB Block-
- größe getan, und der Maximalwert wird ausgegeben.
-
- Die durchschnittliche Zugriffszeit wird ermittelt, indem von 100
- zufällige Positionen auf der CD 2kB gelesen werden. Dafür wird
- die Zeit gemessen und durch 100 geteilt. Es wird nicht nur der
- Kopf bewegt, da dies zu unrealistisch kurzen Zugriffszeiten
- führt. Die Zugriffszeit ist leider nicht sehr gut reproduzierbar,
- sie schwankt in einem bereich von bis zu 10%. Das läßt sich auch
- nicht verbessern, wenn man die Anzahl erhöht, Gott allein weiß
- warum.
-
- Die nachfolgende Grafik gibt an, wie lange es vom CD-Anfang, vom
- Ende und von der Mitte dauert, bis der Kopf verschiedene
- Positionen angefahren hat. Diese Grafik schwankt auch ziemlich
- stark, wobei jedoch komischerweise oft der recht gut reproduzier-
- bare Fall auftritt, daß für kürzere Wege längere Zeiten be-
- nötigt werden. Sehr gut kann man auch erkennen, daß die Zugriffs-
- zeiten im CD-Inneren größer sind als im Äußeren.
-
- Die letzte Grafik gibt an, welche Datentransferraten bei
- verschiedener CPU-Auslastung und Blockgröße erreicht werden.
- Das wird gemessen, indem Blöcke geladen werden, und danach eine
- gewisse Zeit gewartet wird, bis wieder der nächste Block geladen
- wird. Man gibt also dem Read-Ahead-Cache Zeit, sich zu füllen.
- im Prinzip hängt das also stark von der Cache-Transferrate ab.
- In der Praxis tritt dieser Fall etwa beim Abspielen von Replay-
- Filmen auf, wo in der Pause der Film entpackt und angezeigt
- wird. Die Grafik ist ziemlich gut reproduzierbar.
- Eigentümlich ist hier, daß z.B. beim Sony CDU-55S bei 128 kB
- Blockgröße bei 10% CPU-Last ein besserer Wert als bei 20%
- erzielt wird... Das ist auch immer reproduzerbar...
-
- Der Index wird folgendermaßen berechnet:
-
- 5
- ---------------------------------------------
- 150 150
- ------------ + --------- + 0.006*Zugriffszeit
- Transferrate Cacherate
-
-
- Bei einem Singlespeed-Laufwerk mit 500ms mittlerer Zugriffszeit
- ohne Read-Ahead-Cache kommt der Faktor 1 heraus, mit einer
- Wichtung von Transferrate:Cacherate:Zugriffszeit=1:1:3.
-
- Ein Laufwerk mit 500 ms Zugriffszeit kann nach dieser Formel
- nie einen Index größer als 1,67 haben, selbst wenn es ein
- zehnfach-Speed-Laufwerk sein sollte. Andererseits kann ein
- Laufwerk mit 150 kB Transferrate und 150 kB Cacherate nie
- einen Index größer als 2,5 bekommen, und wenn es eine Zugriffs-
- zeit von 10ms haben sollte. Man sieht also, daß die Zugriffs-
- zeit stärker in die Wichtung eingeht. Ich denke aber, daß das
- für den Archimedes mit seinen vielen kleinen Bootdateien durchaus
- gerechtfertigt ist.
-