| Re: Operationsgeschwindigkeit Kategorie: CC-Pro Unit & Appl.Board (von Dietmar, http://ccintern.dharlos.de - 25.11.2005 14:27) | |
|
Als Antwort auf Re: Operationsgeschwindigkeit von PeterS - 25.11.2005 13:18
| |
|
Hallo Peter > Wie schon mehrfach beschrieben, ist die Portausgabe nicht hoch optimiert und benötigt 5 Bytecodes. Ich habe mir den vom Compiler erzeugten Bytecode kurz angesehen. Wenn ich das richtig deute, dann ist der Zugriff auf Ports deshalb langsam, weil Biblioheks-Routinen benutzt werden. Bereits für die Ã?bergabe der zwei Parameter werden vier Bytecode-Instruktionen benötigt. Wie schnell die Biblioheks-Routine arbeiten, läÃ?t sich nur vermuten. Die CC1-kompatiblen Kontroller besitzen Befehle zum Portzugriff bereits im eingebauten Befehlsumfang und sind deshalb im Vorteil. Es kann natürlich vermutet werden, daÃ? alle per Bibliothek implementierten Funktionen eine ähnlich schlechte Performance aufweisen. > Und wie auch schon geschrieben, sollte der Bedarf da sein (zumindest für Rechtecksignale nicht) so > kann ich einen spezialisierten Bytecode einbauen. Dann würde das Beispielprogramm nur 5 Bytecodes > benötigen. Das wären dann schon 48.000 Durchläufe/s. Dieser Rechnung kann ich nicht ganz folgen. Jetzt besteht die Schleife aus 5*4+1 Bytecode-Instruktionen und daher sollte das Programm nach Deiner Rechnung 30000*(5*4+1)/240000 = 2.625 Sekunden benötigen. Nach Deinen Messungen sind es aber 4.99 Sekunden. > Der Löwenanteil an der Abarbeitung eines Bytecodes sind der Bytecode Fetch und Sprung in die Bytecode > Routine. Dies ist bei einer Harvard Architektur wie dem Atmel Risc eine zeitlich kostspielige Sache. Alleine > ca. 30 Taktzyklen gehen dafür drauf. Das ist keine Frage der Architektur. Die 6808-CPU ist dabei auch nicht schneller. Ã?brigens werden auch in den relevanten Codeteilen der B-Control etwa 35 Taktzyklen benötigt. Dietmar Meine Seite: http://ccintern.dharlos.de | |
Antwort schreiben Antworten: | |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

