Warum liegt die erzeugte Taktfrequenz bei 6,144 MHz, aber intern (8085-Prozessor) werden nur 3,072 MHz verwendet. Auch was zu dem spezifischen Wert von 6.144 in einer Uhr führt.
Ich habe bei Yahoo eine Antwort gefunden .... http://answers.yahoo.com/question/index?qid=20080810090119AAurr2i
aber ich muss zugeben, dass ich es immer noch nicht gut verstanden habe. Könnte jemand von euch bitte ein paar Zeilen darüber streichen?
8085
microprocessor
clock
loxxy
quelle
quelle
Antworten:
Ein Grund, einen Takt durch zwei zu teilen, besteht darin, eine Rechteckwelle mit einem gleichmäßigen Tastverhältnis von 50% zu erhalten. Es kann sein, dass der 8085 intern beide Taktflanken verwendet und nicht funktioniert, wenn eine Hälfte des Zyklus viel kürzer ist als die andere.
In den Tagen, als der 8085 neu war, waren diese netten Oszillatoren in Dosen nicht üblich, und die Leute schusterten oft Uhrenkreise aus diskreten Kristallen, Kondensatoren und Logikgattern zusammen. Durch Teilen durch zwei wird sichergestellt, dass Sie gleichmäßig aufsteigende und abfallende Flanken haben.
Wie bei 6,144 MHz werden Sie feststellen, dass es durch eine ganze Zahl geteilt werden kann, um gemeinsame Baudratenwerte zu erhalten, mindestens bis zu 38400.
nachverfolgen ...
Wenn man sich ein Intel-Datenblatt für den 8085 ansieht, gibt es drei interessante Aussagen
Spekulationen über die Verwendung der ungeraden Kanten der Uhr, um Dinge intern beiseite zu schieben, zeigen, dass Intel bei der Entwicklung des 8085 die Notwendigkeit eines speziellen Taktsteuergeräts durch die Integration dieser Funktion in den Chip ersetzte. Teilen Sie die X1-X2-Zeitbasis in zwei Hälften, bevor Sie sie als CLK ausgeben, um sicherzustellen, dass das System einen schönen, gleichmäßigen Arbeitszyklus erhält, wenn nichts anderes.
quelle
Zu der Zeit, als dieser Chip entworfen wurde, verwendeten die Leute so wenig Transistoren wie möglich in der CPU, um sie klein genug zu machen, um auf die verfügbaren Chips zu passen.
Ich vermute, dass praktisch jedes "Register" (sowohl für Programmierer sichtbare Befehlssatzregister als auch interne Mikroarchitektur-Latches) in einer CPU dieser Ära Daten in einem transparenten Gatter-D-Latch oder ähnlichem gespeichert hat . Heutzutage gibt es viele Transistoren auf einem Chip, so dass es einfacher ist, Voll-Master-Slave-D-Flip-Flops zu verwenden, obwohl sie doppelt so viele Transistoren verwenden.
Viele Befehle nehmen Daten aus einem Register A, kombinieren sie mit anderen Daten mit der ALU und speichern das Ergebnis in Register A. Dies ist ziemlich einfach, wenn Register A mit einem vollständigen Master-Slave-D-Flip-Flop implementiert ist.
Wenn jedoch Register A ein transparentes Gatter-D-Latch ist, benötigen Sie nicht überlappende Takte. Sie verwenden einen Impuls für einen Takt, um ein Zwischenergebnis irgendwo zu speichern (während Register A seinen Ausgang konstant hält), und dann einen Impuls für einen anderen Takt, um Register A mit dem neuen Wert zu laden (während das Zwischenregister seinen Ausgang konstant hält).
Dies erfordert einen 2-Phasen-Takt. Der einfachste Weg, eine nicht überlappende 2-Phasen-Uhr herzustellen (in jenen Tagen, als die Transistoren knapp waren), war ein kleiner externer Schaltkreis, der einen Eingangstakt aufnimmt und diesen durch zwei teilt.
Mit der Zeit fanden die Leute heraus, wie man immer mehr Transistoren auf einen IC packen kann. Leute, die CPUs entwerfen, integrieren immer mehr Dinge rund um die CPU in einem vollständigen Computersystem auf den CPU-Chip.
Wenn ich zwischen den Zeilen des Wikipedia-Artikels über Taktsignale lese , habe ich den Eindruck, dass die Leute, die den 8085 und den 6502 und andere Chips dieser Zeit entworfen haben, nur wenig mehr Platz hatten als die vorherige Generation integrierter CPUs, und sie entschieden sich für die besten In diesem Raum wurde der kleine externe Stromkreis auf den Chip gesetzt. Aber sie behielten alle Register die gleiche mit einem Gatter versehene D-Verriegelung wie zuvor.
Deshalb wird die Taktfrequenz durch zwei geteilt. Sie können sich vorstellen, dass der erste externe Takt einen Impuls für das interne Taktsignal phase_one generiert, um dieses Zwischenergebnisregister zu aktualisieren, und dass der zweite Impuls des externen Takts einen Impuls für das interne Taktsignal phase_two generiert, um das für den Programmierer sichtbare Register zu aktualisieren.
quelle
Es gibt viele Gründe, den Befehlszyklus in mehrere Taktzyklen aufzuteilen. Ein gutes Beispiel ist der Zugriff auf den Hauptspeicherbus.
Die meisten modernen Prozessoren sind Von-Neumann-Architekturen. Das heißt, ihr Code und ihre Daten befinden sich beide auf demselben Speicherchip. Wenn Sie eine Anweisung lesen möchten und diese Anweisung eine Variable aus dem Speicher lädt, sind das zwei Speicherzugriffe. Der meiste Speicher ist jedoch nur ein einziger Port (dh es kann nur ein Lese- oder Schreibvorgang pro Zyklus ausgeführt werden). Wie lesen Sie die Anweisung und Ihre Variable?
Die Lösung besteht darin, einen zweistufigen Anweisungszyklus zu verwenden. Die erste Stufe holt den Befehl aus dem Speicher und die zweite Stufe kann dann die Variable aus dem Hauptspeicher lesen (oder schreiben!).
Einige ältere Chips gingen noch weiter. Wenn Ihr Chip früher über einen adressierbaren 16-Bit-Speicher verfügte, der externe Adressbus jedoch nur 8-Bit-Speicher ist, sind Sie mit dem Address Latch Enable vertraut. Ein Taktzyklus sendet die oberen 8 Bits der 16-Bit-Adresse und der nächste Taktzyklus sendet die unteren 8 Bits. Ein dritter Zyklus könnte dann die Variable aus dem / in den Speicher lesen / schreiben.
Es gibt andere, bessere Gründe für einen Befehlszyklus, der mehrere Taktzyklen lang ist. Einer der besten Gründe ist das Pipelining. Dies ist ein Trick, mit dem moderne Prozessoren alle in einem Chip verfügbaren Ausführungseinheiten besser ausnutzen können. Während beispielsweise ein Befehl ausgeführt wird, wird gleichzeitig der nächste abgerufen.
quelle
Intern benötigt der Kern des 8085A einen zweiphasigen Takt. Die interne Logik, die die beiden Taktphasen ableitet, teilt auch den Eingangstakt durch zwei. Wie bereits erwähnt, ist der Grund für die Verwendung eines 6,144-MHz-Eingangstakts die Baudrate. Bei 6 MHz läuft der Chip einwandfrei. Der Chip ist für 3 MHz ausgelegt und erfordert einen 6-MHz-Quarz, arbeitet jedoch zufriedenstellend mit 6,144 MHz, was eine einfachere Baudratenerzeugung ermöglicht Bereitstellung vieler verwendbarer Baudraten). Ich benutze diese archaischen Chips immer noch, um spezielle Funktionen in einigen meiner Roboter auszuführen. Ich takte die Uarts mit einem eigenen Oszillator und die 8085A mit einem 6,4-MHz-Oszillator, der den Chip mit 3,2 MHz betreibt. Die 3. 2MHz teilt sich gut auf, um den 40KHz-Takt für meine Ultraschallwandler bereitzustellen. Es ist sinnvoller, modernere IC-Geräte in meinen Bots zu verwenden, aber ich habe eine Menge alter 8085er, Z80er, 63C09er und 63C09er, 68B09er und 68B09er usw., mit denen ich wirklich gerne spiele.
quelle
Die Uhr ist nichts anderes als ein Moment, in dem ein Ereignis eintreten soll. Jetzt bevorzugen wir keine Pegel-Triggerung in digitalen Schaltkreisen, da bei längerer Zeit eine Wechselwirkung zwischen verschiedenen Schaltkreisen im Mikroprozessor auftreten kann, die zu Kurzschlüssen führt. Also setzen wir auf EDGE TRIGGERING. Jetzt weiß der Mikroprozessor nicht, wann eine Flankentriggerung stattgefunden hat. Es versteht nur 1 oder 0. Ein Flip-Flop muss also immer dann 1 und 0 erzeugen, wenn eine Taktflanke erkannt wird. Somit wird es notwendig, ein Flipflop zu verwenden. Infolgedessen wird die Taktfrequenz durch zwei geteilt.
quelle