Pufferplatine für PAK68/3 und Panther/2





















Was ist eine Pufferplatine?
Die Pufferplatine, auch nur kurz PuPla genannt, trennt den PAK-Bus vom Mainboardbus ab. Dabei wird der komplette Adress- und Daten-Bus, sowie einige Steuersignale gepuffert.

Wozu brauche ich eine Pufferplatine?
Es gibt zwei Hauptgründe für eine Pufferplatine:
Stabilitätsprobleme
  • unvorhersehbare (auch unter Umständen häufigere) Abstürze; einfach so oder nachdem der PAK-Takt erhöht wurde, eine FRAK/? hinzugekommen ist, nach längerem Betrieb oder erhöhten Umgebungstemperaturen, nachdem der Mainboardtakt erhöht wurde
  • 11-Bomben-Abstürze in Programmen mit FPU-Unterstützung
  • Probleme im DMA-Bereich
Panther/2 und Netzwerkkarte
(nur PuPla/2)
Der Panther/2-ISA-Adapter enthält lediglich die ISA-Interruptlogik, kann also nur einen anliegenden ISA-Interrupt melden, aber nicht auf dem Mainboard auslösen. Die neue PuPla/2 enthält nun die nötige Schaltung, um einen Mainboard-Interrupt auszulösen und den ausgelösten Interrupt zu quittieren. Der Busadapter des Panther/2 kann das leider nicht alles selbst übernehmen, weil die nötigen Leitungsunterbrechungen nicht auf der Platine vorhanden sind. Wären diese Unterbrechungen vorhanden, könnte man den Busadapter des Panther/2 aber nicht mehr als Aufstecklösung auf einen DIL-68000er Prozessor verwenden, wenn man die CPU nicht auslöten will. Außerdem ist die Logikkapazität der GALs auf dem Busadapter des Panther/2 dafür nicht mehr ausreichend.

Technisches: Hintergrund der Stabilitätsprobleme
Die PuPla wurde entwickelt um zwei grundsätzliche Probleme einer PAK mit dem (langsamen) Mainboard zu beheben:
  • Buslast
    Da die CPU der PAK, wie alle Prozessoren auch, eine relativ geringe Treiberleistung hat, wirkt sich die erhöhte Last auf den Adress- und Datenleitungen (PAK-Peripherie, optionale FRAK/? und Mainboard) nachteilig auf die Erwärmung des Chips aus. Dazu kommt noch, daß die CPU bei höheren Takten sowieso schon größeren thermischen Belastungen ausgesetzt ist. Irgendwann wird es dann einfach zu warm, und der Rechner stürzt ab.

  • Timingprobleme
    Die PAK kennt zwei grundsätzlich verschiedene Buszyklen:
    • lokale Buszyklen, die nur PAK-intern ablaufen, von denen also im besonderen das Mainboard nichts mitbekommt, und
    • Mainboardzyklen, bei denen Daten vom Mainboardbus gelesen oder auf den Mainboardbus geschrieben werden.
    Dabei sind die Daten- und Adressbusse aber identisch, das Busprotokoll wird lediglich über einige Steuersignale abgewickelt. Deshalb kann es bei den Mainboardzyklen zu einem Problem kommen, wenn Daten aus dem Mainboard gelesen wurden und direkt anschließend ein lokaler PAK-Zyklus folgt. Die PAK gibt nämlich sofort nach dem (für sie abgeschlossenen) Mainboardzyklus wieder "Gas", um keine Zeit zu verlieren. Es kann nun passieren - gerade bei höheren PAK-Takten - daß die Bustreiber des (langsamen) Mainboards noch eingeschaltet sind, wenn der lokale PAK-Zyklus beginnt. Das Mainboard stört damit also den Datentransfer auf der PAK. So kann es zu einem Absturz kommen (in der Regel 2-4 Bomben); falls der PAK-Zyklus ein FPU-Befehl war, gibt es die berüchtigten 11-Bomben, das heißt das FPU-Problem ist ein Sonderfall des Mainboardtiming-Problems.
Um diese beiden Probleme in den Griff zu bekommen, wurde die Pufferplatine entwickelt. Zum einen entlastet sie die CPU, weil sie wie ein Verstärker der Bussignale wirkt, zum anderen entkoppelt die PuPla den PAK-Bus vollständig vom Mainboardbus. Nach einem Mainboardzyklus schließt die PuPla einfach ihre "Tore" und so kann das Mainboard nicht mehr den PAK-Bus beeinträchtigen.

PuPla/1, PuSTE und PuPla/2
Es gibt mittlerweile drei Versionen der Pufferplatine:
  • Die PuPla/1, welche jetzt nach Erscheinen der neuen Pufferplatine den Zusatz "/1" bekommen hat, um sie besser unterscheiden zu können. Diese erste Version der Pufferplatine wurde noch von MW electronic produziert und ist mit DIL-Treiber-ICs und einem 16v8-GAL bestückt. Leider sind die frühen Logikgleichungen der PuPla/1 noch nicht so gut gewesen, wie sie hätten sein können. Auch die Platinenqualität ließ streckenweise zu wünschen übrig, so daß hier leider häufig so große Probleme auftraten, daß der Einsatz einer PuPla/1 keine Besserung brachte. Mittlerweile ist aber auch die PuPla/1 mit der aktuellen GAL-Gleichung und den zugehörigen Modifikationen zu einem brauchbaren Hilfsmittel geworden.
  • Die PuSTE ist eine Spezialversion der PuPla/1, die einen integrierten PLCC-DIL-Adapter besitzt, so daß der Einsatz in den "E"-Modellen der ST-Serie ohne einen separaten CPU-Bauformadapter möglich ist. Die PuSTE wurde von Robert Rohlfing ebenfalls für MW electronic entwickelt und hat sogar ein paar kleine Vorteile gegenüber der PuPla/1, da sie ein 20v8-GAL zur Steuerung besitzt. Aber auch hier sind noch DIL-Treiber-ICs verwendet worden und um eine Möglichkeit zu schaffen, die Platine im Rechner (MSTE) anschrauben zu können, ist die Platinengröße recht beachtlich ausgefallen. Leider hat die PuSTE aber trotz Verschraubung meistens so immense Kontaktprobleme im PLCC-Sockel des Mainboards, daß mit der PuSTE in den meisten Fällen kein befriedigendes Ergebnis erzielt wird. Deshalb raten wir bei Verwendung eines Mainboards mit PLCC-CPU-Sockel zu einer Radikalkur: Entfernen des Sockels, einlöten von SIL-Sockelstreifen und Verwendung eines PLCC-DIL-Adapters mit IC-Adapterstiften (Vorsicht! Dieser Umbau sollte aber nur von erfahrenen Lötkolbenakrobaten durchgeführt werden!).
  • Die PuPla/2 ist eine komplette Neuentwicklung auf der Basis der PuPla/1. Die CPU-Bauform ist auch hier wieder DIL. Aber die Bestückung erfolgt in SMD-Technik, lediglich die beiden 20v8-GALs liegen in DIL-Bauform vor. So ist eine erstaunlich kleine Platine entstanden: die PuPla/2 ist nur knapp größer als ein DIL-68000er Prozessor! Auch die Platinen sind wie schon beim Panther/2 und GABI in der gewohnten, ausgezeichneten Qualität der Jenaer Leiterplatten GmbH (die übrigens auch das Milan-Mainboard fertigen). Aber es hat sich nicht nur mechanisch etwas getan, auch "unter der Haube" ist einiges passiert. So hat die PuPla/2 jetzt zwei 20v8-GALs, eines für die Steuerung der Pufferfunktionen und eines für die Interruptlogik. So ist es jetzt möglich geworden, das Adresslatch der PuPla/2, anders als bei der PuPla/1, über einen Mainboardzyklus hinaus bis zum nächsten Mainboardzyklus zu halten. Die PuPla/1 hat zwischen zwei Mainboardzyklen die Adressleitungen nicht gelatched gehalten (für die nicht-Elektrotechniker: "latchen" nennt man den Vorgang ein Signal, das durch einen Treiber geleitet wird, "festzuhalten", so daß es nicht mehr auf Änderungen am Treibereingang reagiert sondern konstant bleibt). So sind die Adresswechsel der lokalen PAK-Buszyklen auch im Mainboard "zu sehen" gewesen. Dieses Verhalten führt natürlich durch die völlig überflüssigen Signalwechsel zu ebenso überflüssigen Störungen im Mainboard. Die PuPla/2 stellt diesen Zustand nun ab. Weiterhin ist an Neuerungen zu verzeichnen, daß die PuPla/2 nun komfortabel über Jumper konfiguriert wird. Auch das vom Panther/? kommende Signal "vadr", das nötig war, wenn eine PuPla/1 unter dem Panther/? betrieben wird, ist bei der PuPla/2 nicht mehr nötig. Hier wird nun einfach über einen Jumper der PuPla/2 eingestellt, ob ein Panther/? ober- oder unterhalb der PuPla/2 arbeitet. Der Betrieb nur mit 68000er-CPU ist nun ebenfalls möglich, um die Interruptbestätigungslogik für den Panther/2 und Netzwerkkarten auch den Nutzern ohne PAK zur Verfügung zu stellen.

Zuletzt geändert am 08.03.2007, RS