Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Operationsgeschwindigkeit Kategorie: CC-Pro Unit & Appl.Board (von PeterS - 27.11.2005 0:20)
Als Antwort auf Re: Operationsgeschwindigkeit von Dietmar - 26.11.2005 22:29

> Hallo Peter
>
> > Ah, stimmt das kannst Du ja nicht wissen. Wenn man nur 8bit hat, ist die Welt etwas einfacher.
> Du bist ganz schön arrogant. Ich habe in meinem Leben mehr gemacht als mich "nur" mit 8 Bit CPUs zu
Ich wollte Dich eigentlich nur aufziehen. :-) Wenn Du mir Ineffizienz vorwirfst, und mir dann einen Lösungs-
ansatz nennst, der für die CC-Pro ungeeignet ist, dann kommt das auch bei mir ziemlich arrogant an.

> Für die Entwicklung der Open-M-Unit habe ich bereits über einen Rechenstack im 32-Bit-Format
> nachgedacht. Beim Longinteger-Format und bei Fest- oder FlieÃ?kommazahlen hätte das Vorteile. Die
> Nachteile des langsameren Stackhandlings bei 8 und 16 Bit sind gegenüber dem durch die Interpretation
> erzeugten Overhead minimal. Und da aus Kompatiblitätsgründen für Berechnungen und Ã?bergaben je
> Thread ohnehin nur 7 Stackeinträge zur Verfügung gestellt werden müssen und die Kontroller bis zu 2 KB
> RAM haben, ist auch der Speicherplatz kein Hinderungsgrund. Lokale Variablen auf dem Stack und
> Rekursion sind bei diesem Stackmodell zwar nicht direkt vorgesehen, können aber durch Pointer realisiert
> werden.
Nur zur Information: Aufgrund der verschiedenen Prioritäten der Sprachoperatoren benötige ich bei C und
BASIC im "worst case" minimal 14 Stackeinträge auf dem Arithmetikstack pro Thread und Funktion. Wegen
der Rekursion gibt es auf dem Arithmetikstack keine Begrenzung auÃ?er dem Speicherplatz.

> > Wenn man den Stack auch zur Ã?bergabe verwendet, würde man bei 8Bit Parametern immer 24 Bit verschwenden
> Bei einer Parameterübergabe "by value" wird z.B. auf dem PC normalerweise nur soviel Stackspeicher
> benutzt, wie unbedingt notwendig ist. Bei "by reference" wird dagegen unabhängig vom Format die Adresse
> (ein Pointer) übergeben, die eine GröÃ?e von 32 Bit besitzt.
Eben, wenn ich den Arithmetik Stack zur Ã?bergabe nutzen würde, bräuchte ich pro Parameter 32bit, das
wären dann 24bit "slack" bei jedem Ã?bergabeparameter. Deshalb gibt es einen getrennten Ã?bergabestack
für Aufraufe der nicht 32bit aligned ist, und nur soviel Platz braucht wie tatsächlich benötigt werden.

Gruss Peter


    Antwort schreiben


Antworten:

Re: Operationsgeschwindigkeit (von Dietmar - 27.11.2005 8:16)