Author |
Message |
KennuX
|
|
Post subject: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 07:09 PM
|
|
Retrohling
Joined: Aug 06, 2009
Posts: 26
Status: Offline
|
|
Moin leute, wie ihr sicher schon bemerkt habe arbeite ich seit einiger Zeit an einem GBA Emulator. Ich brauche nun hilfe.
Es geht um die CPU, eine ARM7TDMI CPU mit 16,77 Mhz.
Hier sind meine Fragen:
-Wie oft wird der Assemblierte Code durchgeführt (1x oder immer wieder, da ich keine Jump Anweisungen sehe)
-Wie Programmiere ich einen Code, der die CPU genau 16,77 Mhz laufen lässt? Bzw, was ist die Mhz angabe genau?
Das war's auch schon für's erste ^^
Ich hoffe auf eure Antworten und schonma danke im Vorraus |
|
|
|
|
|
krysmopompas
|
|
Post subject: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 07:41 PM
|
|
Retrogott
Joined: Jun 19, 2008
Posts: 2.094
Status: Offline
|
|
|
|
|
mateyo
|
|
Post subject: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 07:42 PM
|
|
Retromeister
Joined: Jul 16, 2008
Posts: 1.736
Location: Frankfurt am Main
Status: Offline
|
|
falls dir hilft...
16,77 Mhz = 1 / (6*10^-8 s) sprich: 16,77 Mhz = 1 / 6ns (nano sekunde)
Und die Mhz Zahl gibt die Anzahl der Taktimpulse pro Sekunde an. Sprich das ganze ist eine Frequenz.
Jetzt würd ich mir wünschen das ich in Rechnersysteme besser aufgepasst hätte... aber ich meine das sich damit die Anzahl der auszuführenden Operationen pro Sekunde beschreiben lassen.
Wie programmierst du das, du musst dem Emulator eine sogenannte CLOCK angeben... Mehr dazu findest du hier
http://de.wikipedia.org/wiki/Taktsignal
edit: krysmo hat recht eine operation kann auch mehr als einen takt benötigen... ich depp >_< |
|
|
|
|
|
|
Post subject: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 07:58 PM
|
|
Ex-Member
Joined: Feb 28, 2005
Posts: 3.561
Location: überall und nirgends
|
|
Nicht zu vergessen die Speicher- und Buszugriffzyklen usw. Für gute Emulation unabdingbar. |
|
|
|
|
|
KennuX
|
|
Post subject: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 08:04 PM
|
|
Retrohling
Joined: Aug 06, 2009
Posts: 26
Status: Offline
|
|
Grade beim überfliegen einer anderen CPU Source kam mir der Befehl BX [rm] entgegen welcher das Register 15 verändert (Register 15 zeigt auf die Stelle des aktuell zu interpretierenden Code).
Also läuft der Assembler Code nur 1x durch und springt eben mit dem BX Befehl?
Und das mit den Takts verstehe ich nicht wirklich, hat also jede Instruktion eine bestimmte Ausführungszeit (Takt) ? |
|
|
|
|
|
|
Post subject: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 08:20 PM
|
|
Ex-Member
Joined: Feb 28, 2005
Posts: 3.561
Location: überall und nirgends
|
|
Ja, z.B. bei früheren CPUs konntest davon mit Sicherheit ausgehen das Multiplikationen wesentlich langsamer waren wie Bitshifts, weshalb gewiefte Programierer diese u.U. damit ersetzt haben.
Von Cache-Hit/Misses und Branch Predictions wollen wir auch erstmal nit anfangen |
|
|
|
|
|
KennuX
|
|
Post subject: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 08:24 PM
|
|
Retrohling
Joined: Aug 06, 2009
Posts: 26
Status: Offline
|
|
hmm, hat jemand evtl noch ne Liste wieviele Takts welche Instruktion hat?
Wenn ich die takts ja nicht einbauen würde, würde die CPU ja viel zu schnell laufen ^^ |
|
|
|
|
|
mateyo
|
|
Post subject: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 08:25 PM
|
|
Retromeister
Joined: Jul 16, 2008
Posts: 1.736
Location: Frankfurt am Main
Status: Offline
|
|
erklärung zu dem bild auf wikipedia vielleicht hilft dir das auch... die y-achse zeigt die spannung an. beispielsweise 5 volt.
und die x-achse die zeit t.
wenn jetzt datengesendet werden also 1 und 0 werden in diesen intervallen die du mit der clock abfrägst sozusagen. (also die zeit in deinem fall 1/6ns) geschaut wann zieht er hoch auf 5 v (also 1) oder wann auf 0v (also 0).
das ist das sogenannte rechtecksignal. |
|
|
|
|
|
|
Post subject: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 08:26 PM
|
|
Ex-Member
Joined: Feb 28, 2005
Posts: 3.561
Location: überall und nirgends
|
|
Hast Du das Datenblatt vom ARM? Unbedingt notwendig, da steht z.B. genau sowas drin. |
|
|
|
|
|
krysmopompas
|
|
Post subject: Re: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 08:31 PM
|
|
Retrogott
Joined: Jun 19, 2008
Posts: 2.094
Status: Offline
|
|
[quote:e6f34e68ff="KennuX"]hmm, hat jemand evtl noch ne Liste wieviele Takts welche Instruktion hat?
Oben ist die ARM Doku verlinkt. Aber schau genau, was deine CPU ist. |
|
|
|
|
|
KennuX
|
|
Post subject: Re: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 08:57 PM
|
|
Retrohling
Joined: Aug 06, 2009
Posts: 26
Status: Offline
|
|
okay, das mit den Takts wäre nun auch vom Tisch. Nun noch ein weiteres, was ist bei der Ram Emulation ein "Cylcle"?
Hat der Ram auch eine Cpu die in einem bestimmten Zyklus durchläuft oder was? |
|
|
|
|
|
mateyo
|
|
Post subject: Re: CPU Emulation - Brauche Hilfe
Posted: Aug 16, 2009 - 09:19 PM
|
|
Retromeister
Joined: Jul 16, 2008
Posts: 1.736
Location: Frankfurt am Main
Status: Offline
|
|
|
|
|
krysmopompas
|
|
Post subject:
Posted: Aug 16, 2009 - 09:40 PM
|
|
Retrogott
Joined: Jun 19, 2008
Posts: 2.094
Status: Offline
|
|
|
|
|
|
Post subject: Re: CPU Emulation - Brauche Hilfe
Posted: Aug 17, 2009 - 10:05 AM
|
|
Ex-Member
Joined: Feb 28, 2005
Posts: 3.561
Location: überall und nirgends
|
|
[quote:e50e092f28="KennuX"]okay, das mit den Takts wäre nun auch vom Tisch. Nun noch ein weiteres, was ist bei der Ram Emulation ein "Cylcle"?
Hat der Ram auch eine Cpu die in einem bestimmten Zyklus durchläuft oder was?
Nein. Die Speicherzugriffszeiten sind doch auch von Belang.
- welche Spec ansich hat der Speicher des Systems
- wie arbeitet der Speichercontroller des jew. Systems, beim NDS wären da z.B die Zugrifftimings auf BIOS, WRAM VRAM, OAM usw. unterschiedlich
(anderes Beispiel z.B. beim SNES FastROM/SlowROM)
- ob u. wenn ja wie lange blocken Speicherzugriffe den Systembus oder die CPU, unterstützen ja nicht alle Systeme DMA.
Buszugriffszeiten können auch davon abhängen welche Adressen angesprochen werden. Hier und in allen anderen Fällen hilft nur sich so viel Hardwaredoku und Specs zu beschaffen wie nur irgendwie geht auch der Speicherkomponenten und dann das Systemabbild erstmal abstrakt zu designen. |
|
|
|
|
|
KennuX
|
|
Post subject: Re: CPU Emulation - Brauche Hilfe
Posted: Aug 17, 2009 - 12:57 PM
|
|
Retrohling
Joined: Aug 06, 2009
Posts: 26
Status: Offline
|
|
Also, gestern habe ich meine Ram Emulation komplett neu geschrieben und habe jetzt für jeden Ram-Zugriff eine bestimmte Zahl an waitCycles. waitCycles habe ich auch als Private Variable in dieser Klasse definiert, und diese wird bei jedem Zugriff mit den waitCycles die der Zugriff braucht beschrieben. Nun noch eine weitere Frage:
Ich habe die CPU Emulation nun fertig in meinem Projekt drinne, aber aus irgendeinem Grund beschreibt die CPU den Grafik ram nicht :/ |
|
|
|
|
|
|