Professional Documents
Culture Documents
SHARC Processor Architecture ADSP-21060
SHARC Processor Architecture ADSP-21060
.sretsiger tpurretnI .sretsiger rotareneg sserdda ataD .sretsiger pooL .sretsiger sutatS :selif retsigeR
erutcetihcrA CRAHS
rossecorP CRAHS
21
11
ngis ,wolfrevo ,orez o dilavni tniop-gnitaolf ,wolfrevo tniop-dexif ,wolfrevo/rednu tniop-gnitaolf ,sretsiger noitalumucca erapmoc ,tniop-gnitaolf saw po tsal ,dilavni tniop-gnitaolf ,ngis-tupni ,yrrac tniop-dexif ,evitagen ,wolfrevo ,orez o
:retfihS
:ULA
.d ilavni tnio p-gnitaolf ,wolfrednu tni op-gnitaolf ,wolfrednu tniop-dexif ,dilavni ,wolfrevo/rednu ,evitagen :stib sutatS .elif retsiger ot og syawla stluser tnio p-gnitaolF .stib 08 si tluser tniop -dexiF .elif retsiger ot nettirw eb ro sretsiger RM lacol otni etalumucca nac snoitarepo tniop-dexiF
reilpitluM
01
:tnatropmi tsoM
.sdrow tib -23 sa yllanretni dezinagro yromeM .sregetni tib-23 .tni o p-gnitaolf noisicerp-dednetxe EEEI tib-04 .tniop -gnitaolf noisicerp-elgnis EEEI tib-23
81
71
.evitca era sretsiger etanretla ro yramirp rehtehw enimreted stib 1EDOM .gnixedni esrever-tib ,oludom ,dexedni edivorP
7B 6B 5B 4B 3B 2B 1B 0B
7L 6L 5L 4L 3L 2L 1L 0L
7M 6M 5M 4M 3M 2M 1M 0M
7I 6I 5I 4I 3I 2I 1I 0I
sretsigeR 1GAD
61
51
.serots/sdaol lortnoc ot sretsiger GAD pu tes tsuM :)sGAD( srotareneg sserdda atad owT .snoitarepo tcerid -yromem on :erutcetihcra erots/daoL
.yromem atad o ;yromem margorp o
tcartbus/dda laud dna noitacilpitlum noitarepo ULA dna ylpitlum tniop-gnitaolf egareva,tcartbus,dda dna etalumucca/ylpitlum tniop-dexif ;tcartbus-dda laud
erotS/daoL CRAHS
snoitatupmoC noitcnufitluM
41
31
.tes meht fo enon ,stib YKTS ruoF o .0 = IM ,1 = UM ,0 = VM ,1 = NM o .tes ton )wolfrednu tniop dexif( SOA tib YKTS o .0 = IA ,1 = CA ,0 = VA ,0 = NA ,0 = UA ,1 = ZA o
:0 = 1 + 1- tniop-dexiF
.stib TATSA emos fo noisrev ykcits si YKTS . T A T S A n i s ti b ) d i l a v n i tniop-gnitaolf( IA ,)yrrac tniop -dexif( CA ,)wolfrevo( VA ,)evitagen( NA ,)orez( ZA tes snoitarepo ULA llA
snoitarepO galF
x = (a + b) - c; R0 = DM(_a) ! Load a R1 = DM(_b); ! Load b R3 = R0 + R1; R2 = DM(_c); ! Load c R3 = R3-R2; DM(_x) = R3; ! Store result in x
y = a*(b+c); R1 = DM(_b) ! Load b R2 = DM(_c); ! Load c R2 = R1 + R2; R0 = DM(_a); ! Load a R2 = R2*R0; DM(_y) = R2; ! Store result in y
22
42
.dtnoc ,elpmaxE
:relbmessA
F0 = DM(M0,I0), F1 = PM(M8,I9);
02
stnemngissa C :elpmaxE
:elcyc rep seulav owt daer ot yromem margorp ni atad tup naC
.ni derots era seulav yromem hcihw lortnoc ot remmargorp swolla relipmoC
:relbmessA
:erots tceriD
:daol tceriD
:C
03
92
htgnel pooL
spool LITNU OD
82
72
.erots ot eno hcihw esoohc neht ,sesac htob etupmoc ---pu ti deeps ot msilellarap esU
if (a>b) y = c-d; else y = c+d;
:C
.troba pool citamotua sesuac PMUJ .deyaled-non ro deyaled eb naC .evitaler -CP ,tceridni ,tcerid eb nac sserddA .lanoitidnoc eb naC .ITR ,STR ,PMUJ ,LLAC :sepyT
noitatnemelpmI fi ycnaF
62
52
pmuj CRAHS
! Load values R1=DM(_a); R2=DM(_b); R3=DM(_c); R4=DM(_d); ! Compute both sum and difference R12 = r2+r4, r0 = r2-r4; ! Choose which one to save comp(r8,r1); if ge r0=r12; dm(_y) = r0 ! Write to y
sehcnarB
.retnuoc pool ;stupni galf ;)1EDOM( 1 lortnoc edom ;)TATSA( sutats citemhtira
o o o o
snoitcurtsni lanoitidnoC
! setup I0=_a; I8=_b; ! a[0] (DAG0), b[0] (DAG1) M0=1; M8=1 ! Set up increments ! Loop body LCNTR=N, DO loopend UNTIL LCE; ! Use postincrement mode R1=DM(I0,M0), R2=PM(I8,M8); R8=R1*R2; loopend: R12=R12+R8; ! MAC could be done ! in single ! Instruction (see ! Book)
CALL foo;
23
.noitcurtsni STR gnisu nruteR .sedom gnisserdda evitaler -CP ,tceridni ,etulosba esu naC