Beiträge von 1ST1 im Thema „Zwei CPUs -umschaltbar- im Amiga500/1000“

    Wir drehen uns im Kreis. So richtig verwertbare Aussagen kann ich eh nur machen wenn ich das interne Schaltbild einer 68k CPU kennen würde.
    Aber lass uns einfacherhalb (für die Mitleser ohne wirklichen Hintergrund) darauf einigen das es eine schlechte Idee ist einfach die Spannungsversorgung zu kappen weil dann ein Haufen Dreckeffekte losgehen.
    CPU in definiert HALT-Zustand bringen ist die beste Wahl.

    Darauf können wir uns einigen!

    Schaltet ein 68000 im Halt-Zustand eigentlich das E-Signal ab?

    </fangfrage>

    Diese Fangfrage wird dir das Datenblatt sicher beantworten: Bitte melde dich an, um diesen Link zu sehen.

    Doch, das liegt quasi auf Masse. Miss doch mal von so einem Chip den Widerstand vom VCC-Eingang zu Masse. In so einem Chip sind tausende solche CMOS-Gatter drin, alle zwischen VCC und Masse parallel geschaltet. Der Gesamtwiderstand aller Gatter ist sehr klein. Und damit liegt ein unbeschaltes VCC quasi auf Masse. Erst bei höherer Spannung auf VCC finden die CMOS-Gatter in ihren Zustand Leitend oder sperrend. Nur um diese Spannung aufzubauen, reicht es nicht ein paar mA über einen Signaleingang reinzuschicken.

    Ja, richtig, solche Schutzschaltungen sind sehr oft an den Eingängen, und da wird dann auch sofort klar, wenn man VCC abklemmt, und dieses VCC in dem Chip über tausende Parallelschaltungen ("Der Gesantwiderstand einer Parallelschaltung ist kleiner als der kleinste Einzelwiderstand") tausender Gatter "virtuell" gegen Masse gezogen wird: Die obere Diode wird bei einem positiven Eingangssignal leitend und stellt eine Verbindung zu dieser "virtuellen Masse" dar. Diese Diode geht mitunter wegen Überlastung kaputt und/oder das ganze Eingangssignal wird auf Masse gezogen, solange bis der Schaltausgang eines anderen ICs "aufgibt", sprich kaputt geht.

    Aber schau dir auch mal das farbige Bildchen eines FET an, auch da ist zwischen Gate und Source ein P-N-Übergang - also eine Diode! Solange zwischen Drain und Source eine Spannung anliegt, ist der Gate-Source-Bahnwiderstand dieser Diode sehr hoch, sobald aber die Spannung an Drain weg ist, ändert sich das.

    CPU abschalten nur darüber dass man sie anhält. Dann braucht die auch nur ganz wenig Strom. Und warum das so ist, kann ich dir auch erklären:

    So ein CMOS-Gatter besteht im wesentlichen aus zwei Feldeffekt-Transistoren, die in Reihe zwischen VCC und Masse geschaltet sind. Im Normalfall ist davon immer einer durchlässig (leitend) und der andere sperrt. Der Ausgang des Gatters ist die Verbindung zwischen den beiden Feldeffekttransitoren (FET). Angesteuert werden die beiden FETs jeweils über ihre Steuereingänge, die Gate (Tor, Steuereingang) genannt werden, wobei beide Gates miteinander verbunden sind, so dass nur eine Spannung benötigt wird. (Die beiden anderen Anschlüsse eines FET heißen "Source" (Elektronnenquelle***) und "Drain" (Elektronenabfluss***), die Verbindung zwischen Source und Drain heißt "Kanal", und das Gate macht je nach anliegender Streuerspannung den Kanal eben durchlässig, oder nicht. Achtung:) Damit das so funktioniert, das heißt, dass ein FET geschlossen ist, und der andere offen, sind die beiden FETs von unterschiedlichem Typ, das heißt mal ist das Gate positiv und der Kanal negativ dotiert, mal umgekehrt. So is der eine FET ein "Selbstsperrender" Typ, der andere "Selbstleitend". Das heißt, wenn man beide Gates auf VCC schaltet, schaltet der eine durch, und der andere sperrt. Lege ich Masse an die Gates, wechseln die beiden FETs ihre Rolle das heißt der erste macht zu, der zweite macht auf. Wenn oben der offen ist, und unten der zu, dann habe ich am Ausgag VCC. Umgekehrt, ist der obere zu und der untere offen, dann habe ich am Ausgang Masse. Das heißt ich kann die digitalen Zustände High und Low darstellen:

    Oberer FET zu + unterer FET offen: Ausgang Low
    Oberer FET offen, unterer FET zu: Ausgang high

    Da in diesen Zuständen immer ein FET zu ist, gibts keine direkte Verbindung zwischen VCC und Masse, über die Strecke der beiden FETs fließt kein Strom. Der Strom kann eigentlich nur fließen, wenn der Ausgang High ist und wenn am Ausgang was dran hängt, über das ein Strom fließen kann ("Verbraucher"). Die Gate-Eingänge sind übrigens extrem hochohmig, so dass also wenn zwei CMOS-Gatter hintereinander geschaltet sind, dass auch über den Ausgang des ersten Gatters kaum ein Strom fließt. Im Gegensatz zu Bipolartransistoren sind FETs nicht Strom, sondern Spannungs-gesteuert. Solange man einen dieser beiden Schalt-Zuständ behält, bleibt das auch so, es fließt kein Querstrom (mal abgesehen von einem minimalen Leckstrom). Interessant ist dann aber der Schaltvorgang, wenn die Gates von Low nach High oder umgekehrt geschaltet werden. Das geht nämlich nicht unendlich schnell, wie ein ideales Rechtecksignal, sondern diese Flanken sind in der Praxis nicht ganz rechteckig, das heißt es gibt an den Gates einen mehr oder weniger "langsamen" Spannungswechsel:

    FET1 FET2
    0% 100% (eigentlich: 99,yyy%, 0,xxx%)
    10% 90%
    20% 80%
    30% 70%
    40% 60%
    50% 50%
    60% 40%
    70% 30%
    20% 80%
    10% 90%
    0% 100% (eigentlich:0,xxx% 99,yyy%)

    Man sieht, während des Schaltvorgangs sind beide Transitoren leitend, besonders 50-50 ist kritisch, da fließt von VCC über den oberen FET durch den unteren FET direkt der höchste "Querstrom" - siehe die rot markierte Linie in der Schaltungsskizze. Wenn man sich da den Querstrom in Abhängigkeit des Schaltzustandes ansieht, kommt eine "Gaußche Glockenkurve" dabei raus, siehe zweite angehängte Grafik. Und je öfters man schaltet (Taktfrequenz steigern), um so öfters passert das. Das erklärt dann, warum ein Prozessor im angehaltenen Zustad keinen - bzw. - siehe die Klammerangabe bezüglich Leckströme, parasitäre Widerstände und Kapazitäten usw. - nur ganz wenig Strom braucht ("Schlafzustand, man kennt das ja auch von Notebooks im Ruhezustand), und warum Intel, AMD usw. bei ihren Taktfrequenzorgien so einen imensen Kühlunsgaufwand treiben müssen.

    Deswegen: Der CPU nicht VCC und Masse wegnehmen, sondern einfach über das entsprechende Signal anhalten.

    Anmerkung zu den beiden Sternchen oben
    *** Bezüglich Source und Drain: Man könnte jetzt denken - und den Fehler mache ich auch immer wieder... :( - Source wäre oben wo Plus ist, und Drain ist unten, wo Masse ist. Man muss aber "Technische" und "Physikalische" Stromrichtung voneinander unterscheiden, die Elektronen fließen in Wirklichkeit von Minus nach Plus!

    Könnte, könnte, nichts als Spekulation... Wenn ein Chip in einer Schaltung vorhanden ist, und keine Spannung bekommt, aber der Rest der Schaltung schon, dann wird das zu unvorhergesehenen Effekten führen. Denn die Signale an der CPU sind doch da, und sie belasten die von extern geschalteten Signale wahrscheinlich sogar mehr, als wenn die CPU eingeschaltet wäre. Denn wenn die CPU im Halt-Zustand wäre, würde sie ihre Ausgänge stabil auf einem Logik-Level halten. Wenn sie aus ist, könnten diese Pins flattern, oder die Signale komplett auf Low ziehen, oder die Spannungen versuchen über diese Signale verkehrt herum in die CPU "hinein zu kriechen" und würden mitunter die CPU und/oder die Bausteine, welche die Signale außen schalten, zerstören. Auch bei Eingangssignalen einer CPU kann sowas passieren, dass z.B. ein CMOS-Gatter zu einer Diode Richtung Masse wird. Denn wenn man sich mal ein paar CMOS-Gatter aufmalt (und weiß wie Feldeffekttransistoren aufgebaut sind), wird man mit geübtem Blick und dem Wissen über den Merksatz "Bei einer Parallelschaltung ist der Gesamtwidertsnad kleiner als der kleinste Einzelwiderstand" festsellen, dass die nicht vorhandene Versorgungsspannung der CMOS-Gatter im Prinzip auf Masse liegt. Damit werden dann Gatter-Ein- und Ausgänge zu einfachen Dioden Richtung Masse - nehmt mal eine Platine eines Amigas oder einen 68000 (ausgeschaltet) und messt mal den Widerstand zwischen Masse und 5V (...) - Das Verhalten kann man Verhalten mittels Methoden der Elektronik-Analyse sogar für einfache Gatterschaltungen einigermaßen berechnen, aber nicht für eine ganze 68000-CPU, zu komplex...

    Fazit: Falsche Herangehensweise!

    Wenn ich _BR vom Sockel über den Schalter der jeweiligen CPU zuführe, erspar ich mir die Wiederstände, da ja nur das echte Signal, oder eben GND zugeführt wird, oder?
    VPA werd ich noch messen...
    Wenn das mit _BR verbunden ist, dann halt 2 Pins hochbiegen...

    schubl

    Ja so etwa, BR bzw. HLT darf nur nicht offen sein. Ich würde es aber nicht über einen Schalter am langen Kabel legen, das könnte Laufzeitprobleme geben. Eher würde ich das BR-Signal über ein entsprechendendes Gatter schalten.

    Genau das macht das "HLT" Signal der 680x0-CPUs, und auch bei anderen CPUs gibt es sowas. HLT steht für Halt, das heißt, sobald dieses Signal (auf Low) gesetzt wurde, stoppt die CPU ihre laufenden Aktivitäten (spätestens nach Ausführung des gerade noch laufenden Befehls) und koppelt sich intern vom CPU-Bus ab.

    Im Prinzip das selbe passiert ja auch bei DMA-Zugriffen von Peripherie-Chips, welche bei eigenen Aktivitäten (Soundausgabe, Floppy/Festplattenzugriffe, Videoausgabe (!) (Stichwort "Slow-Ram" beim Amiga) die CPU kurzzeitig anhalten, um ihre eigenen Speicherzugriffe zu machen. Das kann man über das HLT-Signal realisieren, aber auch über andere Methoden.

    Man sollte nur nicht auf die Idee kommen, die CPU im laufenden Betrieb umschalten zu wollen, denn in der aktuellen Situation hat die noch aktive CPU ja einen internen Zustand (Register, Programmzähler, Flags, usw.) gespeichert, welche die andere CPU ja garnicht kennt! Ein System-Absturz wäre die Folge.

    Aber davon mal abgesehen, zwischen einem 68000 und einem 68010 mit gleichem Takt umzuschalten ist ja wohl kaum der Bringer!