home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
OSK
/
EFFO
/
forum14.lzh
/
LETTERS
/
brief.baumann
next >
Wrap
Text File
|
1990-11-27
|
7KB
|
123 lines
Baumann Daniel
Ruetliweg 14
CH-5000 Aarau
1. Oktober 1990
Fuer diejenigen, denen die Diskettenbedienung von OS-9 zu langsam ist.
Hallo OS-9 User's
Neulich habe ich etwas mit den Diskettenparametern fuer das Formattieren
von Disketten experimentiert und festgestellt, dass moeglicherweise das
Diskettenhandling etwas verschnellert werden kann.
Beim Formattieren von Disketten kann der sogenannte "Sector Interleave
Offset" mitangegeben werden. Dies kann interaktiv aber auch per
Kommandozeile geschehen.
Beispiel: format /d0 -i=2
Hier wird mit einem Interleave von 2 formattiert.
Dies bedeutet, dass die Diskette so formattiert wird, dass bei einer
Diskette mit 16 Sektoren pro Spur die Sektoren
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
nicht fortlaufend hintereinander angeordnet werden, sondern mit einem
Versatz von zwei Sektoren. So werden die Sektoren wie folgt auf der
Diskette angeordnet
1, 3, 5, 7, 9, 11, 13, 15, 2, 4, 6, 8, 10, 12, 14, 16
Wird nun eine Datei in aufeinanderfolgende Sektoren (1, 2, 3, 4 usw.)
geschrieben, was OS-9 bevorzugt, so koennen je nach Anordnung der
Sektoren auf der Diskette mehr oder weniger Sektoren pro Disketten-
umdrehung geschrieben bzw. spaeter gelesen werden, was die Zugriffszeit
auf die Daten entsprechend verschnellert oder aber verzoegert.
Dies kommt davon, weil die von der Diskette gelesenen Daten in Bloecken
(normalerweise ein Sektor pro Mal) gelesen und dann im Speicher des
Rechners (RAM) versorgt werden muessen. Die Diskette dreht sich aber
waehrend dieser Zeit weiter. Wenn die Daten im Speicher sind, kann der
naechste Sektor von der Diskette gelesen werden. Bei einer fortlaufenden
Nummerierung der Sektoren auf der Diskette (1, 2, 3, 4 usw.), ist dieser
Sektor moeglicherweise bereits am Lesekopf des Diskettenlaufwerks vorbei
(oder wenigstens der Anfang davon), sodass nun fast eine Diskettenum-
drehung lang wieder auf diesen Sektor gewartet werden muss. Werden nun
aber andere Sektoren dazwischengeschoben, koennen in der Zeit, in
welcher diese Sektoren am Lesekopf vorbeidrehen die Daten in den Speicher
uebertragen werden.
Weil der Interleave Offset von vielen Parametern abhaengig ist (z.B.
Microprozessor, dessen Taktfrequenz, Floppycontroller), kann hier keine
allgemeingueltige Aussage gemacht werden. Der optimale Interleave kann
jedoch mit etwas Experimentieren herausgefunden werden:
<< 2 geht immer, 1 nur bei ganz schnellen Systemen, siehe unten ! LZ>>
Eine Diskette wird mit einem bestimmten Interleave Offset formattiert,
dann werden einige Dateien z.B. mit copy /h0/xxx/* -w=/d0 auf die
Diskette kopiert und dabei die benoetigte Zeit gemessen. Dies wird nun
mit verschiedenen Interleave's wiederholt. Die kuerzeste Zeit deutet auf
den besten Interleave hin.
Zu beachten: Da OS-9 ein Multitasking-Betriebssystem ist, koennen
laufende Task's das Resultat verfaelschen. Parallel laufende Prozesse
sollten also bei der Messung vermieden werden. Zum Experimentieren
sollten nur Disketten verwendet werden, auf denen keine wichtigen Daten
stehen, da das Formattieren die Daten auf der Diskette bekanntlich
loescht! Das Formattieren beim Experimentieren kann im Uebrigen
beschleunigt werden, wenn auf ein Verify verzichtet wird (Option -nv).
Normalerweise empfiehlt sich jedoch ein Verify zu Gunsten der
Datensicherheit.
Auf meinem Rechner (mc68000 mit 68010 @ 10 MHz) wird z.B. standard-
maessig mit einem Interleave von 3 formattiert. Wird nun ein Interleave
von 2 verwendet, steigert sich die Zugriffsgeschwindigkeit um 10 bis 20%.
<< Der Standard-Interleave von 3 stammt noch aus den 6809-Urzeiten.
Auch die langsamsten 680xx-Systeme, die mir bisher in die Finger
gekommen sind, schaffen Interleave 2 ohne Probleme. Uebrigens sind
alle EFFO-Disks, die wir formatieren, seit einiger Zeit Interleave 2.
Einige wenige Systeme schaffen sogar Interleave=1 (Gimix, Gepard
und SCSI-Floppies). Solche Disketten sind fuer Andere aber eine
Qual: Statt doppelt so schnell sind sie 6 bis 8 mal langsamer als
gewoehnliche, weil der Controller nach jedem Sektor den unmittel-
bar folgenden Sektor verpasst und eine volle Umdrehung warten muss,
bis er wieder kommt. Darum: Interleave >=2 ist immer unbedenklich,
Interleave 1 ist ok fuer "Hausgebrauch", aber NIE FUER VERSAND VON
DATEN, insbesondere natuerlich auch EFFO-Disks... LZ >>
OS-9 Spezialisten, die den Quellcode des Device Descriptors zur
Verfuegung haben koennen nach erfolgter Bestimmung des Interleave diesen
auch im Descriptor anpassen.
<< Fuer Hacker, der gerne "patchen": Der interleave steht im Byte
bei Offset $58 ab Descriptor-Modul-Beginn. Wer schon OS-9 V2.3 hat,
kann's natuerlich ganz bequem mit dem 'moded' machen... LZ >>
Es ist anzunehmen, dass die Anbieter von OS-9 Systemen jeweils den
besten Interleave bereits im Device Descriptor einbauen (vor allem,
wenn ein eigenes Format definiert wird). So hat das oben genannte
Experimentieren vor allem bei Modifikationen am Rechner einen Sinn,
z.B. wenn die Taktfrequenz des Systems geaendert worden ist.
<< Schoen waer's, aber die Anbieter uebernahmen meist den Uralt-Wert von
3. Ein Herabsetzen auf 2 bringt also vermutlich bei allen etwas. LZ>>
<< Vor kurzem hab ich ein kleines Programm geschrieben zum Messen der
Uebertragungsraten von Diskdrives. Hier waere wohl DIE Gelegenheit
es dem Forum preis zu geben. STP >>
<< Eine weitere Steigerung der Datenrate kann noch durch einen
Track-Offset erreicht werden. Dabei werden die einzelnen Sektoren
auf benachbarten Spuren gegeneinander versetzt, so dass der Kopf beim
Spurwechsel genuegend Zeit bekommt, um auf der neuen Spur gerade
Sektor 0 zu erwischen. Fuer diese Eigenschaft ist aber leider kein
Feld im OS-9 Descriptor vorgesehen: man muss es direkt im Treiber
einbauen. Voraussichtlich auf Forum 15 kommt der Quelltext eines
neuen HD-Floppy-Treibers (fuer die neuen 2 MByte Laufwerke am Gepard),
wo u.a. mit Track-Offset gearbeitet wird. WS >>