Architektura instrukční sady - Instruction set architecture

Ve vědě o počítačích , An architektury sad instrukcí ( ISA ), také volal počítačové architektury , je abstraktní vzor z počítače . Zařízení, které provádí pokyny popsané tímto ISA, jako je centrální procesorová jednotka (CPU), se nazývá implementace .

ISA obecně definuje podporované pokyny , datové typy , registry , hardwarovou podporu pro správu hlavní paměti , základní funkce (jako je konzistence paměti , režimy adresování , virtuální paměť ) a model vstupu/výstupu řady implementací. ISA.

ISA specifikuje chování strojového kódu běžícího na implementacích daného ISA způsobem, který nezávisí na charakteristikách dané implementace a poskytuje binární kompatibilitu mezi implementacemi. To umožňuje více implementací ISA, které se liší charakteristikami, jako je výkon , fyzická velikost a peněžní náklady (mimo jiné), ale které jsou schopné provozovat stejný strojový kód, takže stroj s nižším výkonem a nižšími náklady může vyměnit za dražší a výkonnější stroj, aniž byste museli vyměňovat software. Umožňuje také vývoj mikroarchitektur implementací daného ISA, takže na novější a výkonnější implementaci ISA lze spustit software, který běží na předchozích generacích implementací.

Pokud si operační systém udržuje standardní a kompatibilní aplikační binární rozhraní (ABI) pro konkrétní ISA, strojový kód poběží na budoucích implementacích tohoto ISA a operačního systému. Pokud však ISA podporuje běh více operačních systémů, nezaručuje, že strojový kód pro jeden operační systém poběží na jiném operačním systému, pokud první operační systém nepodporuje spuštěný strojový kód vytvořený pro jiný operační systém.

ISA lze rozšířit přidáním pokynů nebo jiných funkcí nebo přidáním podpory pro větší adresy a datové hodnoty; implementace rozšířeného ISA bude i nadále moci spouštět strojový kód pro verze ISA bez těchto rozšíření. Strojový kód používající tato rozšíření poběží pouze na implementacích, které tato rozšíření podporují.

Díky binární kompatibilitě, kterou poskytují, jsou ISA jednou z nejzákladnějších abstrakcí ve výpočetní technice .

Přehled

Architektura instrukční sady se odlišuje od mikroarchitektury , což je sada technik návrhu procesoru použitých v konkrétním procesoru k implementaci instrukční sady. Procesory s různými mikroarchitekturami mohou sdílet společnou sadu instrukcí. Například Intel Pentium a Advanced Micro Devices Athlon implementují téměř identické verze instrukční sady x86 , ale mají radikálně odlišný interní design.

Koncept architektury , odlišný od designu konkrétního stroje, vytvořil Fred Brooks v IBM během fáze návrhu System/360 .

Před NPL [System/360] mohli počítačoví designéři společnosti volně plnit cíle v oblasti nákladů nejen výběrem technologií, ale také vytvářením funkčních a architektonických vylepšení. Cíl kompatibility SPREAD naopak předpokládal jedinou architekturu pro sérii pěti procesorů pokrývajících široký rozsah nákladů a výkonu. Žádný z pěti týmů inženýrských návrhů nemohl počítat s tím, že bude schopen provést úpravy architektonických specifikací jako způsob zmírnění obtíží při dosahování cílů nákladů a výkonu.

Některé virtuální stroje , které podpora bytecode jako svého standardu, jako je Smalltalk , je Java Virtual Machine a Microsoft ‚s Common Language Runtime , implementovat toto tím, že překládají bytecode pro běžně používané cesty kódu do nativního strojového kódu. Kromě toho tyto virtuální počítače provádějí méně často používané cesty kódu interpretací (viz: Kompilace just-in-time ). Transmeta tímto způsobem implementovala instrukční sadu x86 na procesorech VLIW .

Klasifikace ISA

ISA může být klasifikován několika různými způsoby. Běžnou klasifikací je architektonická složitost . Komplexní instrukční sadu počítače (CISC) má mnoho specializovaných pokynů, z nichž některé mohou být jen zřídka používány jen v praktických programů. Počítač se sníženou sadou instrukcí (RISC) zjednodušuje procesor tím, že efektivně implementuje pouze instrukce, které se často používají v programech, zatímco méně běžné operace jsou implementovány jako podprogramy, jejichž výsledný dodatečný čas spuštění procesoru je kompenzován občasným používáním.

Mezi další typy patří architektury VLIW ( velmi dlouhé instrukční slovo ) a úzce související architektury dlouhých instrukčních slov (LIW) a explicitně paralelní výpočetní instrukce (EPIC). Tyto architektury se snaží využívat paralelismus na úrovni instrukcí s menším hardwarem než RISC a CISC tím, že kompilátor odpovídá za vydání instrukcí a plánování.

Byly studovány architektury s ještě menší složitostí, jako je počítač s minimální instrukční sadou (MISC) a jeden počítač s instrukční sadou (OISC). Jedná se o teoreticky důležité typy, ale nebyly komerčně dostupné.

Instrukce

Strojový jazyk je sestaven z diskrétních prohlášení nebo pokynů . V architektuře zpracování může daná instrukce určit:

  • opcode (instrukce, která má být provedena) např. přidání, kopírování, testování
  • všechny explicitní operandy:
registrů
doslovné/konstantní hodnoty
režimy adresování používané pro přístup do paměti

Složitější operace jsou vytvářeny kombinací těchto jednoduchých instrukcí, které jsou prováděny sekvenčně, nebo jak je jinak určeno instrukcemi toku řízení .

Typy instrukcí

Mezi příklady operací společných mnoha sadám instrukcí patří:

Operace s daty a paměť

  • Nastavte si registr pro pevnou konstantní hodnotu.
  • Zkopírujte data z paměťového místa nebo registru do paměťového umístění nebo registru (instrukce stroje se často nazývá přesun ; tento termín je však zavádějící). Používá se k ukládání obsahu registru, výsledku výpočtu nebo k načtení uložených dat, aby se na něm mohl později provést výpočet. Často se nazývá operace načítání a ukládání .
  • Číst a zapisovat data z hardwarových zařízení.

Aritmetické a logické operace

  • Sečtěte , odečtěte , znásobte nebo rozdělte hodnoty dvou registrů, výsledek umístěte do registru, případně nastavte jeden nebo více stavových kódů do stavového registru .
    • přírůstek ,snížení v některých ISA, uložení načítání operandu v triviálních případech.
  • Provádějte bitové operace , např. Vezměte spojku a disjunkci odpovídajících bitů v páru registrů a vezměte negaci každého bitu v registru.
  • Porovnejte dvě hodnoty v registrech (například abyste zjistili, zda je jedna menší, nebo jsou -li stejné).
  • Instrukce splovoucí desetinnou čárkouspro aritmetiku číselsplovoucí desetinnou čárkou.

Operace řízení toku

Pokyny pro koprocesor

  • Načítání/ukládání dat do az koprocesoru nebo výměna pomocí registrů CPU.
  • Provádějte operace koprocesoru.

Složité pokyny

Procesory mohou do své sady instrukcí zahrnovat „komplexní“ instrukce. Jedna „složitá“ instrukce dělá něco, co může vyžadovat mnoho instrukcí na jiných počítačích. Takové instrukce jsou charakterizovány instrukcemi, které provádějí více kroků, řídí více funkčních jednotek, nebo se jinak objevují ve větším měřítku, než je většina jednoduchých instrukcí implementovaných daným procesorem. Některé příklady „složitých“ pokynů zahrnují:

Složité instrukce jsou běžnější v instrukčních sadách CISC než v instrukčních sadách RISC, ale instrukční sady RISC je mohou také obsahovat. RISC instrukční sady obecně neobsahují ALU operace s paměťovými operandy nebo instrukce pro přesun velkých bloků paměti, ale většina instrukčních sad RISC obsahuje SIMD nebo vektorové instrukce, které provádějí stejnou aritmetickou operaci na více kusech dat současně. Instrukce SIMD mají schopnost manipulovat s velkými vektory a maticemi v minimálním čase. Pokyny SIMD umožňují snadnou paralelizaci algoritmů běžně zapojených do zpracování zvuku, obrazu a videa. Různé implementace SIMD byly uvedeny na trh pod obchodními názvy jako MMX , 3DNow! a AltiVec .

Kódování instrukcí

Jedna instrukce může mít několik polí, která identifikují logickou operaci, a mohou také zahrnovat zdrojovou a cílovou adresu a konstantní hodnoty. Toto je instrukce MIPS „Přidat bezprostředně“, která umožňuje výběr zdrojových a cílových registrů a zahrnutí malé konstanty.

U tradičních architektur obsahuje instrukce operační kód, který určuje operaci, kterou je třeba provést, například přidání obsahu paměti k registraci - a nula nebo více specifikátorů operandů , které mohou určovat registry , umístění paměti nebo doslovná data. Specifikátory operandů mohou mít režimy adres určující jejich význam nebo mohou být v pevných polích. Ve velmi dlouhých architekturách VLIW, které obsahují mnoho architektur mikrokódů , je v jedné instrukci uvedeno více simultánních operačních kódů a operandů.

Některé exotické instrukční sady nemají pole opcode, například architektury spouštěné transportem (TTA), pouze operandy.

Forth virtuální stroj a další „ 0 operandu “ instrukční sady postrádají některý z operandů specifikátor pole, jako jsou některé zásobníkový počítač včetně NOSC.

Podmíněné pokyny mají často predikátové pole - několik bitů, které kódují konkrétní podmínku, aby způsobily, že operace bude provedena spíše než neprovedena. Například instrukce podmíněné větve přenese řízení, pokud je podmínka pravdivá, takže provádění pokračuje do jiné části programu, a nikoli přenos řízení, pokud je podmínka nepravdivá, takže provádění pokračuje sekvenčně. Některé sady instrukcí mají také podmíněné pohyby, takže přesun bude proveden a data uložena v cílovém umístění, pokud je podmínka pravdivá, a neprovedena, a cílové umístění se nezmění, pokud je podmínka nepravdivá. Podobně má IBM z/Architecture instrukci podmíněného úložiště. Několik sad instrukcí obsahuje predikátové pole v každé instrukci; tomu se říká predikce větví .

Počet operandů

Sady instrukcí lze kategorizovat podle maximálního počtu operandů výslovně uvedených v pokynech.

(V následujících příkladech a , b , a c jsou (přímé nebo vypočítané) adresy odkazující na paměťové buňky, zatímco reg1 atd. Se vztahují na registry strojů.)

C = A+B
  • 0-operand ( zero-adresa stroje ), tzv zásobníkový počítač : Všechny početní operace se uskuteční s použitím horní jednu nebo dvě pozice na zásobníku: push a, push b, add, pop c.
    • C = A+Bpotřebuje čtyři pokyny . Pro stohovací stroje platí termíny „0-operand“ a „nulová adresa“ pro aritmetické instrukce, ale ne pro všechny instrukce, protože k přístupu do paměti se používají instrukce push a pop s 1 operandem.
  • 1-operand ( stroje s jednou adresou ), takzvané akumulátorové stroje , zahrnují rané počítače a mnoho malých mikrokontrolérů : většina instrukcí uvádí jeden správný operand (tj. Konstantu, registr nebo umístění v paměti), přičemž implicitní akumulátor je levý operand (a místo určení, pokud existuje): load a, add b, store c.
    • C = A+Bpotřebuje tři pokyny .
  • 2 operandy-mnoho strojů CISC a RISC spadá do této kategorie:
    • CISC - move Ado C ; pak add Bse C .
      • C = A+Bpotřebuje dva pokyny . To efektivně „ukládá“ výsledek bez výslovných pokynů pro uložení .
    • CISC - Často stroje jsou omezeny na jeden paměti operandu na instrukce: load a,reg1; add b,reg1; store reg1,c; To vyžaduje dvojici / ukládání pro každý pohyb paměti bez ohledu na to, zda je addvýsledkem je zvětšení uloženy na jiné místo, stejně jako v C = A+B, nebo stejné místo v paměti: A = A+B.
      • C = A+Bpotřebuje tři pokyny .
    • RISC - Vyžadující explicitní načtení paměti, pokyny by byly load a,reg1:; load b,reg2; add reg1,reg2; store reg2,c.
      • C = A+Bpotřebuje čtyři pokyny .
  • 3 operandy, které umožňují lepší opětovné použití dat:
    • CISC - stane se buď jedinou instrukcí: add a,b,c
      • C = A+Bpotřebuje jednu instrukci .
    • CISC - Nebo na počítačích omezených na dva paměťové operandy na instrukci move a,reg1; add reg1,b,c;
      • C = A+Bpotřebuje dva pokyny .
    • RISC - aritmetické instrukce pomocí registrů pouze potřebné instrukce tak explicitní 2-operand zatížení / úložiště: load a,reg1; load b,reg2; add reg1+reg2->reg3; store reg3,c;
      • C = A+Bpotřebuje čtyři pokyny .
      • Na rozdíl od 2-operandu nebo 1-operandu to ponechává všechny tři hodnoty a, b, a c v registrech k dispozici pro další opětovné použití.
  • více operandů - některé stroje CISC umožňují řadu režimů adresování, které umožňují více než 3 operandy (registry nebo přístupy do paměti), jako je například polynomiální vyhodnocovací instrukce VAX „POLY“.

Vzhledem k velkému počtu bitů potřebných ke kódování tří registrů 3-operandové instrukce jsou RISC architektury, které mají 16bitové instrukce, vždy 2-operandové, jako je Atmel AVR, TI MSP430 a některé verze ARM Thumb . Architektury RISC, které mají 32bitové instrukce, jsou obvykle návrhy se 3 operandy, jako jsou architektury ARM , AVR32 , MIPS , Power ISA a SPARC .

Každá instrukce specifikuje určitý počet operandů (registry, paměťových míst, nebo v bezprostředním hodnoty) explicitně . Některé instrukce udávají jeden nebo oba operandy implicitně, například tím, že jsou uloženy na vrcholu zásobníku nebo v implicitním registru. Pokud jsou některé z operandů uvedeny implicitně, je třeba v instrukci uvést méně operandů. Když „cílový operand“ výslovně určuje cíl, musí být zadán další operand. V důsledku toho se počet operandů zakódovaných v instrukci může lišit od matematicky nezbytného počtu argumentů pro logickou nebo aritmetickou operaci ( arita ). Operandy jsou buď zakódovány v reprezentaci instrukce „opcode“, nebo jsou uvedeny jako hodnoty nebo adresy následující za operačním kódem.

Zaregistrujte tlak

Tlak v registru měří dostupnost bezplatných registrů v libovolném okamžiku během provádění programu. Tlak v rejstříku je vysoký, když je používán velký počet dostupných registrů; čím vyšší je tlak registru, tím častěji musí být obsah registru vysypán do paměti. Zvýšení počtu registrů v architektuře snižuje tlak registrů, ale zvyšuje náklady.

I když vložené instrukční sady, jako je Thumb, trpí extrémně vysokým registračním tlakem, protože mají malé sady registrů, obecné ISA RISC jako MIPS a Alpha mají nízký registrační tlak. CISC ISA jako x86-64 nabízejí nízký tlak v registru, přestože mají menší sady registrů. Důvodem je mnoho režimů adresování a optimalizace (jako je adresování podregistrů, paměťové operandy v pokynech ALU, absolutní adresování, adresování relativní k počítači a úniky registrů do registru), které ISA CISC nabízejí.

Délka instrukce

Velikost nebo délka instrukce se velmi liší, od pouhých čtyř bitů v některých mikrokontrolérech až po stovky bitů v některých systémech VLIW . Procesory používané v osobních počítačích , sálových počítačích a superpočítačích mají velikosti instrukcí mezi 8 a 64 bity. Nejdelší možná instrukce na x86 je 15 bytů (120 bitů). V rámci sady instrukcí mohou mít různé instrukce různé délky. V některých architekturách, zejména většina redukovaných počítačů s instrukční sadou (RISC),instrukce mají pevnou délku , která obvykle odpovídá velikosti slov dané architektury. V jiných architekturách mají instrukce proměnnou délku, obvykle integrální násobky bajtu nebo polovičního slova . Některá, jako například ARM s Thumb-extension, mají smíšené variabilní kódování, to znamená dvě pevná, obvykle 32bitová a 16bitová kódování, kde instrukce nelze libovolně míchat, ale je třeba mezi nimi přepínat na větvi (nebo na hranici výjimek v ARMv8) ).

Sada instrukcí RISC má normálně pevnou délku instrukce (často 4 bajty = 32 bitů), zatímco typická sada instrukcí CISC může mít instrukce široce se měnící délky (1 až 15 bytů pro x86). Instrukce s pevnou délkou se zpracovávají méně komplikovaně než instrukce s variabilní délkou z několika důvodů (bez nutnosti kontrolovat, zda se instrukce nachází například na hranici mezipaměti nebo hranice stránky virtuální paměti), a proto je lze o něco snadněji optimalizovat na rychlost.

Hustota kódu

Na počátku šedesátých let byla hlavní paměť drahá a velmi omezená, a to i na sálových počítačích. Minimalizace velikosti programu, aby se ujistil, že se vejde do omezené paměti, byla často ústřední. Kombinovaná velikost všech instrukcí potřebných k provedení konkrétního úkolu, hustota kódu , byla tedy důležitou charakteristikou každé sady instrukcí. Zůstalo to důležité na zpočátku drobných vzpomínkách na minipočítače a poté na mikroprocesory. Hustota je dnes stále důležitá, a to u aplikací pro chytré telefony, aplikací stažených do prohlížečů přes pomalé internetové připojení a u ROM pro vestavěné aplikace. Obecnější výhodou zvýšené hustoty je zlepšená účinnost mezipaměti a předběžného načtení instrukcí.

Počítače s vysokou hustotou kódu mají často složité pokyny pro zadávání procedur, parametrizované návraty, smyčky atd. (Proto zpětně pojmenované Complex Instruction Set Computers , CISC ). Typičtější nebo častější instrukce „CISC“ však pouze kombinují základní operaci ALU, například „přidat“, s přístupem k jednomu nebo více operandům v paměti (pomocí režimů adresování, jako jsou přímé, nepřímé, indexované atd.) . Některé architektury mohou povolit dva nebo tři operandy (včetně výsledku) přímo v paměti nebo mohou být schopné provádět funkce, jako je přírůstek automatického ukazatele atd. Softwarově implementované instrukční sady mohou mít ještě složitější a výkonnější instrukce.

Počítače s omezenými instrukcemi , RISC , byly poprvé široce implementovány v období rychle rostoucích paměťových subsystémů. Obětují hustotu kódu, aby zjednodušili implementační obvody, a snaží se zvýšit výkon prostřednictvím vyšších hodinových frekvencí a více registrů. Jedna instrukce RISC obvykle provádí pouze jednu operaci, jako je „přidání“ registrů nebo „načtení“ z paměťového místa do registru. Sada instrukcí RISC má normálně pevnou délku instrukce , zatímco typická sada instrukcí CISC má instrukce široce se měnící délky. Protože však počítače RISC obvykle vyžadují k implementaci daného úkolu více a často i delší instrukce, ze své podstaty méně optimálně využívají šířku pásma sběrnice a paměti cache.

Některé vložené RISC ISA jako Thumb a AVR32 obvykle vykazují velmi vysokou hustotu díky technice nazývané komprese kódu. Tato technika zabalí dvě 16bitové instrukce do jednoho 32bitového slova, které se poté rozbalí ve fázi dekódování a provede se jako dvě instrukce.

Počítače s minimálními instrukčními sadami (MISC) jsou formou stohovacího stroje , kde existuje několik samostatných instrukcí (16-64), takže do jednoho strojového slova lze vložit více instrukcí. Realizace těchto typů jader často vyžaduje málo křemíku, takže je lze snadno realizovat v FPGA nebo ve vícejádrové formě. Hustota kódu MISC je podobná hustotě kódu RISC; zvýšená hustota instrukcí je kompenzována požadavkem více primitivních instrukcí k provedení úkolu.

Byl proveden výzkum spustitelné komprese jako mechanismu pro zlepšení hustoty kódu. Matematika Kolmogorovovy složitosti popisuje výzvy a meze tohoto.

Reprezentace

Instrukce tvořící program jsou zřídka specifikovány pomocí jejich interní, číselné formy ( strojový kód ); Mohou být specifikovány programátory používající jazyk sestavy nebo častěji, mohou být generovány z programovacích jazyků na vysoké úrovni by překladačů .

Design

Návrh instrukčních sad je složitý problém. V historii byly dvě fáze pro mikroprocesor. První byl CISC (Complex Instruction Set Computer), který měl mnoho různých instrukcí. V sedmdesátých letech však místa jako IBM prováděla výzkum a zjistila, že mnoho instrukcí v sadě lze odstranit. Výsledkem byla RISC (Reduced Instruction Set Computer), architektura, která používá menší sadu instrukcí. Jednodušší instrukční sada může nabídnout potenciál pro vyšší rychlosti, menší velikost procesoru a nižší spotřebu energie. Složitější sada však může optimalizovat běžné operace, zlepšit efektivitu paměti a mezipaměti nebo zjednodušit programování.

Někteří návrháři sady instrukcí si vyhrazují jeden nebo více operačních kódů pro nějaký druh systémového volání nebo přerušení softwaru . Například, MOS technologie 6502 použití 00 H , Z80 používá osm kódy C7, CF, D7, DF, E7, EF, F7, FF H zatímco Motorola 68000 použití kódy v rozmezí A000..AFFF H .

Rychlé virtuální stroje se implementují mnohem snáze, pokud sada instrukcí splňuje požadavky na virtualizaci Popek a Goldberg .

Snímek NOP používaný v programování s vědomím imunity je mnohem snazší implementovat, pokud je „neprogramovaný“ stav paměti interpretován jako NOP .

V systémech s více procesory se neblokující synchronizační algoritmy implementují mnohem snáze, pokud sada instrukcí obsahuje podporu pro něco jako „ načítání a přidávání “, „ načítání spojení/podmínění úložiště “ (LL/SC) nebo „atomové srovnání a výměna “.

Implementace instrukční sady

Jakákoli daná instrukční sada může být implementována různými způsoby. Všechny způsoby implementace konkrétní sady instrukcí poskytují stejný programovací model a všechny implementace této sady instrukcí mohou spouštět stejné spustitelné soubory. Různé způsoby implementace sady instrukcí poskytují různé kompromisy mezi náklady, výkonem, spotřebou energie, velikostí atd.

Při navrhování mikroarchitektury procesoru používají inženýři bloky „pevně zapojených“ elektronických obvodů (často navrhovaných samostatně), jako jsou například sčítače, multiplexory, čítače, registry, ALU atd. K popisu se pak často používá nějaký druh registru pro přenos dekódování a sekvenování každé instrukce ISA pomocí této fyzické mikroarchitektury. K implementaci tohoto popisu existují dva základní způsoby, jak vytvořit řídicí jednotku (ačkoli mnoho návrhů používá střední cesty nebo kompromisy):

  1. Některé počítače navrhují dekódování a sekvenování kompletní sady instrukcí (stejně jako zbytek mikroarchitektury).
  2. Jiné konstrukce k tomu používají rutiny nebo tabulky mikrokódů (nebo obojí)-obvykle jako ROMy na čipu nebo PLA nebo obojí (i když v minulosti se používaly oddělené RAM a ROM ). Western Digital MCP-1600 je starší příklad použití jednoúčelového, samostatnou ROM pro mikrokód.

Některé návrhy používají pro řídicí jednotku kombinaci pevného zapojení a mikrokódu.

Některé designy CPU používají úložiště pro zapisovatelné ovládací prvky - kompilují sadu instrukcí do zapisovatelné RAM nebo flash uvnitř CPU (například procesor Rekursiv a Imsys Cjip ) nebo FPGA ( rekonfigurovatelné výpočty ).

ISA může být také v softwaru emulován tlumočníkem . Přirozeně je to kvůli režii interpretace pomalejší než přímé spouštění programů na emulovaném hardwaru, pokud hardware běžící na emulátoru není řádově rychlejší. Dnes je běžnou praxí, že prodejci nových ISA nebo mikroarchitektur zpřístupní vývojářům softwaru softwarové emulátory, než bude implementace hardwaru připravena.

Podrobnosti o implementaci mají často silný vliv na konkrétní pokyny vybrané pro sadu instrukcí. Například mnoho implementací kanálu instrukcí umožňuje pouze jedno načtení paměti nebo úložiště paměti na instrukci, což vede k architektuře RISC ( load -store architecture ). Pro další příklad některé rané způsoby implementace kanálu instrukcí vedly ke zpožďovacímu slotu .

Požadavky na vysokorychlostní zpracování digitálního signálu tlačily opačným směrem-nutily implementaci pokynů určitým způsobem. Aby například digitální filtry mohly být prováděny dostatečně rychle, musí instrukce MAC v typickém procesoru digitálního signálu (DSP) používat jakýsi typ architektury Harvard, který dokáže načíst instrukci a dvě datová slova současně, a vyžaduje jednocyklové násobení-akumulace multiplikátor .

Viz také

Reference

Další čtení

externí odkazy