# Trommelspeicher

Der Trommelspeicher (englisch drum memory) war eine frühe Form der Datenspeicherung in Computersystemen, die in den 1950er und bis in die 1960er Jahre weit verbreitet war und das Funktionsprinzip der Festplatte vorwegnahm. Die Methode wurde 1932 in Österreich von Gustav Tauschek entwickelt, am 1. Juli 1933 meldete er seine Erfindung als „Elektromagnetischer Speicher für Zahlen und andere Angaben, besonders für Buchführungseinrichtungen“ beim Deutschen Reichspatentamt an und erhielt darauf das Patent DRP 643803. In vielen frühen Computersystemen wurde der Hauptarbeitsspeicher durch ein solches Trommelsystem gebildet, auf dem Daten und Programme während der Berechnung gehalten wurden. Trommelspeicher wurden später und bis zur Einführung des Halbleiterspeichers durch Kernspeicher ersetzt, die schneller waren, wahlfreien Zugriff zuließen und ohne bewegte Teile auskamen.

## Funktionsweise

Ein Trommelspeicher besteht aus einem rotierenden Metallzylinder, der an der Außenfläche mit einem ferromagnetischen Material beschichtet ist. Man kann sich die Funktion wie bei einer Festplatte vorstellen, nur dass die Daten auf einem Zylindermantel statt einer flachen Scheibe gespeichert sind.
Ein wesentlicher Unterschied zur Festplatte ist, dass beim Trommelspeicher üblicherweise für jede Spur ein eigener Schreib-Lesekopf existiert.
Zum Ende der Entwicklung wurden – beispielsweise beim TR 440 – als „Trommel“-Speicher auch Magnetplatten eingesetzt. Diese hatten einen Durchmesser von über einem Meter. Auch dabei hatte jede Spur (der Trommel bzw. der Platte) einen eigenen Schreib-/Lesekopf.
Daher sind keine Kopfbewegungen und Suchzeiten erforderlich, um eine bestimmte Spur anzufahren. Die Zugriffszeit zu einem bestimmten Datensatz bei einer Trommel ist also kleiner, die Steuerung muss nur warten, bis die gewünschten Daten unter dem richtigen Lesekopf erscheinen. Die Leistung des Trommelspeichers wird demnach fast ausschließlich durch seine Rotationsgeschwindigkeit bestimmt, während bei einer Festplatte auch die Geschwindigkeit der Kopfpositionierung einfließt.
Der Systemtakt wurde mitunter durch einen speziell dafür vorgesehenen Lesekopf generiert, dessen Spur ein fest magnetisiertes Muster enthielt. Hierdurch konnte der synchrone Datenzugriff bei der Befehlsausführung des Programms sichergestellt werden.
Wenn diese Systeme als Hauptspeicher eingesetzt wurden, war der Durchsatz das entscheidende Problem. Programmierer bemühten sich daher oft, Code und Daten kunstvoll optimiert auf der Trommel anzuordnen, um die Zeitspanne für den Zugriff auf die jeweils nächste Instruktion oder den nächsten Datensatz zu minimieren. Dazu wurden Ausführungszeiten genau bestimmt und die Daten dann so positioniert, dass der nächste Datensatz genau zum richtigen Zeitpunkt einen Lesekopf passierte. Dieses Prinzip wurde als Interleaving auch später noch bei Festplatten angewandt – dort aber als fester Faktor, um die Datenrate an die Verarbeitungsgeschwindigkeit des Rechners anzupassen.

## Programmierung

Ein Rechner mit Trommelspeicher als Arbeitsspeicher wurde wegen der hohen Zugriffszeiten mithilfe eines Speicherbelegungsplans programmiert, der als Matrix aller auf der Trommel vorhandenen Speicherelemente angelegt war. Im Befehlscode war die Trommeladresse des nachfolgend auszuführenden Maschinenbefehls angegeben, um nach der über eine Tabelle der Befehlslaufzeiten ermittelten Ausführungszeit möglichst früh den nächsten Maschinenbefehl zu erreichen. Diese rechnernahe, mühsame Programmierung ist mit der Entwicklung der Hardware bereits ca. 1965 durch die Nutzung höherer Programmiersprachen wie Algol 60 abgelöst worden.

## Leistung

Typische mittlere Leistungswerte von Trommelspeichersystemen:
* mittlere Zugriffszeit: 10 ms
* mittlere Datenrate: 10 Mbit/s
* Speicherkapazität: 10 Mbit (1,25 MB, ≈ 1,19 MiB)