Bussystem

CBM-Bus

aus Wikipedia, der freien Enzyklopädie

Wechseln zu: Navigation, Suche

Der CBM-Bus ist ein von Commodore für ihre Heimcomputer-Serie entwickelter serieller Bus.

Er ist eine proprietäre serielle Variante des IEEE-488-Busses und dient zum Anschließen von Peripheriegeräten (hauptsächlich Diskettenlaufwerke und Drucker). Der Bus fand sich in den Commodore-Heimcomputern vom VC-20 bis zum C128, während die professionellen PET/CBM-Rechner den parallelen IEEE-488-Bus verwendeten.

Der CBM-Bus wurde in der Literatur der 1980er-Jahre oft auch als (serieller) IEC-Bus bezeichnet. Dies ist aber nicht korrekt, da der CBM-Bus nicht durch die International Electrotechnical Commission standardisiert war.

Inhaltsverzeichnis

[Bearbeiten] Kennzeichnung

Im Unterschied zu IEEE 488 (amerikanisch) oder dem IEC-625-Bus (international) erfolgt die Datenübertragung beim CBM-Bus seriell. Dadurch werden weniger Signalleitungen erforderlich, so dass Einsparungen bei den Ein/Ausgabe-Chips als auch an den Kabeln und den zugehörigen Steckverbindern möglich wurden.

[Bearbeiten] Anzahl der nutzbaren Geräte

Theoretisch können bis zu 15 Geräte angeschlossen werden (wobei jedes Gerät ab dem zweiten kettenartig an das jeweils vorige angeschlossen wird), das Betriebssystem nutzte davon 12 Geräteadressen (4 bis 15) aus. Die Anzahl war üblicherweise völlig ausreichend.

Üblicherweise wurden die Adressen 4 und 5 für Drucker verwendet, 6 für Plotter, und 8 bis 11 für Laufwerke. Diese Zuordnung ist dem Computer selbst jedoch nicht bekannt; so war es etwa durchaus möglich, den Computer anzuweisen, ein Programm auf den Drucker zu "speichern", was zum Ausdruck eines "Zeichensalats" führte.

Die Nummern 0 bis 3 waren für "unintelligente" Peripheriegeräte ohne eigene CPU reserviert, die nicht über den CBM-Bus angeschlossen wurden: 0 für die Tastatur, 1 für die Datasette, 2 für Modems und andere über RS-232 angeschlossene Geräte und 3 für den Bildschirm. Das Betriebssystem sendet daher diese Gerätenummern nicht auf den Bus, sondern verwendet die jeweiligen internen Zugriffsroutinen.

[Bearbeiten] Steuerchip MOS 6522

Erkauft wird der Preisvorteil des seriellen Aufbaus durch eine stark verringerte Übertragungsgeschwindigkeit. Da der verwendete Steuerchip MOS Technology VIA (MOS 6522) sich kurz vor dem Verkaufsstart des VC-20 als fehlerhaft in der Serialisierungs- und Parallelisierungseinheit herausstellte, musste diese Aufgabe durch eine in kürzester Zeit "zusammengeflickte" und suboptimal programmierte Firmware vom Prozessor übernommen werden, wodurch die Geschwindigkeit nochmals stark absank. Durch den kleinen Speicher dieses Rechners und die dementsprechend geringe Größe seiner Programme fiel die niedrige Ladegeschwindigkeit jedoch beim VC-20 noch nicht so stark ins Gewicht.

[Bearbeiten] Steuerchip MOS CIA

Obwohl der C64, im Unterschied zum VC-20, die in dieser Hinsicht fehlerfreien CIA-Chips (MOS 6526) verwendete, wurde aus Gründen der Rückwärtskompatibilität zum VC-20 und zu dessen Floppy VC1540, von der noch große Lagerbestände vorhanden waren, weiter die suboptimale Softwareversion des Busses verwendet. Auch wurde im speziell für den C64 geschaffenen Diskettenlaufwerk VC1541 weiterhin nicht der CIA, sondern der billigere, aber fehlerhafte VIA-6522-Chip verbaut. Da beim C64 der Prozessor vom Videochip einmal je Textzeile für jeweils 40 Taktzyklen angehalten wird, musste die Busgeschwindigkeit im Vergleich zum VC-20 sogar noch weiter abgesenkt werden, damit der C64 während dieses Haltezustandes kein Bit verpassen konnte. Im Zusammenhang mit dem sehr viel größeren Speicher dieses Rechners stiegen die Ladezeiten für umfangreiche Programme in den Bereich mehrerer Minuten an.

[Bearbeiten] Turbotreiber

So wurden diverse externe Turbo-Lösungen zur schnellen Floppy-Ansteuerung beim C64 über seine CIA-Chips populär. Diese verwenden entweder zusärtliche Hardware (Parallelkabel) oder stark optimierte Busprotokolle auf der vorhandenen Hardware, wobei gleichzeitig die GCR-Dekodierung der Daten, die Datenflusskontrolle und die softwaremäßige Serialisierung und Deserialisierung verbessert waren. Indem bei diesen sogenannten Schnell-Ladern stets der Computer, statt dem jeweils sendenden Partner, den Bustakt vorgab, entfiel auch das Problem der im Haltezustand verpassten Bits.

Die meisten kommerziellen Programme verwendeten eine Vorgehensweise, bei der zunächst ein kleines Startprogramm mit der Standardmethode geladen wurde, welches dann in den RAM-Speicher von Computer und Laufwerk zueinander passende Routinen zum schnelleren Busbetrieb ablegte. Mit Hilfe dieser Routinen wurde dann der Rest des Programms mit hoher Geschwindigkeit geladen.

Es gab auch Dauerlösungen, die auch bei eigenen Programmen ohne weitere Arbeit ein schnelles Laden ermöglichten. Oft waren diese in Form eines Steckmoduls für den Computer realisiert; dies enthielt direkt die computerseitige Routine für den schnellen Busbetrieb, während die laufwerksseitige Routine jeweils vor dem Laden automatisch an das Laufwerk übermittelt wurde. Andere Lösungen verwendeten auf beiden Seiten um entsprechende Routinen erweiterte ROMs, welche direkt in Computer und Laufwerk eingebaut wurden. Diese Lösungen waren aufwändiger, erreichten aber die beste Leistung. Gängige Hardware-Lösungen waren z.B. SpeedDOS und DolphinDOS.

Frühe Schnell-Lader erreichten ca. fünffache Ladegeschwindigkeiten, raffiniertere spätere Varianten schafften bis zu 25- oder 30-fache Geschwindigkeit.

[Bearbeiten] Der schnelle CBM-Bus auf dem C128

Erst auf dem C128 wurde endlich die lange geplante hardwaremäßige Serialisierung genutzt und somit die Busgeschwindigkeit bereits ab Werk auf einen erträglichen Wert gesteigert. Voraussetzung ist die Verwendung der speziellen C128-Laufwerke VC1570, VC1571 oder VC1581, da bei diesen auch auf Laufwerksseite der fehlerfreie CIA-Chip zum Einsatz kommt.

[Bearbeiten] Weblinks

Copyright © 2005-2010 Hardware-Aktuell. Alle Rechte vorbehalten.