Hello,
Anyone has ideo how Assembly language can be used to determine the inner Pipeline Structure of ARM Core Platform. Don't know detail of the ARM Core.
Thankyou
Hi,any ARM assembler would not reorder the written codes and the user should consider the pipeline structure in order to improve the performance.Almost all C compiler would consider the pipeline structure according to the "-mcpu=" switch.Is this your answer?Best regards,Yasuhiko Koumoto.
Thankyou for your reply I understand what you said but my question is if i dont know that how many pipeline stage in my ARM core have, then how can i determine the pipeline stages by writing a some assembly code?
What kind of algorithm or tecqnuique can be used?
Hi,
unfortunately it would be almost impossible to guess the pipeline structure from assembly codes.
It is why the assmebler instructions would be converted to several micro-operations and sometimes issued in parallel into the execution unit.
As for the single pipeline processors, the instruction throuputs are sometimes described in the according TRM, but the number of executions will vary according to the instruction foldings, pipeline hazards, cache misses and etc.
Best regards,
Yasuhiko Koumoto.
Thanks for your time It really help.
I have some other question i have to investigate the Raspberry Pi B device (ARM1176JZFS). So i can easily get the literature of this processor. My First question is i have to setup an environment to access the processor core on assembly level. So do you have any idea how i have to do this and what assembler i have to used?
2nd Question is is there any possibilities to provoke pipeline problems on this processor by using assembly language?
And if you have whatsapp/Email/Facebook any medium through which i can contact you can you please share with me because i have to ask question.
Best Regards
Suleman Jamil
Hello Suleman Jamil,
My First question is i have to setup an environment to access the processor core on assembly level. So do you have any idea how i have to do this and what assembler i have to used?
Did you install any OSes? If you did, you can use an assembler which would be invoked by a buit-in compiler.Or do you want to handle the Raspberry Pi under a bare metal environment?
Please let us know what the pipeline problem is.Do you say about the execution definite time?If it may be so, it is impossible because the caches and the MMU will affect the execution time.
I'm sorry but I am not in any SNS other than here.
Best regards,Yasuhiko Koumoto.
Hello
Thank you for your time. I really thankful of you.
No i did not install any OSes.
Is KEIL UVision can be used for this Raspberry Pi B device (ARM1176JZFS) to work at assembly level? Because my first task is to setup an environment and write an assembly code to access the ARM1176JZFS processor core. And i am at beginner level.
In pipeline problem i have to check if there are data, control or structural hazards occur or not by writing different pieces of assembly codes.
Sulema Jamil
Hello Sulema Jamil,
I wonder why you must use an assembler to to setup the environment.if you could use a C language, you needed not to bother such pipeline hazards.For example, GCC has the following optimization switch to consider pipeline behavior (in the case of arm1176).-march=armv6zk -mtune=arm1176jzf-sIf you would use the C compiler, the following link would be helpful.http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal-programming-in-cpt1/
I am only allowed to use assembler to perform the following tasks:
Pipelining is a heavily used concept to accelerate today’s controllers and processors. Within this project the main controller of a Raspberry Pi B device (ARM1176JZFS) should be investigated in detail. Several assembly programs should be written and executed to check the behavior of the processor on pipeline hazards.
The following subtasks shall be solved:
I'm sorry but I would seem not to be able to help you.
I cannot still catch you intention.