2105
17.02.2021, 21:22 Uhr
dl1ekm
|
Z80CPU vs. 64180CPU
Hallo, ich habe mich jetzt noch einmal intensiver mit dem Phänomen der "langsameren" 64180 beschäftigt.
Ausgangsbasis: Z80: - 8MHz Oszillator -> 4MHz an CPU - 4MHz an Phi 64180 - 8MHz Oszillator -> 8MHz an CPU - 4MHz an Phi
Der Logik-Analysator wurde an einem IOE-OUT-Pin, Phi, M1 und eigenen weiteren Bus-Leitungen angeschlossen. Dazu ein kleines Programm (von Steffen), was mir den Pin auf der IOE definiert umschaltet:
Start: ld B,0FFh ld A,0 out (32h),A ;Ausgabe "00" auf Service-IO ld A,B out (32h),A ;Ausgabe "FF" auf Service-IO Loop: ld HL,000FFh Loop2: dec HL ld A,H or A,L jr NZ, Loop2 DJNZ Loop ld A,B out (32h),A ;Ausgabe "00" auf Service-IO
Folgendes ist mir aufgefallen (unabhängig vom Programm): - Die 64180 kommt beim GP2019 nicht mit der Bankumschaltung zurecht. Bei jedem Wechsel stürzt sie ab. Vielleicht liegt das an der MMU bzw. dem Zugriff auf die hinteren Adress-Leistungen? - Die Bildschirm-Ausgabe mit der 64180 ist viel langsamer als mit der Z80 CPU.
Die Messung des Programms mit dem Analysator, wo der Einfluss externer IO-Zugriffe ausgeschlossen ist, hat ergeben: Die Zeit für die High-Pulse ist bei beiden CPUs fast identisch! Also gleich schnell. Aber sollte die CPU nicht doppelt so schnell sein?
Bei normalen Grundprogramm-Betrieb ist mir auch aufgefallen, dass bei der 64180-Karte die M1-Signale um den Faktor 2-3 länger/langsamer sind.
Stellt sich die Frage - warum? Kann dies an den automatischen Waitstates liegen, welche die 64180 einbaut? Ich habe auch etwas von 4 Waitstates gelesen, die immer aktiv sind, wenn man sie nicht abschaltet? Laut Handbuch sind die internen Register der 64180 (32H) nach einem Reset auf 4 Waitstates bei RAM und 3 bei IO-Zugriff eingestellt. Ändern kann man diese internen Register über den Befehl OUT0, der dafür sorgt, dass diese und nicht die externe IO angesprochen wird. Wenn dem so wäre, würde die CPU immer in diesem langsamen Mode verbleiben, oder wie könnte man diesen Port ändern?
Oder kann sonst der Bus irgendwie die CPU zu einem verlangsamten Betrieb bringen, immerhin gibt es in der 64180 ja Mechanismen, welche die externen Schnittstellen aus Kompatibilitätsgründen drosseln....?
Ich würde halt gerne die "Power" der 64180 im NKC nutzen :-) Hat noch jemand eine Idee?
Besten Gruß Marcel Dieser Beitrag wurde am 18.02.2021 um 08:04 Uhr von dl1ekm editiert. |