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

Benchmark CC-Pro Kategorie: CC-Pro Unit & Appl.Board (von PeterS - 1.12.2005 2:30)


Hallo,

ich bin den Wünschen entgegengekommen und habe DIE HARDs Benchmark auf die CC-Pro umgesetzt.
Lediglich Instruction 44 + 45 gibt es in dieser Form nicht direkt bei der CC-Pro. Vielleicht das PULSEOUT
in einer Form doch, ich habe aber nicht alles in den Timer Routinen selbst entwickelt, so daÃ? ich da
noch Grübel. Ich habe jeden falls nicht 53 sondern 51 auf INSTRUC addiert, so kommt es dem Nahe was
DIE HARD im Benchmark miÃ?t.

Man vergleicht hier nur Ã?pfel mit Birnen. Im Benchmark gibt es z.B. kein Select/Case Statement, wie es die
CC-Pro (und darin auch optimiert wurde) kennt um abhängig von Werten Anweisungen auszuführen wie z.b.

Select Case a+2
   Case 1
       b=b*2
   Case 5*5
       b=b+2
   Case 100 And &Hf
       b=b/c
   Else
       b=b+2
End Case

Auch sind in der CC-Pro die Bytecodes weniger spezialisiert, da das unterstützte C/BASIC globale und lokale
Variablen kennt, multidimensionale Arrays. Alles das verlangt eigene Bytecodes, das zur Folge hat, das die
CC-Pro für manche Konstrukte mehr Bytecodes braucht als die CC1. Die 51 Instruktionen im Benchmark
werden bei der CC-Pro zu 460 Bytecode Befehlen kompiliert.

Ich habe es auch schon früher gesagt, die Features Flie�komma-Arithmetik, Multithreading, Interpreter IRQs,
Debuggen zur Laufzeit, Sprachkonstrukte wie globale und lokale Variablen, rekursive Funktionsaufrufe,
multi-dimensionale Arrays, PostIn- Dekrement in C, Funktionszeiger, Zeiger auf Arrays etc... kosten alle
Resourcen an Zeit in der Ausführung, und Platz als Flashspeicher für den Interpreter. Wer auf das alles
verzichten kann, der sollte aus Kostengründen zur CC1 greifen. Es sei denn er braucht auch noch mehr
Flashspeicher (ca. 110kb stehen in der M128 für das Applikationsprogramm zur Verfügung), oder mehr RAM
(bis zu 63kb mit externem RAM bei der M128).
Es sollte auf jeden Fall nicht nur die Geschwindigkeit das ausschlaggebende sein!


Auf der M128 habe ich einen Wert von 38097 I/s pro Sekunde gemessen. Das ist dann mehr als doppelt
soviel wie bei der CC1. Ja ich wei�, die läuft mit 8 Mhz und DIE HARD mu� zum genauen Vergleich
TOG LED und PULSEOUT LED rausnehmen und nur 51 auf INSTRUC addieren.

Warum werden im Benchmark eigentlich für die For/Next Schleifen 9 Instruktionen gezählt? Verstehe ich
nicht. Und was hat der DEACT in einem Benchmark zu suchen?

Aber ich wette, irgendjemandem konnte ich auch mit diesem Benchmark nicht alles recht machen und
der wird sich dann hier beschweren.

Gruss Peter


-------   Benchmark ------

Dim text(30) As Char
Dim ticks,INSTRUC As Word

Sub IRQ1()
ticks=ticks+1
Irq_GetCount(INT_TIM2COMP)
End Sub

Sub main()

    Port_DataDirBit(PORT_LED1,PORT_OUT)
    ADC_Set(ADC_VREF_VCC,0)
    Irq_SetVect(INT_TIM2COMP,IRQ1)

text="Running...."
        Msg_WriteText(text)


Do While True

           BMX()

Msg_WriteWord(INSTRUC)
End While
End Sub

Sub BMX()
Dim WORDVAR,tab(1) As Word
Dim BO,BYTEVAR,COUNTER As Byte
Dim WCOUNTER As Integer

tab(0)=0
INSTRUC=0
ticks=0
Lab BMXRUN
BO=True                         'INSTRUCTION 1
BO=False                        'INSTRUCTION 2
'----------- BYTE OPERATIONS ----------------------
BYTEVAR=BYTEVAR+BYTEVAR       'INSTRUCTION 3
BYTEVAR=BYTEVAR << 4          'INSTRUCTION 4
BYTEVAR=BYTEVAR*BYTEVAR       'INSTRUCTION 5
BYTEVAR=BYTEVAR/BYTEVAR       'INSTRUCTION 6
BYTEVAR=BYTEVAR-BYTEVAR       'INSTRUCTION 7
BYTEVAR=tab(0)                'INSTRUCTION 8

'---------- WORD OPERATIONS --------------------------
WORDVAR=WORDVAR+WORDVAR       'INSTRUCTION 9
WORDVAR=WORDVAR << 4          'INSTRUCTION 10
WORDVAR=WORDVAR*WORDVAR       'INSTRUCTION 11
WORDVAR=WORDVAR/WORDVAR       'INSTRUCTION 12
WORDVAR=WORDVAR-WORDVAR       'INSTRUCTION 13
WORDVAR=tab(0)                'INSTRUCTION 14
'---------- LOOPS ------------------------------------
For WCOUNTER=1 To 10          'INSTRUCTION 15-24
Next
For WCOUNTER=1 To 10          'INSTRUCTION 25-34
Next
'---------- FLOW CONTROL -----------------------------
Goto JUMP                     'INSTRUCTION 35
Lab JUMP
If BYTEVAR=0 Then             ' INSTRUCTION 36
Goto JUMP1
End If
Lab JUMP1                     ' INSTRUCTION 37
If WORDVAR=0 Then
Goto JUMP2
End If
Lab JUMP2

JSR()                     'INSTRUCTION 38+39
'---------- I/O OPERATIONS ---------------------------
    Port_WriteBit(PORT_LED1,PORT_ON)  'INSTRUCTION 40
    Port_WriteBit(PORT_LED1,PORT_OFF) 'INSTRUCTION 41
    Port_WriteBit(PORT_LED1,BO)       'INSTRUCTION 42
WORDVAR=ADC_Read()                'INSTRUCTION 43
'TOG LED                          'INSTRUCTION 44
'PULSE LED                        'INSTRUCTION 45
Port_Write(PortD,&Hff)            'INSTRUCTION 46
Port_Write(PortD,0)               'INSTRUCTION 47
Port_Write(PortD,BYTEVAR)         'INSTRUCTION 48
'was hat DEACT in einem Benchmark zu suchen?
Port_DataDirBit(PORT_LED1,PORT_OFF) 'INSTRUCTION 49
Port_DataDir(PortD,PORT_OFF)        'INSTRUCTION 50
        '---------------------------------------------------
If ticks>=100 Then             'INSTRUCTION 51
Return
End If
INSTRUC=INSTRUC+51            'INSTRUCTION 52
Goto BMXRUN                   'INSTRUCTION 53
End Sub

Sub JSR()
End Sub


    Antwort schreiben


Antworten:

Re: Benchmark CC-Pro (von Henrik - 1.12.2005 12:21)
    Re: Benchmark CC-Pro (von Bernd - 1.12.2005 14:08)
        Re: Benchmark CC-Pro (von Dietmar - 2.12.2005 7:41)
            Re: Benchmark CC-Pro (von Bernd - 2.12.2005 9:36)
                Re: Benchmark CC-Pro (von PeterS - 2.12.2005 11:01)
                    Re: Benchmark CC-Pro (von Walter - 6.12.2005 13:10)
                       Re: Benchmark CC-Pro (von PeterS - 6.12.2005 13:41)
                          Re: Benchmark CC-Pro (von Walter - 12.12.2005 15:25)
                             Re: Benchmark CC-Pro (von PeterS - 12.12.2005 18:10)
                             Re: Benchmark CC-Pro (von Bernd - 12.12.2005 16:28)
                                Re: Benchmark CC-Pro (von Bernd - 12.12.2005 16:31)
                                   Re: Benchmark CC-Pro (von Walter - 12.12.2005 18:11)
                                     Re: Benchmark CC-Pro (von Bernd - 13.12.2005 10:51)
                    Re: Benchmark CC-Pro (von Bernd - 2.12.2005 14:48)
Re: Benchmark CC-Pro (von DIE HARD - 1.12.2005 12:00)
Re: Benchmark CC-Pro (von Dietmar - 1.12.2005 8:25)