Forum: Mikrocontroller und Digitale Elektronik STM32 Cortex-M4 instruction set: SADD8


von Leo B. (luigi)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe gerade ein paar sehr interessante Befehle gefunden. Einer davon 
ist der SADD8 Befehl.
Den Auszug aus dem Datenblatt habe ich mal angehängt.
Meine Frage (ich kanns so schwer testen) ist ob der Befehl das tut, was 
ich denke?

Beispiel:
auszug aus der core_cm4_simd.h
1
/*------ CM4 SIMD Intrinsics -----------------------------------------------------*/
2
__attribute__( ( always_inline ) ) static __INLINE uint32_t __SADD8(uint32_t op1, uint32_t op2)
3
{
4
  uint32_t result; 
5
  __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
6
  return(result);
7
}
mainfile:
1
[...]
2
int main( void )
3
{
4
    uint32_t op1 = 0x0102F1FF;
5
    uint32_t op1 = 0x10200F11;
6
    uint32_t res = __SADD8( op1, op2 ); // = 0x11220010 ???
7
}
('Quick n' Dirty'-Fehler bitte überlesen, ich glaube man versteht was 
ich meine oder?)
Also in einem Befehl werden 4 mal je 2 Bytes addiert?

Oder verstehe ich das jetzt falsch?
Vielen Dank

von BMS (Gast)


Lesenswert?

http://de.wikipedia.org/wiki/Flynnsche_Klassifikation#SIMD_.28Single_Instruction.2C_Multiple_Data.29

Ja da wird eine Operation an mehreren Daten gleichzeitig ausgeführt.
Beim PC nennt sich das SSE bzw jetzt AVX.
Wenn ich mich nicht täusche gab es sogar einen STM32, bei dem die 
Register 64 bit waren, also da kannst du dann 8x8Bit operationen 
durchführen.

von Leo B. (luigi)


Lesenswert?

Cool Danke!

SIMD (Single Instruction, Multiple Data)
mir geht ein licht auf. Jetz verstehe ich auch wofür das steht ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.