Vorab:
Twister (Twister1200 oder auf Unity) ist unseres Wissens nach die
einzige serielle Schnittstellenkarte auf dem Amiga die neben den
üblichen Verfahren AFC anbietet. Warum das so wichtig ist,
wird im Folgenden erklärt.
Etwas Historie und Hintergrundinformation:
Der Amiga war früher dafür bekannt, dass er einen Grossteil
seiner Leistung nicht mit dem Hauptprozessor geboten hat, sondern
mit seinem Chipsatz. Dieser hat eigenständig Tonerzeugung,
Grafik und einiges mehr zur Verfügung gestellt. Leider mussten
die Ingeneure damals aus Kostengründen darauf verzichten u.a.
die Serielle Schnittstelle mit derartiger Eigenständigkeit
auszustatten. Die serielle Schnittstelle besteht daher einmal aus
einer Baugruppe im innern des Chipsatzes und zusätzlich aber
auch aus einem sogennaten CIA oder Portbaustein (CBM8520). Dieser
Baustein wurde bereits etwas verändert im C64 eingesetzt und
ist für den Vorgänger des 68000er Prozessors gebaut worden.
Der 68000er im Amiga muss beim Zugriff auf diese Chips auf 1/10
seiner Geschwindigkeit abgebremst werden.
In den frühen Jahren des Amiga fielen die Mängel durch
sehr langsame Modems nicht auf. Wenn sogenannte Nullmodems betrieben
wurden, waren die Probleme, die dann auftraten, bereits ein Ärgernis.
Während der Chipsatz die Daten liefert, macht der Portbaustein
das Handshake. Er sagt also wann neue Daten kommen, und wann die
Gegenstelle einen Moment warten muss. Beim genauen Hinsehen hakt
es hier recht deutlich. Der Chipsatz bietet immer nur je Platz für
je ein zu empfangenes und abzusendendes Zeichen. Wäre hier
nicht die Zweiteilung der Schnittstelle, könnte der Chipsatz
eigenständig die Daten abholen und absenden. Genau das geht
leider nicht! Es ist Software nötig (ein sogenannter Interrupt-Handler)
die jedes Zeichen von der Schnittstelle abholt bzw. dort anliefert
und nach Bedarf auch der Gegenstelle mitteilt, dass das System derzeit
zu beschäftigt ist, und einen Moment mit Senden gewartet werden
muss. Hier entstehen Probleme:
-
Der Prozessor für jedes Zeichen seinen normalen Arbeitsablauf
unterbrechen. Dies ist selbst für eine moderne CPU mit
einem sehr hohen Aufwand verbunden, da der innere Zustand der
CPU gesichert werden muss und z.B. auch der Cache verloren geht.
Bei 57.600 BPS in nur eine Richtung (beim Surfen ist das bereits
mehr!) passiert diese Unterbrechung fast 6.000 mal pro Sekunde.
Solche Interruptlast "verbrennt" jede Prozessorleistung.
-
Da für das Handshake Software eingesetzt wird, ist es
zwingend nötig, dass diese Software binnen einer 6.000tel
Sekunde anspringen kann oder das empfangene Zeichen binnen dieser
Zeit abgeholt wurde. Beim schlanken Konzept des Amiga ist das
sogar oft möglich diese sogenannte Latenzzeit einzuhalten.
Wohl jeder User dürfte allerdings bereits in Terminalprogrammen
die Fehlermeldung "Hardwarepuffer übergelaufen"
oder ähnlich beobachtet haben. Das ist genau das, was passiert,
wenn die CPU eben nicht rechtzeitig das Zeichen abholen oder
eine Pause signalisieren konnte. Es kam ein Zeichen an, was
in der Hardware nicht gespeichert werden konnte und daher verworfen
wurde.
- Dieser Punkt müsste eigentlich 2b heissen...:Zu diesen
alten Problemen kommt ein weiteres dazu: Ein gut konzipierter
Computer, der auch der Amiga mal war, benutzt die sogenannte Interrupts
nur zur Signalisierung. Es gilt eine Konvention wonach jegliche
Interrupt-Service-Routine nur eine minimale Unterbrechungszeit
verursachen darf. Das Verschieben von Datenströmen läuft
über DMA, den direkten Speicherzugriff der Erweiterung, ab.Leider
ist das Mainboard eines jeden Amiga stark veraltet bzw. unpässlich
geworden. Durch Chipsatzfehler und ungeeignetes Aufrüsten
der Maschinen ist die Möglichkeit verloren gegangen, Zusatzkarten
zu realisieren, die ebenfalls selbständig auf Daten aus dem
Hauptspeicher zugreifen können. Dies ist besonders für
Erweiterungen unglücklich, die einen konstanten Datenstrom
benötigen, wie z.B. jegliche Soundkarten. Damit eine Soundkarte
unterbrechungsfrei spielen kann, muss sie zwangsläufig den
Interrupt zum "Datenschaufeln" einsetzten. Das hat aber
zur Folge, das andere Erweiterungen, die ebenfalls konstante Datenraten
erfordern, insofern darunter leiden, das die Reaktionsverzögerung
auf Interrupt- Anforderungen deutlich ansteigt. Im Amiga, bei
dem unnötigerweise extrem hohe Anforderungen durch die serielle
Schnittstelle gestellt werden, ist es letztlich unzweckmässig
eben diese Schnittstelle überhaupt zu nutzen, da es zwangsläufig
zu erheblichen Fehlerraten kommen muss.
In Hinsicht auf diese schweren Probleme ist es fast schon nebensächlich,
wie hoch die BPS-Raten sind, die die Schnittstelle bieten kann.
Als realer Durchsatz ist sowieso nur ein Bruchteil erzielbar. Bei
dem verwendeten Leitungstreiber ist nach Norm nicht mehr als 115.200
möglich.
Was bieten heutige Schnittstellenbausteine?
Für den Amiga gibt es serielle Schnittstellenkarten, die die
geschilderten Probleme unterschiedlich effektiv beheben können.
Alle neueren Erweiterungen nutzen die Familie 16Cx50 und lassen
sich somit gut vergleichen. Eine grössere Zahl für
das X erweiterte Fähigkeiten bedeutet, die man nutzen kann,
aber nicht muss. Bekannte Bausteine sind der 450, 550, 650, daher
wird der 16450 der hier mal Generation 1 genannt.
-
Generation: Der 450 ist in alten PCs im Einsatz,
bei denen man sich beim PC wundert, warum trotz 115.200 BPS
nur die Daten mit 10% der möglichen Bandbreite durch das
Kabel tröpfeln. Ein nicht besonders attraktiver Chip.
-
Generation: Der 550 bietet je 16 Zeichen Puffer
zum Senden und Empfangen. Wenn man ihn denn voll nutzen könnte,
bräuchte die CPU nur noch für alle 16 Zeichen einmal
im Arbeitsablauf unterbrochen werden. Zumindest beim Senden
funktioniert das auch gut. Beim Empfangen machte man jedoch
die Erfahrung, dass man letztlich wieder fast jedes Zeichen
einzeln abholen muss, damit auch die Puffer-Überlauf-Fehler
im Rahmen bleiben. Natürlich sollte die Serielle nun ja
auch schneller betrieben werden, als alte Lösungen. Die
CPU-Last erweist sich schon beim Surfen mit einem einfachen
Modem als noch immer sehr hoch.
-
Generation: Mit diesen Erkenntnissen wurde der 650er
Baustein gebaut. Erstmals in dieser Serie waren Sende und Empfangspuffer
hardwaremässig mit den Handshakeleitungen der Schnittstelle
verbunden. Weiterhin wurde die Grösse des Puffers auf je
32 verdoppelt. Wenn der Chip bemerkt, dass er keine Zeichen
mehr empfangen kann, kann er der Gegenstelle unmittelbar eine
Pause signalisieren. Die Arbeit der CPU und Software beschränkt
sich darauf zu warten, dass Sende- bzw. Empfangspuffer mittels
Interruptanforderung einen bestimmten Füllstand über-
bzw. unterschreiten und dann Daten zu verschieben. Das Verfahren
nennt sich automatic data flow control oder auf deutsch:
automatische Datenflusssteuerung. Während die Bufferung
nun optimal und mit minimaler CPU-Last funktionerte, wurde ein
weiteres Problem bemerkt. Gegenstellen, die ihr Handshake sehr
langsam machen (z.B. ein DSP in einem Modem, der das nebenbei
macht) verursachen unnötige Pausen im Datenstrom. Dieses
wiederum setzt die Gesamtübertragungsleistung herab. Wenn
eine höhere BPS-Rate angewählt werden kann, lässt
sich das oft verschmerzen, da der erwünschte Durchsatz
erreicht wird. Manchmal geht das aber eben z.B. bedingt durch
das Modem nicht.
-
Generation: Wiederum aus diesen Erfahrungen wurde der
750 konzipiert. Neben der Verdopplung der Puffer auf
je 64 Zeichen ist bei diesem Baustein das Auto-Flow so erweitert
worden, dass letztlich eine Anpassung an die Gegenstelle
möglich ist. Das Resultat ist ein gleichmässigerer
Datenstrom. Nicht im Amiga verwendet, da wenige DM teurer.
-
Generation: Der 850 stellt das derzeitige Flaggschiff
der Familie da. Allerdings wurde lediglich die Grösse des
Buffers nochmals auf je 128 Zeichen verdoppelt. Der Grund dafür
war der Bedarf die Last, die die IRDA-Schnittstelle, die beim
750 eingebaut wurde, nochmals zu reduzieren. Das Autoflow Konzept
funktioniert perfekt und lässt sich wohl nichtmehr
verbessern. Aus Kostengründen nicht nicht im Amiga verwendbar.
Was bietet welche Amiga-Karte?
Dazu wollen wir uns nicht mehr äussern, da es viel Geschrei
darum gab. Festzustellen bleibt nur, dass Twister die einzige
Erweiterung ist, die wenigstens sowohl den 16C650 einsetzt, als
auch Treibersoftware besitzt, die die Auto-Flow-Fähigkeiten
auch aktiviert. Zusätzlich besitzt sie wie nur eine deutlich
teurere Karte einen Leitungstreiber, der typisch 691.200 BPS sicher
überträgt. Da dem einfachen User die Notwendigkeit von
Autoflow offenbar nicht klar ist, und somit ein höherer Preis
zum Verkaufsnachteil wird, musste auf den Einsatz des 750 und 850
bislang leider verzichtet werden, da er die Karten um weitere 10,-
DM verteuert. Wie bereits angedeutet, kann es bedingt durch ein
langsames Modem dazu kommen, dass die Übertragungsleistung
zu wünschen übrig lässt. In diesem Fall kann man
mit einem Tool Auto-Flow ausschalten. Im Genuss des grossen Pufferspeichers,
verglichen mit dem 550, bleibt man dennoch.
Ein Blick zu anderen Computern:
Wer erwartet, dass andere Computersysteme moderne Chips als Hardware
nutzen, wird zumindest beim heutigen PC eines Besseren belehrt.
Es gab zwischenzeitlich tatsächlich mal Geräte, die den
Chip benutzen, den auch Twister benutzt (16C650). Da ein normaler
User das offensichtlich mangels Kenntnis preislich nicht würdigt,
sind gute Lösungen nur noch als teure Zusatzkarten erhältlich,
die bei Profi-Usern sehr beliebt sind, weil fast beliebig viele
Ports stabil und mit relativ wenig Systemlast betreibbar sind. Die
Macs haben seit den ca. 1991 Bausteine im Einsatz, die eigenständig
die Daten in den Hauptspeicher transportieren. In den PowerMacs
waren so störungsfreie Übertragungsleistungen mit 230.400
BPS bis hoch auf knapp 1.000.000 BPS bei sehr hohem Nutzungsgrad
möglich (heute ist dort nur noch USB on Board).
|