ARM

10

Interactions between ARM and NEON

mai

This post is a translation of “Intéractions entre NEON et l’ARM

As I said sooner, NEON has a specific instruction queue for up to 16 instructions before blocking the functioning of the ARM. This queue raises many questions!
How an NEON instruction using a ARM register (such as memory access, for example) can it be done long after its decoding while ensuring that its address register was unchanged in the meantime.
How the transfer (VMOV) between ARM registers and NEON registers works ?
What are interactions between NEON and VPF?
So many questions for which I have not found answers in the documentation. It does not matter! A great shot of tests, I finally found a beginning of explanation.

more...
 | Tags:
09

Intéractions entre NEON et l’ARM

mai
1 Comment »   Posted by Etienne SOBOLE |  Category:ARM, Assembleur, Code

Le fait que NEON dispose d’une file d’instructions spécifique pouvant accueillir jusqu’à 16 instructions avant de bloquer le fonctionnement de l’ARM soulève de nombreuses interrogations !
Comment une instruction NEON utilisant un registre ARM (comme un accès mémoire par exemple) peut-elle être exécutée longtemps après son décodage tout en garantissant que son registre d’adresse (registre ARM donc) n’a pas été modifié entre temps.
De la même manière comment fonctionnent les échanges (VMOV) entre des registres ARM et des Registres NEON ?
Quelles interactions existent ils entre NEON et VPf ?
Autant de questions pour lesquels je n’ai pas trouvé de réponses dans la documentation. Ce n’est pas grâve! A grand coup de tests j’ai fini par trouvé un début d’explication.

more...
 | Tags:
17

Focus on branch instructions.

avr

This post is a translation of “Focus sur les instructions de branchement.

The branch instruction of the Cortex A8 is a rather complex instruction.
I realized a lot of tests to be able to better manage this instruction into the cycle counter.
Here is a summary of the results obtained. Of course, as usual, there is a lot of speculation in what I say. But in the absence of more explicit documentation about the Cortex, I am forced to rely on observation in order to understand a little better branch operation.

more...
16

Focus sur les instructions de branchement.

avr
3 Comments »   Posted by Etienne SOBOLE |  Category:ARM, Assembleur, Code

L’instruction de branchement du Cortex A8 est une instruction assez complexe.
J’ai réalisé pas mal de tests afin de pouvoir la gérer au mieux dans le compteur de cycle.
Voilà donc les résultats des essais que j’ai fait. Evidemment, comme d’habitude, il y a pas mal de spéculations dans ce que je raconte. Mais, à défaut de documentation plus explicite sur le Cortex, je suis bien obligé de m’appuyer sur des constatations pour en déduire un postulat quant à son fonctionnement.

more...
09

Ebola: the first test and return to square one

avr

This post is a translation of “Ebola : premiers essais et retour à la case départ

It’s been a little while now that I’ve tested my idea of ​​a language.
I just had not time to speak about it…

Finally, after mature reflection, my language is passed in the trash in favor of a assembler editor.

more...
09

Ebola : premiers essais et retour à la case départ

avr
1 Comment »   Posted by Etienne SOBOLE |  Category:ARM, Assembleur, Code, Ebola, Projets

Ca fait un petit bout de temps maintenant que j’ai testé mon idée de créer un langage.
J’avais juste pas eu le temps d’y revenir…

Finalement, après mures réflexions, mon langage est passé à la casse au profit d’un éditeur Assembleur.

more...
01

#0: Begin programming assembler with gcc

avr

This post is a translation of “#0: Débuter la programmation Assembleur avec gcc

I was asked several times how to begin programming in assembler on ARM and where to find documentation or tutorials.
It is true that this is not so easy to find information begins when the ARM assembler.
On the one hand, the ARM is a specialized processor, on the other, the assembler language is not too fashionable these days (which is a shame).

So I told myself, “go!” If I can help new adventurers to embark on the adventure.

more...
01

#0: Débuter la programmation Assembleur avec gcc

avr

On m’a plusieurs fois contacter pour me demander comment faire pour débuter la programmation en Assembleur sur ARM et où trouver de la documentation ou des tutoriels.
Hors, il est vrai que ce n’est pas si simple de trouver de l’information lorsqu’on débute l’assembleur ARM.
D’un coté, l’ARM est tout de même un processeur un peu spécialisé, de l’autre, l’assembleur n’est plus trop un langage à la mode de nos jours (ce qui est bien dommage).

Donc je me suis dit, “allez hop”, autant essayer d’aider quelques aventuriers à se lancer dans l’aventure.

more...
30

In the bowels of NEON

mar

This post is a translation of “Dans les entrailles de NEON

By performing some tests on NEON operations, I realized that I spent next to a super important thing when I realized the cycle counter.
I assumed (wrongly) that NEON (and VPf) used the same pipelines as the ARM but different functional units.
In reality, the cortex do not works like that and it makes the cycle counter a bit more complex to correctly count a NEON code.

more...
 | Tags: ,
30

Dans les entrailles de NEON

mar
3 Comments »   Posted by Etienne SOBOLE |  Category:ARM, Assembleur, Code

En réalisant quelques tests sur les opérations NEON, je me suis rendu compte que j’étais passé à coté d’un truc hyper important lorsque j’ai réalisé le compteur de cycles.
En fait j’ai supposé (à tord) que NEON (et VPf) utilisaient les mêmes pipelines que l’ARM mais des unités fonctionnelles différentes.
En réalité, ce n’est pas du tout comme çà que le Cortex fonctionne et ça rend un peu plus complexe le comptage réel des cycles.

more...
 | Tags: ,