movts/movfs vs ldr/str: parmeterising functions

Any technical questions about the Epiphany chip and Parallella HW Platform.

Moderator: aolofsson

movts/movfs vs ldr/str: parmeterising functions

Postby notzed » Fri Mar 28, 2014 1:49 pm

It was alluded to in another thread (the object recognition one) that movts/movfs just go through the external mesh. Are they physically the same then as simply issuing a ldr/str via a global memory address to the current core? Specifically, in terms of performance (assuming all else being equal such as the target address is already in a register).

The reason I ask is that having the specific register names in movts/movfs make parameterising functions a bit bulky because it requires specific code for each case. The mainly affects dma routines. Because the timer stuff uses different bits of the config register it doesn't help much there.
notzed
 
Posts: 331
Joined: Mon Dec 17, 2012 12:28 am
Location: Australia

Re: movts/movfs vs ldr/str: parmeterising functions

Postby aolofsson » Sat Mar 29, 2014 3:48 pm

There are some subtle differences in the hardware, but in general..YES you can just use the global address:
The exception is the STATUS and CONFIG register which must be accessed through the MOVTS/MOVFS instructions.

Example:
https://github.com/adapteva/epiphany-li ... reg_read.c
User avatar
aolofsson
 
Posts: 1005
Joined: Tue Dec 11, 2012 6:59 pm
Location: Lexington, Massachusetts,USA

Re: movts/movfs vs ldr/str: parmeterising functions

Postby notzed » Mon Mar 31, 2014 9:04 am

Ok interesting, thanks again.
notzed
 
Posts: 331
Joined: Mon Dec 17, 2012 12:28 am
Location: Australia


Return to Epiphany and Parallella Q & A

Who is online

Users browsing this forum: Google [Bot] and 16 guests

cron