DSPRelated.com
Forums

Question about algorithm-to-architecture mapping

Started by John April 16, 2006
"John" <john@jnho.hnjo.invalid.com> wrote in message
news:e20kho$2rbq$1@newsbin.cybercity.dk...
> > > > The basic SHARC instruction manual is the ADSP-21160 Instruction Set > > Reference. It should have been renamed when the newer processors came > > out. > > > > > > http://www.analog.com/processors/epManualsDisplay/0,2795,,00.html? > > SectionWeblawId=433&ContentID=95537&Language=English > > Hi again... > > The syntax of some of the instructions looks pretty weird. Sorry for > asking a stupid question, but is that actually how you write the > instruction? > If not, how do I interpret the syntax? What are those vertical bars? > > I read the beginning of the document and there is a little tiny section > regarding > syntax and conventions..
There is actually a programming manual for the 2136x series which you should be using. You can find the manual here http://tinyurl.com/17a The hardware reference is here http://tinyurl.com/ryhlx This tells you about all the peripherals and architecture of the chip. Regarding the syntax, the interpretation can be hard if you jump into it with no background on the chip's architecture/capabilities. No - you don't write the instruction as seen in the generic syntax (there are plenty of examples in the manual that shows you how you'd write em in a program). Those vertical bars show you optional sections of an instruction. For example, the Sharc can do 1 compute, 1 DM memory move and 1 PM memory move. So compute |, DM(Ia,Mb) = dreg1 ||, PM(Ic,Md) = dreg2 |; gives you about 3 different options for say an add instruction r5 = r6 + r0; or r5 = r6 + r0, dm(i0,m3)=r4; or r5 = r6 + r0, dm(i0,m3), pm(i11,m15)=r3; I just found the perfect section that would help you interpret the manual better. Search for the 'Instruction Set Notation Summary' - gives you all you need to get started. Cheers Bhaskar
"John" <john@jnho.hnjo.invalid.com> wrote in
news:e20jm0$2qqo$1@newsbin.cybercity.dk: 

>> The basic SHARC instruction manual is the ADSP-21160 Instruction Set >> Reference. It should have been renamed when the newer processors came >> out. >> > > Thank you very much. Is this reference complete/accurate in the sense > that it was > written for ADSP-21160 but I am going to use it for ADSP-21364 ? > > >
The 21364 uses the same instructions (as do all SIMD SHARCS, 2116x, 2126x, 2136x). I don't think there are any new instructions since the 2116x. The differences are going to be with I/O registers. These registers are discussed in the various user manuals. -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
"John" <john@jnho.hnjo.invalid.com> wrote in news:e20kho$2rbq$1
@newsbin.cybercity.dk:

>> >> The basic SHARC instruction manual is the ADSP-21160 Instruction Set >> Reference. It should have been renamed when the newer processors came >> out. >> >> >> http://www.analog.com/processors/epManualsDisplay/0,2795,,00.html? >> SectionWeblawId=433&ContentID=95537&Language=English > > Hi again... > > The syntax of some of the instructions looks pretty weird. Sorry for > asking a stupid question, but is that actually how you write the > instruction? > If not, how do I interpret the syntax? What are those vertical bars? > > I read the beginning of the document and there is a little tiny section > regarding > syntax and conventions.. > > > >
I think the syntax is very easy although the instruction manual may not be as clear or as well organized as it could be. I think the best way to get a handle on SHARC code is probably by looking at examples. There is a 21xxx book (which predates the SHARC) that has lots of examples. You can find it on the ADI web site. It's called ADSP- 21000 Applications Handbook http://www.analog.com/processors/processors/sharc/technicalLibrary/codeEx amples/applicationsHandbook.html Our dsp boards come with example programs that are written in assembly. We have 21364 boards. -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
John wrote:
>>VisualDSP is such a tool. It does all you want for all the DSPs in the >>Analog Devices product range. >> > > > The statistical profiler is more or less useless in my opinion. It tells you > how much time is spent in various code sections. Nice info to get started > with but I could figure that out myself by timing code sections myself.
Cut-and-paste in a word processor is similarly useless. You can delete and type instead.
> The only thing > I see coming close to what I want is that I am able to see the assembly > code of the compiled C-function. But then again....I can see each > instruction in > a window in VisualDSP, but the manuals I have looked in does not tell > me what exactly happens on an architectural level when a particular > instruction is executed. And that's what I want to know....
The individual hardware/architecture manuals for the processors will tell you that.
> board I am using. Usually you would find a reference guide for > the instruction set. But I haven't been able to locate a simple > thing like that....Anybody got a clue where I can find that?
Manufacturer's web site?
> Back in the simple 80s when I was doing assembly coding > on a Commodore 64 I had a reference guide where I could look up > instructions and see how many cycles an instruction took to > execute thus enabling me to tweak my code.
Those facilities exist for the few DSP chips I've used.
> I hope this clarifies my problem....sorry if I didn't express > my problem clearly enough :o)
Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Al Clark wrote:

   ...

> We have 21364 boards.
Wow! Where do you store them all? :-) Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Jerry Avins <jya@ieee.org> wrote in news:PJudnUqy2L27aN7ZRVn-vQ@rcn.net:

> Al Clark wrote: > > ... > >> We have 21364 boards. > > Wow! Where do you store them all? :-)
If only we could sell them all......
> > Jerry
-- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
Alright everybody. Thank you for all your comments. I greatly appreciate it. 
It helped alot.



Although it doesn't help you with the ADI part, a tool that does what
you want is the combination of 'tree code' with graphic analysis in the
Philips TriMedia compiler, and schedule reports. The compiler generates
a representation of the program that is mapped onto the avaialble
instruction set: this is called 'tree code' and shows also the
dependencies between operations, and any latencies that must be
respected. The compiler (scheduler actually) can also emit a graph
showing this  which shows at a glance a lot of information about the
program and its mapping onto the architecture.

The next step is that the compiler/scheduler implements the represented
code on the CPU and generates a text report called a 'schedule report'.
This shows you which unit are used, when and where. It also gives
statistics: for instance how many instructions would it take to
implement this program on a machine wiht this instruction set but no
restrictions on the use of hardware units - this can be compared with
the actual result of implementation and tells you if you are limited by
architecture (by which I mean instruction set) or implementation (by
which I mean the particular choices of restrictions and latencies for
those instructions, number and allocation of hardware units).

Going further, you can generate profiles that tell you quite quickly
whether you are limited by parallelism, memory accesses or mismatch to
instruction set. Sadly these tools are part of the specific TriMedia
tool chain but I have used them to analyse general code because they
are rather good at that. The TriMedia tools are quite flexible as they
target many different implementation using different allocations and
types of functional units, so they supply (and need) this kind of
analysis.

Chris
=====================
Chris Bore
www.bores.com

"Chris Bore" <chris.bore@gmail.com> skrev i en meddelelse 
news:1145652456.362799.179260@i40g2000cwc.googlegroups.com...
> Although it doesn't help you with the ADI part, a tool that does what > you want is the combination of 'tree code' with graphic analysis in the
Thank you very much...Exactly what I have been looking for...
John wrote:
>> The basic SHARC instruction manual is the ADSP-21160 Instruction Set >> Reference. It should have been renamed when the newer processors came >> out. >> >> >> http://www.analog.com/processors/epManualsDisplay/0,2795,,00.html? >> SectionWeblawId=433&ContentID=95537&Language=English > > Hi again... > > The syntax of some of the instructions looks pretty weird. Sorry for > asking a stupid question, but is that actually how you write the > instruction? > If not, how do I interpret the syntax? What are those vertical bars? > > I read the beginning of the document and there is a little tiny section > regarding syntax and conventions..
Didn't it describe the bars there? Don't the bars indicate parallel execution? Jerry -- Engineering is the art of making what you want from things you can get. &macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;