Ale nejak mi to nevychazi. Jestli mluvite o tomtez obvodu tak (1.8/1.2)**2 * 12.5 = 28.125 uW a ne 64 uW. Mozna tech 1.8V bylo mysleno jako verze chipu implementovana zravejsi technologii a ne tentyz chip napajen vyssim napetim.
Pak me jeste zarazi ze by na ARMu 32 bitove nasobeni trvalo 32 taktu. Uz ty prvni ARMy pouzivaly Boothuv trik kdy se jde po dvou bitech zaroven 00 a 01 je jasne, 10 je totez jako 01 jen posuv navic a 11 je vlastne jako 100 - 01 takze se to udela odectenim a pripoctenim carry do druheho cinitele. Vylozene se na to hodi ARMova ALU s tim barrel shifterem a staci par registru velmi maly sekvencni obvod aby ji ridil tak ze vysledkem bude soucin.
Taky kdyz toto uz bylo v ARM2 tak bych se dost divil kdyby v Cortexu udelali krok zpet.
Popravdě mě to také docela překvapilo, protože Boothova násobička je dost známá už strašně dlouho (minimálně od osmibitových procesorů). Ale podle http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0432c/BABBFCGC.html je to tak. Možná to mají naschvál kvůli jednoduššímu přerušení násobení.
Ono to ma prerusitelne tyhle delsi instrukce?! To je celkem nevidana vlastnost... A urcite prinasi mnoho komplikaci, protoze stavove slovo musi obsahovat nejake bity ze kterych procesor pozna kde ma pak pokracovat. To se tedy vyrazne lisi od puvodniho A32 i puvodniho Thumbu.
jo aha -- uz jsem se na to podival -- tyka se to asi jen nasobeni -- proste to zahodi co uz ma a pri navratu z preruseni zacne naspobit znovu. ldm/stm instrukce toho uz dost zmeni aby bylo snadne ji takhle opakovat.
Ale Boothova nasobicka by sla urcite zastavit uplne stejne jednoduse.
tezko rict, mozna si rekli, ze kdyz uz setrit plochou cipu, tak to neobetuji na nejaky enkoder, ktery pro Boothovu nasobicku potrebujes. Navic neresi vubec podminky v kazde nasobene cislici -> jen add+shift porad dokola, zadne cekani na to, jestli se ma pricist -nasobitel nebo +nasobitel (01 nebo 10).