Historie pracovních stanic na risc procesorech. Srovnávací analýza architektur CISC a RISC. Nechte procesor vyhodnotit hodnotu výrazu

Jedná se o zařízení, které je jedním nebo více velkými integrovanými obvody (LSI), které plní funkce počítačového procesoru Klasické výpočetní zařízení se skládá z aritmetické jednotky (AU), řídicí jednotky (CU), paměťové jednotky (SRAM). a vstupní/výstupní zařízení (I/O).

Existují procesory různých architektur.

CISC(angl. Complex Instruction Set Computing) je koncept návrhu procesoru, který se vyznačuje následující sadou vlastností:

· velké množství příkazů různých formátů a délek;

· zavedení velkého počtu různých režimů adresování;

· má složité kódování instrukcí.

Procesor CISC se musí vypořádat se složitějšími instrukcemi nestejné délky. Jedna instrukce CISC může být provedena rychleji, ale zpracování více instrukcí CISC paralelně je obtížnější.

Usnadnění ladění programů v assembleru znamená zahlcení mikroprocesorové jednotky uzly. Pro zlepšení výkonu je třeba zvýšit taktovací frekvenci a stupeň integrace, což vyžaduje vylepšenou technologii a v důsledku toho dražší výrobu.

Výhody architektury CISC

  1. Kompaktní instrukční sady snižují velikost programu a snižují počet přístupů do paměti.
  2. Instrukční sady zahrnují podporu pro programovací konstrukty na vysoké úrovni.

Nevýhody architektury CISC

  1. Nepravidelný tok příkazů.
  2. Vysoké náklady na hardware.
  3. Potíže s paralelizačními výpočty.

RISC(Redukovaná instrukční sada Computing). Procesor s redukovanou instrukční sadou. Systém příkazů je zjednodušen. Všechny příkazy mají stejný formát s jednoduchým kódováním. K paměti se přistupuje pomocí příkazů load a write, zbývající příkazy jsou typu registr-registr. Příkaz vstupující do CPU je již rozdělen do polí a nevyžaduje další dešifrování.

Část krystalu se uvolní pro zahrnutí další komponenty. Míra integrace je nižší než u předchozí architektonické varianty, takže pro vysoký výkon jsou povoleny nižší takty. Příkaz méně zahlcuje RAM, CPU je levnější. Tyto architektury nejsou softwarově kompatibilní. Ladění RISC programů je obtížnější. Tato technologie může být implementována v softwaru kompatibilním s technologií CISC (například superskalární technologie).

Vzhledem k tomu, že instrukce RISC jsou jednoduché, je k jejich provádění potřeba méně logických hradel, což v konečném důsledku snižuje náklady na procesor. Ale většina software je dnes napsán a zkompilován speciálně pro procesory CISC od Intelu. Chcete-li použít architekturu RISC, musí být aktuální programy překompilovány a někdy přepsány.

Výhody architektury RISC

1.snížení nepravidelnosti toku příkazů

2. obohacení o prostorový paralelismus

Nevýhody architektury RISC

RŮZNÉ(Počítač víceúčelové sady instrukcí). Základna prvku se skládá ze dvou částí, které jsou buď vyrobeny v samostatných pouzdrech nebo kombinované. Hlavní částí je RISC CPU, rozšiřitelné připojením druhé části – mikroprogramové řídicí ROM. Systém získává vlastnosti CISC. Základní instrukce běží na RISC CPU a rozšiřující instrukce jsou přeloženy na adresu firmwaru. RISC CPU provádí všechny instrukce v jednom hodinovém cyklu a druhá část je ekvivalentní CPU s komplexní instrukční sadou. Přítomnost ROM odstraňuje nevýhodu RISC, která spočívá v tom, že při kompilaci z vysokoúrovňového jazyka je mikrokód generován z knihovny standardních funkcí, což zabírá mnoho místa v RAM. Vzhledem k tomu, že firmware již byl dešifrován a je přístupný programátorovi, není pro dešifrování vyžadován žádný čas načtení z paměti RAM.

představuje tu část systému, která je viditelná pro programátora nebo vývojáře kompilátoru. V v širokém slova smyslu architektura pokrývá koncept organizace systému, včetně takových aspektů počítačového designu na vysoké úrovni, jako je paměťový systém, struktura systémové sběrnice, organizace vstupů/výstupů atd.

Ve vztahu k výpočetním systémům lze pojem „architektura“ definovat jako rozložení funkcí realizovaných systémem mezi jeho úrovněmi, přesněji jako vymezení hranic mezi těmito úrovněmi. Architektura počítačového systému tedy zahrnuje víceúrovňovou organizaci. Architektura první úrovně určuje, které funkce zpracování dat provádí systém jako celek a které jsou přiřazeny vnějšímu světu (uživatelům, operátorům, správcům databází atd.). Systém interaguje s vnějším světem prostřednictvím sady rozhraní: jazyky (jazyk operátora, programovací jazyky a systémové programy(obslužné programy, programy pro úpravu, třídění, ukládání a obnovu informací).

Rozhraní dalších vrstev mohou vymezovat určité vrstvy v rámci softwaru. Vrstva správy logických prostředků může například zahrnovat implementaci funkcí, jako je správa databáze, správa souborů, virtuální paměti. Úroveň správy fyzických zdrojů zahrnuje funkce správy externí a RAM paměti, řízení procesů běžících v systému.

Další úroveň odráží hlavní demarkační linii systému, konkrétně hranici mezi systémovým softwarem a hardwarem. Tuto myšlenku lze dále rozvíjet a mluvit o rozdělení funkcí mezi v samostatných částech fyzický systém. Některá rozhraní například určují, které funkce jsou implementovány centrálními procesorovými jednotkami a které vstupně/výstupními procesory.

Kapitola 4.2. Architektura příkazového systému. Klasifikace procesoru (CISC a RISC).

Dvě hlavní architektury instrukční sady jsou architektury CISC a RISC. Za zakladatele architektury CISC lze považovat IBM se základní architekturou /360, jejíž jádro se používá od roku 1964.

c. lídr ve vývoji mikroprocesorů kompletní sada příkazy (CISC - Complete Instruction Set Computer). Společnost Intel s řadou x86 a Pentium. Tato architektura je praktickým standardem pro trh mikropočítačů. Procesory CISC se vyznačují: relativně malý počet registrů obecný účel; velký počet strojové instrukce, z nichž některé jsou načteny sémanticky podobně jako operátory programovacích jazyků na vysoké úrovni a jsou prováděny v mnoha hodinových cyklech; velké množství metod adresování; velké množství příkazových formátů různých bitových velikostí; převaha formátu příkazu se dvěma adresami; přítomnost příkazů pro zpracování typu registr-paměť.

Základem architektury moderních pracovních stanic a serverů je architektura počítače s redukovanou instrukční sadou (RISC - Reduced Instruction Set Computer). Počátky této architektury sahají k počítačům CDC6600, jejichž vývojáři (Thornton, Cray atd.) si uvědomili důležitost zjednodušení instrukční sady pro rychlé sestavení počítače. Cray tuto tradici architektonického zjednodušení úspěšně uplatnil při vytváření známé řady superpočítačů od Cray Research. Pojem RISC v jeho moderním pojetí se však nakonec zformoval na základě tří

počítačové výzkumné projekty: procesor IBM 801, procesor RISC Berkeley a procesor MIPS Stanfordské univerzity.

Tyto tři vozy měly hodně společného. Všechny sledovaly architekturu, která oddělovala instrukce pro zpracování od instrukcí paměti a kladla důraz na efektivní zřetězení. Instrukční systém byl navržen tak, aby provedení jakékoli instrukce trvalo malý počet strojových cyklů (nejlépe jeden strojový cyklus). Samotná logika pro provádění příkazů za účelem zvýšení výkonu byla zaměřena spíše na hardware než na implementaci firmwaru. Pro zjednodušení logiky dekódování příkazů byly použity příkazy pevné délky a pevného formátu.

Vývoj architektury RISC byl do značné míry dán pokrokem ve vytváření optimalizačních kompilátorů. Přesně moderní technologie kompilace vám umožňuje efektivně využívat výhody většího souboru registru, zřetězení a vyšší rychlost provádění příkazů. Moderní kompilátory také využívají další techniky optimalizace výkonu, které se běžně vyskytují v procesorech RISC: implementace zpožděných větví a superskalární zpracování, které umožňuje provádět více instrukcí současně.

Je třeba poznamenat, že vývoj společnosti Intel (myšleno Pentium P54C a procesor nové generace P6), stejně jako jeho nástupci konkurenti (AMD R5, Cyrix M1, NexGen Nx586 atd.) široce využívají nápady implementované v mikroprocesorech RISC.

V 70. letech 20. století přišli vědci s myšlenkou, v té době revoluční, vytvořit mikroprocesor, který by „rozuměl“ jen minimálně možné množství příkazy

Jako výsledek se zrodila myšlenka procesoru RISC (Reduced Instruction Set Computer). praktický výzkumčetnost používání příkazů programátory, prováděné v 70. letech v USA a Anglii. Jejich okamžitým výsledkem je známé „pravidlo 80/20“: 80 % kódu v typickém aplikačním programu využívá pouze 20 % nejjednodušších strojových instrukcí z celé dostupné sady.

První „skutečný“ RISC procesor s 31 instrukcemi vznikl pod vedením Davida Pattersona na Berkeley University, po něm následoval procesor s 39 instrukcemi. Zahrnovaly 20-50 tisíc tranzistorů. Plody Pattersonovy práce využila společnost Sun Microsystems, která koncem 70. let vyvinula architekturu SPARC se 75 týmy. V roce 1981 byl na Stanfordské univerzitě zahájen projekt MIPS s cílem vyrobit procesor RISC s 39 týmy. V důsledku toho byla v polovině 80. let založena společnost Mips Computer Corporation a byl navržen další procesor se 74 příkazy.

Podle nezávislé společnosti IDC zaujímala v roce 1992 architektura SPARC 56 % trhu, následovala MIPS – 15 % a PA-RISC – 12,2 %

Zhruba ve stejnou dobu Intel čas vyvinul řadu 80386, poslední "skutečné" CISC procesory v rodině IA-32. V poslední době bylo zlepšení výkonu dosaženo pouze zvýšením složitosti architektury procesoru: přešla z 16bitové na 32bitovou, další hardwarové komponenty podporovaly virtuální paměť a byla přidána řada nových

Hlavní vlastnosti RISC procesorů:

1. Snížená sada příkazů (z 80 na 150 příkazů).

2. Většina příkazů se provádí v 1 hodinovém cyklu.

3. Velké množství všeobecných registrů.

4. Dostupnost pevných vícestupňových dopravníků.

5. Všechny příkazy mají jednoduchý formát a používá se jen málo metod adresování.

6. Možnost prostorného neprůchozího mezipaměť.

7. Využití optimalizačních kompilátorů, které analyzují zdrojový kód a částečně mění pořadí příkazů.

RISC procesory 3. generace

Největšími vývojáři procesorů RISC jsou Sun Microsystems (architektura SPARC - Ultra SPARC), IBM (vícečipové procesory Power, jednočipové PowerPC - PowerPC 620), Digital Equipment (Alpha - Alpha 21164), Mips Technologies (Rxx00 - R 10000 rodina), stejně jako Hewlett-Packard (architektura PA-RISC - PA-8000).

Všechny procesory RISC třetí generace:

∙ jsou 64bitové a superskalární (v jednom hodinovém cyklu jsou spuštěny alespoň 4 příkazy);

mají vestavěné aritmetické jednotky s plovoucí desetinnou čárkou;

mají víceúrovňové mezipaměť. Většina RISC procesorů ukládá předem dešifrované instrukce do mezipaměti;

jsou vyráběny podle Technologie CMOS se 4 vrstvami metalizace.

Ke zpracování dat se používá dynamický algoritmus predikce větvení a metoda přeřazení registrů, která umožňuje provádění příkazů mimo pořadí.

Zvýšení výkonu RISC procesorů je dosaženo zvýšením taktu a zvýšením složitosti návrhu čipu. Zástupci prvního směru jsou procesory Alpha od DEC, nejsložitější procesory zůstávají od Hewlett-Packard. Podívejme se na zpracovatele těchto společností podrobněji.

Struktura procesoru Alpha: 21064, 21264

Struktura procesoru Alpha 21064 je na Obr.

Rýže. Struktura procesoru Alpha 21064

Hlavní funkční bloky procesoru Alpha 21064:

∙ I-cache - cache příkazů.

IRF je celočíselný aritmetický registrový soubor.

∙ F-box - aritmetické zařízení s plovoucí desetinnou čárkou.

∙ E-box - celočíselné aritmetické zařízení (7 stupňů dopravníku).

∙ I-box - příkazové zařízení (řídí mezipaměť příkazů, načítání a dekódování příkazů).

∙ A-box - ovládací zařízení načítání/ukládání dat. Řídí proces výměny dat mezi IRF, FRF, mezipamětí dat a externí pamětí.

Write Buffer - vyrovnávací paměť pro zpětný zápis.

∙ D-cache - datová mezipaměť.

BIU - jednotka rozhraní, ke které je připojena externí cache paměť, velikost 128 KB-8 MB.

Srovnávací charakteristiky Alpha 21164 a 21264

Procesor Alpha 21264 je významným vylepšením oproti svému předchůdci 21164 s větší vyrovnávací pamětí L1, dalšími funkčními bloky, efektivnější predikcí větví, novými instrukcemi pro zpracování videa a širší sběrnicí.

Alpha 21264 čte až čtyři instrukce za cyklus hodin a může provádět až šest instrukcí současně. Jeho největším rozdílem od modelu 21164 je schopnost provádět příkazy (první pro Alpha) se změnou jejich pořadí

Efektivita provádění mimo pořadí je určena počtem instrukcí, se kterými může CPU manipulovat, aby určilo optimální pořadí provádění instrukcí. Jak více pokynů CPU k tomu může využít, čím lépe, tím dále se může dívat dopředu. Procesory třídy Intel P6 (Pentium Pro, Pentium II, Xeon) dokážou současně zpracovat minimálně 40 příkazů. Pro jiné procesory tento indikátor mnohem více: HP PA-8000 pracuje s 56 příkazy a procesor Alpha zvládá 80 příkazů.

Jako většina RISC procesorů obsahuje Alpha sadu 32 celých čísel a 32 registrů s plovoucí desetinnou čárkou, všechny o šířce 64 bitů. Pro zvýšení efektivity provádění instrukcí mimo pořadí je procesor 21264 kromě obvyklé sady registrů vybaven 48 celočíselnými registry a 40 registry s pohyblivou řádovou čárkou.

Každý registr může dočasně ukládat hodnoty aktuálních instrukcí. Pokud je zpracována jakákoliv instrukce, není potřeba vypisovat výsledek do cílového registru - místo toho CPU jednoduše přejmenuje dočasný registr (Renaming).

Podobné přejmenování registrů existuje i u jiných procesorů. 21264 však implementuje jedinečný „trik“ - má duplikovanou sadu celočíselných registrů, každý z 80 celočíselných registrů je znovu duplikován. Na čipu je tedy celkem 160 celočíselných registrů. To je jeden z důvodů, proč je i přes obtížnost provádění Out-of-Order přijatelné vysoká frekvence procesor 21264.

Bloky celočíselných operací v obou skupinách nejsou zcela totožné. Jeden z nich obsahuje násobící blok a druhý obsahuje speciální logiku pro zpracování pohyblivých obrázků (MPEG). Aby toho bylo dosaženo, byla sada příkazů Alpha doplněna o pět nových příkazů. Nejzajímavější z nich - PERR - slouží k odhadu pohybu, tzn. provedení úkolu, ke kterému dochází během komprese i dekomprese MPEG. Instrukce PERR vykonává práci devíti normálních instrukcí. Procesor 21264 tak dokáže dekódovat MPEG-2 video sekvence i AC-3 DVD audio data v reálném čase bez potřeby dalších periferní zařízení.

V procesoru 21264 je na rozdíl od svých předchůdců hierarchie mezipaměti téměř kompletně reorganizována. Má jednu 64 KB L1 cache pro instrukce a další 64 KB L1 cache pro data; oba jsou dvojitě asociativní. Mezipaměť druhé úrovně (L2) byla přesunuta mimo čip – lze k ní přistupovat přes 128bitovou zadní sběrnici.

Srovnávací charakteristiky Alpha 21164 a 21264 jsou uvedeny v tabulce. .

Tabulka 10.1. Srovnávací charakteristiky Alpha 21164 a 21264

Hodinová frekvence, MHz

Kapacita: 8(I)+8(D)

Kapacita: 64(I)+64(D)

Vrstva architektury instrukcí zahrnuje sadu strojových instrukcí, které jsou prováděny firmwarem nebo hardwarem interpretu.

Dvě hlavní architektury instrukční sady používané v dnešním počítačovém průmyslu jsou architektury CISC a RISC.

– Počítač s kompletní sadou instrukcí (architektura CISC, počítač s mikroprocesorem s úplnou sadou instrukcí)

– Počítač s redukovanou instrukční sadou (architektura RISC, počítač s redukovanou instrukční sadou)

CISC RISC
Zakladatel, model IBM, IBM/360 CDC6600 (Cray)
Dnes vedoucí x86 Alpha, PowerPC, SPARC
Trh Osobní počítače(kvůli kompatibilitě se softwarem mladších modelů, celkové náklady což na počátku 90. let činilo několik miliard amerických dolarů) Vysoce výkonné počítače (náklady na software nejsou tak významné)
Implementace Firmware (interpretace) Železářské zboží
Počet všeobecných registrů malý velký
Formát příkazu velké množství příkazových formátů různých bitových velikostí příkazy pevné délky a pevného formátu
Adresování velké množství metod adresování, převaha dvouadresového formátu příkazu jednoduché metody adresování, tříadresový formát příkazu

Zakladatel, model

Organizace prvních modelů procesorů - i8086/8088 - byla zaměřena zejména na snížení objemu programů, což bylo kritické pro systémy té doby s malou RAM. Rozšíření rozsahu operací realizovaných příkazovým systémem umožnilo snížit velikost programů a také složitost jejich psaní a ladění. Nárůst počtu příkazů však zvýšil složitost vývoje jejich topologických a mikroprogramových implementací. To se projevilo v prodloužení doby vývoje u procesorů CISC i v projevu různé chyby v jejich práci.

Tyto nedostatky si vyžádaly vývoj alternativní architektury – RISC, zaměřené především na snížení nepravidelnosti toku příkazů snížením jejich celkového počtu.

Dnes vedoucí

Procesory Intel počínaje 486 obsahují jádro RISC, které provádí nejjednodušší (a obvykle nejběžnější) instrukce v jednom cyklu datové cesty, zatímco složitější instrukce jsou interpretovány pomocí konvenční technologie CISC. V důsledku toho jsou běžné příkazy prováděny rychle, zatímco složitější a vzácnější příkazy jsou prováděny pomalu. Ačkoli tento „hybridní“ přístup nefunguje tak rychle jako RISC, tato architektura má řadu výhod, protože vám umožňuje používat starý software bez úprav.

První model procesor Intel, která se blížila architektuře RISC– PentiumPRO (Precision RISC Organization - plnohodnotná RISC architektura).

Implementace

Odstranění interpretační vrstvy zajišťuje vysokou rychlost provádění většiny příkazů. V počítačích CISC lze složitější instrukce rozdělit na několik částí, které se pak provádějí jako sekvence mikroinstrukcí. Tato dodatečná operace snižuje rychlost stroje, ale může být užitečná pro méně časté příkazy.

Počet registrů

Vývoj architektury RISC byl do značné míry dán pokrokem ve vytváření optimalizačních kompilátorů. Právě moderní kompilační techniky umožňují efektivně využít větší počet registrů, organizaci pipeline a větší rychlost provádění instrukcí.

Velké množství registrů umožňuje delší dobu uložení více dat do registrů na čipu procesoru a usnadňuje kompilátoru přidělování registrů proměnným.

Formát příkazu

Příkazy by měly být snadno dekódovatelné. Limit počtu volaných příkazů za sekundu závisí na procesu dekódování jednotlivých příkazů. Příkazy jsou dekódovány, aby bylo možné určit, jaké prostředky potřebují a jaké akce je třeba provést. Jakékoli prostředky, které pomáhají tento proces zjednodušit, jsou užitečné. Používají se například běžné příkazy s pevnou délkou a malým počtem polí. Čím méně různých formátů příkazů, tím lépe.

Adresování

Jednoduché metody adresování mohou výrazně zjednodušit dekódování příkazů. Organizace struktury registru je hlavní výhodou a hlavním problémem RISC. Téměř každá implementace architektury RISC používá trojité operace zpracování, ve kterých výsledek a dva operandy mají nezávislé adresování - R1:= R2, R3. To vám umožní vybrat operandy z adresovatelných provozních registrů a zapsat výsledek operace do registru bez výrazných časových výdajů. Navíc trojité operace dávají kompilátoru větší flexibilitu než typické operace s dvojitým registrem a pamětí architektury CISC. V kombinaci s vysokorychlostní aritmetikou se operace RISC registr-to-registr stávají velmi výkonným prostředkem pro zvýšení výkonu procesoru.

Abstrakt k disciplíně „Organizace počítačů a systémů“

Téma: "Procesory CISC a RISC."

Úvod……………………………………………………………….3

1. Architektura procesorů CISC a RISC………………………..4

2. CISC nebo RISC?................................................ ..................................... 6

3. Architektura CISC………………………………………………………………...9

4. Architektura RISC………………………………………………………..11

Závěr……………………………………………………………………….. 14

Zavedení

Historicky se tak stalo, že nejprve bylo vylepšování procesorů zaměřeno na konstrukci co nejfunkčnějšího počítače, který by umožňoval maximální výkon. různé pokyny. Za prvé to bylo pohodlnější pro programátory (překladače jazyků na vysoké úrovni se teprve začínaly vyvíjet a všechny skutečně důležité programy byly napsány v jazyce symbolických instrukcí) a za druhé použití složitých instrukcí často umožnilo výrazně snížit velikost program napsaný v jazyce symbolických instrukcí. A kde je méně instrukcí, tam je méně času stráveného prováděním programu.

Nutno přiznat, že úspěchy dosažené touto cestou byly skutečně působivé – v nejnovější verze Na počítači nebyla expresivita výpisu sestavení často horší než expresivita programu napsaného v jazyce vysoké úrovně. Pomocí jediné strojové instrukce by se dalo říct téměř cokoli. Například stroje jako DEC VAX podporovaly v hardwaru instrukce „přidat prvek do fronty“, „odebrat prvek z fronty“ a dokonce „provést polynomiální interpolaci“ (!); a slavná rodina procesorů Motorola 68k podporovala až dvanáct (!) režimů adresování paměti pro téměř všechny instrukce, až po převzetí jako argument instrukce „data zapsaná na adrese zapsané v tomto registru, s offsetem zapsaným v tomto registru“. Odtud také obecný název odpovídajících architektur: CISC - Complex Instruction Set Computers ("počítače se sadou instrukcí pro všechny příležitosti").


  1. ^ Architektura procesorů CISC a RISC
Pojďme se tedy podívat a stručně definovat dotyčné procesory:

Procesory s architekturou CISC, implementující tzv kompletní systém příkazy (Complicated Instruction Set Computer);

Procesory s architekturou RISC, které implementují redukovanou instrukční sadu (Reduced Instruction Set Computer).

Procesory CISC provádějí velkou sadu instrukcí s rozvinuté schopnosti adresování, což dává vývojáři možnost vybrat nejvhodnější příkaz k provedení požadované operace. Při aplikaci na 8bitové mikrokontroléry může mít procesor s architekturou CISC jednobajtový, dvoubajtový a tříbajtový (výjimečně čtyřbajtový) formát příkazů. Doba provádění příkazu může být od 1 do 12 cyklů. Mezi MCU s architekturou CISC patří MCU od Intelu s jádrem MCS-51, které v současnosti podporuje řada výrobců, MCU z rodin HC05, HC08 a HC11 od Motoroly a řada dalších.

V procesorech s architekturou RISC je sada spustitelných instrukcí omezena na minimum. Chcete-li implementovat složitější operace, musíte kombinovat příkazy. V tomto případě mají všechny příkazy formát s pevnou délkou (například 12, 14 nebo 16 bitů), příkaz je načten z paměti a proveden v jednom synchronizačním cyklu (cyklu). Instrukční systém RISC procesoru předpokládá možnost rovnoměrného využití všech registrů procesoru. To poskytuje další flexibilitu pro řadu operací. Mezi MCU s procesorem RISC patří MCU AVR od společnosti Atmel, MCU PIC16 a PIC17 od společnosti Microchip a další.

Na první pohled by MCU s RISC procesorem měly mít vyšší výkon oproti CISC MCU při stejném vnitřním taktu. V praxi je však otázka produktivity složitější a nejednoznačnější.

Z hlediska organizace procesů vzorkování a provádění příkazů využívají moderní 8bitové mikrokontroléry jednu ze dvou již zmíněných architektur MPS: von Neumann (Princeton) nebo Harvard.

Hlavní výhodou Von Neumannovy architektury je zjednodušení návrhu MPS, protože přístup pouze k jednomu sdílená paměť. Použití jediné paměťové oblasti navíc umožnilo rychle přerozdělit zdroje mezi programovou a datovou oblastí, což výrazně zvýšilo flexibilitu MPS z pohledu vývojáře softwaru. Umístění zásobníku do sdílené paměti usnadnilo přístup k jeho obsahu. Není náhodou, že hlavní architekturou se stala von Neumannova architektura univerzální počítače včetně osobních počítačů.

Harvardská architektura se téměř nepoužívala až do konce 70. let, kdy si výrobci mikrokontrolérů uvědomili, že poskytuje určité výhody vývojářům autonomních řídicích systémů.

Faktem je, že soudě podle zkušeností s používáním MPS k řízení různých objektů pro implementaci většiny řídicích algoritmů takové výhody von Neumannovy architektury, jako je flexibilita a všestrannost, nemají velký význam. Analýza reálných řídicích programů ukázala, že potřebné množství datové paměti MC použité pro uložení mezivýsledků je zpravidla řádově menší než požadované množství programové paměti. Za těchto podmínek vedlo použití jediného adresního prostoru ke zvýšení formátu instrukce v důsledku zvýšení počtu bitů pro adresovací operandy. Použití samostatné malé datové paměti pomohlo zkrátit délku příkazů a urychlit vyhledávání informací v datové paměti.

Harvardská architektura navíc poskytuje potenciálně vyšší rychlost provádění programu ve srovnání s von Neumannovou architekturou díky možnosti implementovat paralelní operace. Ochutnat další příkaz může nastat současně s provedením předchozího a není potřeba zastavovat procesor, když se instrukce načítá. Tento způsob implementace operací umožňuje provádění různých příkazů ve stejném počtu hodinových cyklů, což umožňuje snadněji určit dobu provádění cyklů a kritických úseků programu.

Většina výrobců moderních 8bitových MCU používá architekturu Harvard. Harvardská architektura však není dostatečně flexibilní, aby některé implementovala procedury programu. Porovnání mikrokontrolérů vyrobených pomocí různých architektur by proto mělo být provedeno ve vztahu ke konkrétní aplikaci.

V současné době jsou nejvýraznějšími představiteli mikrokontrolérů CISC a RISC, majících von Neumannovu, respektive Harvardskou architekturu, mikrokontroléry i8051 a AVR - mikrokontroléry od Atmelu, které v řadě charakteristik předčily velmi známé mikrokontroléry PIC. Proto se budeme zabývat organizací a strukturou výše uvedených zástupců.

2^. CISC nebo RIS C?

Dvě hlavní architektury instrukční sady používané v dnešním počítačovém průmyslu jsou architektury CISC a RISC. Za zakladatele architektury CISC - architektury s kompletní sadou instrukcí (CISC - Complete Instruction Set Computer) lze považovat IBM se svou základní architekturou IBM / 360, jejíž jádro se používá od roku 1964 a přežilo dodnes, pro například v takových moderních sálových počítačích, jako je IBM ES/9000.

Intel je považován za lídra ve vývoji mikroprocesorů s kompletní instrukční sadou s mikroprocesory X86 a Pentium. To je prakticky standard pro trh mikroprocesorů.

Dnes je výkonnostní rozdíl mezi RISC a CISC nejzřetelnější u výpočtů s pohyblivou řádovou čárkou, kde velké matematické zatížení dopadá na mikroprocesor. Vysoký výkon RISC s pohyblivou řádovou čárkou se používá ve finančních obchodních systémech a komplexních inženýrských aplikacích. Většina aplikací podnikových serverů však nevyžaduje vysoký výkon s pohyblivou řádovou čárkou. Potřebují pokročilý výpočetní výkon. Výpočty celých čísel pracují s celými čísly, která k reprezentaci vyžadují méně bitů. Proto vyžadují menší výpočetní výkon. Většina podnikových aplikací, které poskytují počet objednaných položek nebo počítají množství položek na skladě, používají především složité výpočty.

Jednoduchost architektury procesoru RISC zajišťuje jeho kompaktnost a virtuální absenci problémů s chlazením krystalu, což u procesorů od Intelu, který se tvrdošíjně drží vývojové cesty architektury CISC, nestává. Ke vzniku strategie architektury CISC došlo díky technologické možnosti přenesení „těžiště“ zpracování dat ze softwarové úrovně systému na hardwarovou úroveň, protože hlavní způsob zvýšení efektivity pro počítač CISC byl spatřován, především ve zjednodušení kompilátorů a minimalizaci spustitelný modul. Dnes mají procesory CISC na trhu počítačů téměř monopol. osobní počítače RISC procesory však nemají v sektoru vysoce výkonných serverů a pracovních stanic obdoby.

Hlavní rysy architektury RISC s podobnými rysy architektury CISC jsou zobrazeny následovně (Tabulka 1):


architektura CISC

RISC architektura

Vícebajtové příkazy

Jednobajtové příkazy

Malý počet registrů

Velké množství registrů

Složité příkazy

Jednoduché příkazy

Jedna nebo méně instrukcí na cyklus procesoru

Více instrukcí na cyklus procesoru

Tradičně jeden akční člen

Několik pohonů
^ Tabulka 1. Hlavní rysy architektury

Jednou z důležitých výhod architektury RISC je vysoká rychlost aritmetických výpočtů. Procesory RISC se jako první dostaly na úroveň nejrozšířenějších standard IEEE 754, který zavádí 32bitový formát pro reprezentaci čísel s pevnou řádovou čárkou a 64bitový formát s "plnou přesností" pro čísla s pohyblivou řádovou čárkou. Vysoká rychlost provádění aritmetických operací v kombinaci s vysokou přesností výpočtů poskytuje procesorům RISC nesporné prvenství ve výkonu ve srovnání s procesory CISC.

Další vlastností RISC procesorů je sada nástrojů, které zajišťují nepřetržitý provoz aritmetických zařízení: dynamický mechanismus predikce větví, velké množství operačních registrů a víceúrovňová vestavěná cache paměť.

Organizace struktury registru je hlavní výhodou a hlavním problémem RISC. Téměř každá implementace architektury RISC používá trojité operace zpracování, ve kterých výsledek a dva operandy mají nezávislé adresování - R1: = R2, R3. To vám umožní vybrat operandy z adresovatelných provozních registrů a zapsat výsledek operace do registru bez výrazných časových výdajů. Navíc trojité operace dávají kompilátoru větší flexibilitu než typické operace s dvojitým registrem a pamětí architektury CISC. V kombinaci s vysokorychlostní aritmetikou se operace RISC registr-to-register stávají velmi výkonným prostředkem pro zlepšení výkonu procesoru.

Spoléhání se na registry je však Achillovou patou architektury RISC. Problém je v tom, že v procesu provádění úlohy je systém RISC opakovaně nucen aktualizovat obsah registrů procesoru a např. minimální čas, aby nezpůsobily dlouhé prostoje aritmetického zařízení. Pro systémy CISC podobný problém neexistuje, protože ke změně registrů může dojít během zpracování příkazů z paměti do paměti.

Existují dva přístupy k řešení problému modifikace registrů v architektuře RISC: hardware navržený v projektech RISC-1 a RISC-2 a software vyvinutý specialisty z IBM a Stanford University. Zásadní rozdíl mezi nimi spočívá v tom, že hardwarové řešení je založeno na snaze zkrátit dobu volání procedury instalací dalšího hardwaru procesoru, zatímco softwarové řešení je založen na možnostech kompilátoru a je ekonomičtější z hlediska hardwaru procesoru.

Věčná otázka - co je lepší?

Odpověď závisí na konkrétních podmínkách. Technologie RISC není vždy vhodná pro použití v případech, kdy je soubor úkolů omezený. Například pro síťová zařízení Embedded RISC computing obecně nejsou vhodné, protože většinu situací, ve kterých se můžete ocitnout, lze předvídat a používání mnoha malých příkazů k jejich řešení zpomaluje zařízení. Technologie CISC je vhodnější pro řešení většiny úloh, které nějak souvisí se servery (například sdílení souborů a tiskáren), protože požadavky na procesory jsou v tomto případě snadno předvídatelné. Na druhou stranu je technologie RISC preferována v „nepředvídatelných“ případech, například při obsluze databází a aplikací.

3. Architektura CISC

Typ CISC zahrnuje téměř všechny VM vyrobené před polovinou 80. let a významnou část aktuálně vyráběných.

Metody řešení problému sémantické mezery, které jsou charakteristické pro CISC, zároveň vedou ke komplikaci architektury VM, zejména řídicího zařízení, což následně negativně ovlivňuje celkový výkon. Kromě toho je v CISC velmi obtížné zorganizovat efektivní příkazový kanál, který, jak již bylo uvedeno, je jedním z nejslibnějších způsobů, jak zvýšit výkon VM. To vše nás donutilo pečlivěji analyzovat programy získané po kompilaci z počítače Java. Byl proveden soubor studií, v jejichž důsledku byly objeveny zajímavé vzorce:

Implementace složitých příkazů ekvivalentních operátorům Java vyžaduje zvýšenou kapacitu řídicí paměť v mikroprogramové řídicí jednotce. Mikroprogramově jejich podíl na celkovém objemu pořadu často nepřesahuje 0,2 %.

V kompilovaném programu jsou Javascriptové operátory implementovány ve formě procedur (podprogramů), takže operace volání procedury a návratu z ní tvoří 15 až 45 % výpočetní zátěže.

Při volání procedury předá volající program proceduře řadu argumentů. Podle , v 98 % případů počet přijatých argumentů nepřesahuje šest. Přibližně stejná situace se vyvinula s parametry, které procedura vrací volací program. Více než 80 % proměnných používaných programem je lokálních, to znamená, že jsou vytvořeny při vstupu do procedury a zničeny při jejím ukončení. Počet lokálních proměnných vytvořených samostatnou procedurou nepřesahuje šest v 92 % případů.

Téměř polovina operací v průběhu výpočtů jsou přiřazené operace

Technika, která se scvrkává na přenos dat mezi registry, paměťovými buňkami nebo registry a pamětí.

Aby se zajistilo, že strojový kód počítačů CISC nenaroste do obrovské velikosti kvůli složitým instrukcím, měly strojové instrukce ve většině těchto architektur heterogenní strukturu (různá umístění a velikosti operačního kódu a jeho operandů) a velmi různé délky ( v x86 se například délka instrukcí pohybuje od 1 do 15 bajtů). Dalším problémem bylo, že při zachování přijatelné složitosti procesoru se mnoho instrukcí ukázalo jako zásadně nemožné provést „čistě hardwarově“ a později byly procesory CISC nuceny získat speciální bloky, které „za běhu“ nahradily některé složité instrukce sekvencemi jednodušších. jedničky. V důsledku toho se ukázalo, že všechny procesory CISC jsou velmi pracné při návrhu a výrobě. Ale nejsmutnější na tom je, že v době, kdy architektura CISC vzkvétala, bylo jasné, že všechny tyto návrhy byly obecně vynalezeny marně – výzkum softwaru té doby vedený IBM jasně ukázal, že i programátoři píšící v assembleru měli všechny tyto „superschopnosti“ se téměř nepoužívaly a překladače jazyků na vysoké úrovni – a nepokoušeli se je používat.

Na začátku osmdesátých let se klasický CISC zcela vyčerpal. V rámci tohoto přístupu nemělo smysl sadu instrukcí rozšiřovat, naopak technologové se potýkali s tím, že vzhledem k vysoké složitosti procesorů CISC bylo obtížné zvýšit jejich taktovací frekvenci; k „pomalosti“ paměti RAM té doby je dekódování složitých instrukcí napevno zapojené do paměti procesoru často pomalejší než přesně stejný řetězec příkazů v hlavním programu. Stručně řečeno, bylo zřejmé, že procesory CISC je třeba zjednodušit – a RISC, počítač se sníženou instrukční sadou, byl na světě.

4. Architektura RISC

V 70. letech 20. století přišli vědci na tehdejší revoluční myšlenku vytvořit mikroprocesor, který by „rozuměl“ jen minimálnímu možnému počtu příkazů.

Myšlenka procesoru RISC (Reduced Instruction Set Computer) se zrodila jako výsledek praktických studií frekvence používání příkazů programátory, provedených v 70. letech v USA a Anglii. Jejich okamžitým výsledkem je známé „pravidlo 80/20“: 80 % kódu v typickém aplikačním programu využívá pouze 20 % nejjednodušších strojových instrukcí z celé dostupné sady.

První „skutečný“ RISC procesor s 31 instrukcemi vznikl pod vedením Davida Pattersona na Berkeley University, po něm následoval procesor s 39 instrukcemi. Zahrnovaly 20-50 tisíc tranzistorů. Plody Pattersonovy práce využila společnost Sun Microsystems, která koncem 70. let vyvinula architekturu SPARC se 75 týmy. V roce 1981 byl na Stanfordské univerzitě zahájen projekt MIPS s cílem vyrobit procesor RISC s 39 týmy. V důsledku toho byla v polovině 80. let založena společnost Mips Computer Corporation a byl navržen další procesor se 74 příkazy.

Podle nezávislé společnosti IDC zaujímala v roce 1992 architektura SPARC 56 % trhu, následovala MIPS – 15 % a PA-RISC – 12,2 %

Přibližně ve stejné době vyvinul Intel řadu 80386, poslední „skutečné“ procesory CISC v rodině IA-32. V poslední době bylo zlepšení výkonu dosaženo pouze zvýšením složitosti architektury procesoru: přešla z 16bitové na 32bitovou, další hardwarové komponenty podporovaly virtuální paměť a byla přidána celá řada nových příkazů.

Hlavní vlastnosti RISC procesorů:


  • Snížená sada příkazů (z 80 na 150 příkazů).

  • Většina příkazů se provádí v 1 hodinovém cyklu.

  • Velké množství všeobecných registrů.

  • Dostupnost pevných vícestupňových dopravníků.

  • Všechny příkazy mají jednoduchý formát a používá se jen málo metod adresování.

  • Dostupnost prostorné samostatné mezipaměti.

  • Využití optimalizačních kompilátorů, které analyzují zdrojový kód a částečně mění pořadí příkazů.

RISC procesory 3. generace

Největšími vývojáři procesorů RISC jsou Sun Microsystems (architektura SPARC - Ultra SPARC), IBM (vícečipové procesory Power, jednočipové PowerPC - PowerPC 620), Digital Equipment (Alpha - Alpha 21164), Mips Technologies (Rxx00 - R 10000 rodina), stejně jako Hewlett-Packard (architektura PA-RISC - PA-8000).

Všechny procesory RISC třetí generace:


  • jsou 64bitové a superskalární (v jednom hodinovém cyklu jsou spuštěny alespoň 4 příkazy);

  • mají vestavěné aritmetické jednotky s plovoucí desetinnou čárkou;

  • mají víceúrovňovou mezipaměť. Většina RISC procesorů ukládá předem dešifrované instrukce do mezipaměti;

  • vyrobeno technologií CMOS se 4 vrstvami metalizace.
Ke zpracování dat se používá dynamický algoritmus predikce větvení a metoda přeřazení registrů, která umožňuje provádění příkazů mimo pořadí.

Zvýšení výkonu RISC procesorů je dosaženo zvýšením taktu a zvýšením složitosti návrhu čipu. Zástupci prvního směru jsou procesory Alpha od DEC, nejsložitější procesory zůstávají od Hewlett-Packard.

Zmenšení sady strojových instrukcí v architektuře RISC umožnilo umístit velké množství univerzálních registrů na čip výpočetního jádra. Zvýšení počtu univerzálních registrů umožnilo minimalizovat přístup k pomalé paměti RAM, přičemž zůstaly pouze operace čtení dat z paměti RAM do registru a zápis dat z registru do paměti RAM pro práci s operační pamětí RAM; účel se registruje jako operandy.

Hlavními výhodami architektury RISC jsou následující vlastnosti:


  • Velké množství všeobecných registrů.

  • Univerzální formát všechny mikrooperace.

  • Stejná doba provádění pro všechny příkazy stroje.

  • Téměř všechny operace přenosu dat se provádějí na trase registr-registr.

  • Stejná doba provádění všech strojových instrukcí umožňuje zpracovat vlákno příkazové instrukce podle principu dopravníku, tzn. Hardwarové části jsou synchronizovány s ohledem na sekvenční přenos řízení z jedné hardwarové jednotky na druhou.
Moderní RISC procesory se vyznačují následujícími vlastnostmi:

Zjednodušená sada příkazů;

Používají se příkazy pevné délky a pevného formátu,

Jednoduché metody adresování, které zjednodušují logiku dekódování příkazů;

Většina instrukcí se provádí v jednom cyklu procesoru;

Logika pro provádění příkazů za účelem zvýšení výkonu je zaměřena spíše na hardware než na implementaci firmwaru, neexistují žádné makro instrukce, které by komplikovaly strukturu procesoru a snižovaly jeho provozní rychlost;

Interakce s RAM je omezena na operace

Přenosy dat;

Pro zpracování se zpravidla používají tříadresové příkazy, což kromě zjednodušení dešifrování umožňuje ukládat větší číslo proměnné v registrech bez jejich následného načítání;

Byl vytvořen příkazový kanál, který umožňuje zpracovávat několik z nich současně;

Dostupnost velkého množství registrů;

Je použita vysokorychlostní paměť.

Závěr

Tato práce se zabývá mikrokontroléry s architekturou RISC a CISC, vlastnostmi těchto architektur a jejich hlavními rozdíly.

Dnes existuje více než 200 modifikací mikrokontrolérů kompatibilních s i8051, které vyrábí dvě desítky firem, a velké množství mikrokontrolérů jiných typů. Populární mezi vývojáři jsou 8bitové mikrokontroléry PIC od Microchip Technology a AVR od Atmel, šestnáctibitové MSP430 od TI, dále ARM, jehož architekturu vyvíjí ARM a prodává licence dalším firmám na jejich výrobu, procesory – mikrokontroléry .

Při navrhování mikrokontrolérů existuje rovnováha mezi velikostí a cenou na jedné straně a flexibilitou a výkonem na straně druhé. Pro různé aplikace optimální rovnováha mezi těmito a dalšími parametry se může značně lišit. Existuje proto obrovské množství typů mikrokontrolérů, lišících se architekturou procesorového modulu, velikostí a typem vestavěné paměti, sadou periferních zařízení, typem pouzdra atd.

^ Seznam použité literatury:

1. Kagan B.M. „Elektronické počítače a systémy“ Moskva „Rádio a komunikace“ 1991

2. Novikov Yu.V. , Skorobogatov P.K. "Základy mikroprocesorové technologie." 2006

3. Smirnov A.D. „Architektura počítačových systémů“ Moskva „Rádio a komunikace“ 1990

4. Tsilker B.Ya., Orlov S.A. "Organizace počítačů a systémů." Petrohrad: Petr 2006.

Při navrhování superminipočítačů založených na nejnovějších výdobytcích technologie VLSI se ukázalo jako nemožné zcela přenést do něj architekturu úspěšného počítače vyrobeného na jiné elementové bázi. Takový přenos by byl velmi neefektivní kvůli technickým omezením zdrojů čipu: plocha, počet tranzistorů, ztrátový výkon atd.

K odstranění těchto omezení byla v Berkeley (USA, Kalifornie) vyvinuta architektura RISC (Restricted (reduced) Instruction Set computer) architektura (architektura orientovaná na registr). Počítače s touto architekturou se někdy nazývají počítače s redukovanou instrukční sadou. Jeho podstatou je vyzdvihnout nejčastěji používané operace a vytvořit architekturu přizpůsobenou pro jejich rychlou implementaci. To umožnilo vyvinout vysoce výkonné počítače v podmínkách omezených zdrojů.

2.1. Základní principy architektury RISC

Počítačový průmysl zažívá skutečný boom systémů s architekturou RISC. Pracovní stanice a servery založené na konceptu RISC si vydobyly vedoucí postavení díky svým výjimečným vlastnostem a jedinečným vlastnostem operačních systémů typu UNIX používaných na těchto platformách.

Na samém počátku 80. let byl téměř současně ukončen teoretický výzkum v oblasti architektury RISC, prováděný na Kalifornské univerzitě, Stanfordské univerzitě a také v laboratořích IBM. Zvláštní význam má projekt RISC-1, vedený profesory Davidem Pattersonem a Carlem Sequinem. Byli to oni, kdo vytvořil termín RISC a formuloval čtyři základní principy architektury RISC:

* každý příkaz, bez ohledu na jeho typ, se provádí v jednom strojovém cyklu, jehož délka by měla být co nejkratší;

* všechny příkazy musí mít stejnou délku a používat minimální formáty adres, což výrazně zjednodušuje logiku řízení centrálního procesoru;

* do paměti se přistupuje pouze při provádění operací zápisu a čtení veškeré zpracování dat probíhá výhradně ve struktuře registrů procesoru;

* Příkazový systém musí poskytovat jazykovou podporu na vysoké úrovni. (To se týká výběru příkazového systému, který je nejúčinnější pro různé programovací jazyky.)

Postupem času se výklad některých těchto principů měnil. Zejména zvýšené možnosti technologie umožnily výrazně zmírnit omezení na skladbu instrukcí: namísto padesáti instrukcí používaných v architekturách první generace implementují moderní RISC procesory asi 150 instrukcí. Základní zákon RISC však byl a zůstává neotřesitelný: zpracování dat musí být prováděno pouze v rámci struktury registru a pouze ve formátu příkazů registr-registr-registr.

U mikroprocesorů RISC zabírá značnou část plochy čipu cesta zpracování dat a řídicí sekci a dekodéru je alokována její velmi malá část.

Hardwarová podpora vybraných operací jistě zkracuje dobu jejich provádění, ale kritériem pro takovou implementaci je zvýšení celkový výkon počítač jako celek a jeho cena. Proto je při navrhování architektury nutné analyzovat výsledky kompromisů mezi různými přístupy, různé sady operací a na jejich základě vybrat optimální řešení.

Vývoj architektury RISC je do značné míry určován pokroky v návrhu optimalizačních kompilátorů. Pouze moderní technologie kompilace může efektivně využít výhod velkého souboru registru, organizace kanálu a vysoké rychlosti provádění instrukcí. Existují další vlastnosti optimalizačního procesu v technologii kompilátoru, které se běžně používají v procesorech RISC: implementace zpožděných větví a superskalární zpracování, které umožňuje odeslat k provedení více instrukcí současně.

2.2. Charakteristické rysy architektur RISC a CISC

Dvě hlavní architektury instrukční sady používané v dnešním počítačovém průmyslu jsou architektury CISC a RISC. Za zakladatele architektury CISC - architektury s kompletní sadou instrukcí (CISC - Complete Instruction Set Computer) lze považovat IBM se svou základní architekturou IBM / 360, jejíž jádro se používá od roku 1964 a přežilo dodnes, pro například v takových moderních sálových počítačích, jako je IBM ES/9000.

Intel je považován za lídra ve vývoji mikroprocesorů s kompletní instrukční sadou s mikroprocesory X86 a Pentium. To je prakticky standard pro trh mikroprocesorů.

Jednoduchost architektury procesoru RISC zajišťuje jeho kompaktnost a virtuální absenci problémů s chlazením krystalu, což u procesorů od Intelu, který se tvrdošíjně drží vývojové cesty architektury CISC, nestává. Ke vzniku strategie architektury CISC došlo díky technologické možnosti přenesení „těžiště“ zpracování dat ze softwarové úrovně systému na hardwarovou úroveň, protože hlavní způsob zvýšení efektivity pro počítač CISC byl spatřován, v první řadě ve zjednodušení kompilátorů a minimalizaci spustitelného modulu. Dnes mají procesory CISC téměř monopol v sektoru osobních počítačů na počítačovém trhu, ale procesory RISC nemají obdoby v sektoru vysoce výkonných serverů a pracovních stanic.

Hlavní rysy architektury RISC s podobnými rysy architektury CISC jsou zobrazeny následovně (Tabulka 2.1):

Tabulka 2.1. Hlavní rysy architektury

architektura CISC

RISC architektura

Vícebajtové příkazy

Jednobajtové příkazy

Malý počet registrů

Velké množství registrů

Složité příkazy

Jednoduché příkazy

Jedna nebo méně instrukcí na cyklus procesoru

Více instrukcí na cyklus procesoru

Tradičně jeden pohon

Několik jednatelů

zařízení

Jednou z důležitých výhod architektury RISC je vysoká rychlost aritmetických výpočtů. Procesory RISC byly první, které dosáhly standardu nejběžnějšího standardu IEEE 754, který zavádí 32bitový formát pro reprezentaci čísel s pevnou řádovou čárkou a 64bitový formát s „plnou přesností“ pro čísla s pohyblivou řádovou čárkou. Vysoká rychlost provádění aritmetických operací v kombinaci s vysokou přesností výpočtů poskytuje procesorům RISC nesporné prvenství ve výkonu ve srovnání s procesory CISC.

Další vlastností RISC procesorů je sada nástrojů, které zajišťují nepřetržitý provoz aritmetických zařízení: dynamický mechanismus predikce větví, velké množství operačních registrů a víceúrovňová vestavěná cache paměť.

Organizace struktury registru je hlavní výhodou a hlavním problémem RISC. Téměř každá implementace architektury RISC používá trojité operace zpracování, ve kterých výsledek a dva operandy mají nezávislé adresování - R1: = R2, R3. To vám umožní vybrat operandy z adresovatelných provozních registrů a zapsat výsledek operace do registru bez výrazných časových výdajů. Navíc trojité operace dávají kompilátoru větší flexibilitu než typické operace s dvojitým registrem a pamětí architektury CISC. V kombinaci s vysokorychlostní aritmetikou se operace RISC registr-to-register stávají velmi výkonným prostředkem pro zlepšení výkonu procesoru.

Spoléhání se na registry je však Achillovou patou architektury RISC. Problém je v tom, že v procesu provádění úlohy je RISC systém opakovaně nucen aktualizovat obsah registrů procesoru, a to v minimálním čase, aby nezpůsobil dlouhé odstávky aritmetického zařízení. U systémů CISC takový problém neexistuje, protože modifikace registrů může nastat při zpracování příkazů ve formátu paměť-paměť.

Existují dva přístupy k řešení problému modifikace registrů v architektuře RISC: hardware navržený v projektech RISC-1 a RISC-2 a software vyvinutý specialisty z IBM a Stanford University. Zásadní rozdíl mezi nimi je v tom, že hardwarové řešení je založeno na touze zkrátit dobu volání procedury instalací dalšího hardwaru procesoru, zatímco softwarové řešení je založeno na možnostech kompilátoru a je ekonomičtější z hlediska hardwaru procesoru.

2.3. Některé výzvy pro implementaci RISC procesorů

Nás bude zajímat především výběr optimální sestavy operací. Při jeho řešení můžeme na základě nějaké gentlemanské směsice úloh, k jejichž plnění je počítač navržen, vybrat balíček ovládacích programů a sestavit pro ně profil jejich provádění, případně použít metodu statického či dynamického měření parametrů samotných programů.

Při profilování programu se určuje podíl celkového času CPU vynaloženého na provedení každého příkazu (operace) programu. Analýza získaných výsledků odhalí charakteristické rysy profilovaného programu.

U statických nebo dynamických měření se počítá, kolikrát se konkrétní operátor (operace) vyskytuje v programu nebo jak často se znaménka stanou kladnými nebo kladnými. záporné hodnoty v textu programu (statický) nebo v důsledku provádění (dynamický).

Kombinace výsledků získaných z navrhovaných studií poskytuje celkový obraz analyzovaného programu. Zde jsou výsledky jednoho z těchto statických měření provedených pro překladačové programy: operátory přiřazení - 48 %; podmíněné příkazy – 15; cyklů – 16; operátoři zpětného volání – 18; ostatní operátoři – 3 %.

Měření tří set procedur používaných v programech – operační systémy v průběhu času ukázala následující měření typů operandů: konstanty – 33 %; skaláry – 42; pole (struktury) – 20 a další – 5 %.

V tomto případě jsou statistiky mezi příkazy řízení toku dat následující. V různých testovací balíčky programy, příkazy podmíněného skoku zabírají od 66 do 78 %, příkazy bezpodmínečný přechod– od 12 do 18 %, frekvence přechodů k provedení je od 10 do 16 %.

Z toho můžeme usoudit, že operátory přiřazení zabírají většinu programů kompilátoru a konstantní operandy a lokální skaláry tvoří většinu operandů v procedurách, ke kterým se přistupuje během provádění programu.

Taková kvantitativní a kvalitativní měření tvoří základ pro optimalizaci architektury procesoru.

Pokud tedy operátoři přiřazení zabírají 48 % všech operátorů, pak je jasné, že operace přístupu k operandu by měla být implementována v hardwaru. To je zvláště důležité, pokud jde o nenumerické problémy, ve kterých jsou výpočetní operace obvykle jednoduché. Operátoři podmíněných, smyčkových a zpětných volání manipulují s více operandy, což také potvrzuje potřebu hardwarové implementace operací přístupu k operandům.

Při analýze typů operandů jsme vzali v úvahu tři kategorie:

* konstanty – nemění se během provádění programu a zpravidla mají malé hodnoty;

* skaláry – obvykle se na ně výslovně odkazuje svým jménem. Obvykle je jich málo a v postupech jsou popisovány jako lokální;

* Přístup k prvkům polí a struktur probíhá prostřednictvím indexů a ukazatelů, tj. prostřednictvím nepřímého adresování. Těchto prvků je obvykle mnoho.

Pro přístup k operandu musíte nejprve definovat fyzická adresa buňky, kde je uložen operand, a poté k operandu přistupovat. Pokud je operand konstanta, lze jej zadat v příkazu. Je přístupný ihned po kontaktu. V ostatních případech záleží na typu paměti, kde je operand uložen. Bloky registrů a mezipaměť se málo liší v kapacitě, rychlosti přístupu a ceně, ale výrazně se liší v režii adresování. K vyrovnávací paměti se přistupuje pomocí adres plné délky, které vyžadují větší šířku pásma komunikačního kanálu. Obvykle musí být tato adresa generována během provádění programu, což vyžaduje minimálně přidání celého bitu nebo přístup k registru nebo obojí. Bloky registru jsou adresovány krátká čísla registry, které jsou obvykle specifikovány v příkazu, což usnadňuje jejich dekódování. Však registrovat paměť může ukládat pouze určité typy dat, přičemž vyrovnávací paměť lze použít i jako hlavní. V tomto ohledu je distribuce skalárních proměnných mezi registry nesmírně důležitá, protože výrazně ovlivňuje rychlost zpracování.

Je nutné vyřešit problém s velikostí oken registrů, protože v konvenční architektuře jsou okna s jedním registrem, což vyžaduje operaci store-restore pro každé volání-návrat.

Při volání procedur je nutné pamatovat si obsah registrů a při návratu je nutné je obnovit, což zabere značnou dobu. Volání procedur v moderních strukturovaných programech se provádějí poměrně často a celková režie na provádění příkazů volání a návratu z procedur je standardní procesory dosáhne 50 % všech přístupů do paměti v programu. Chcete-li zkrátit dobu přenosu dat mezi nadřazenými procedurami a podřízenými procedurami (v případě, že jejich hloubka vnoření je větší než jedna), můžete vytvořit blok registrů, který umožní přístup k některým z nich rodičům i dceřiným. Jinými slovy, musí být vytvořeny překrývající se bloky registrů. Tato schopnost je realizována prostřednictvím překrývajících se "oken" superponovaných na registrovém bloku. Tento mechanismus je implementován v architektuře RISC. Mnoho měření ukazuje, že asi 97 % procedur nemá více než šest parametrů, což vyžaduje, aby překrytí sousedních oken bylo někde kolem pěti registrů.

Procesor vždy obsahuje ukazatel na aktuální okno s možností jeho úpravy v rámci implementované hloubky vnoření procedur. Pokud se hloubka zaplní, část obsahu oken se odešle do hlavní paměti, aby se uvolnilo místo pro nové procedury. Pro usnadnění implementace je obsah celého okna zasílán do OP. To ukazuje na vhodnost zavedení víceokenního mechanismu s danou velikostí okna. Velikost okna je určena počtem předávaných parametrů a počet oken je určen přípustným vnořením procedur.

Mezi výhody použití velkých registrových bloků patří vysoká rychlost blokového přístupu a zvýšení frekvence volání procedur. Mezi nevýhody patří vysoká cena velkého registrového bloku, organizovaného na úkor ostatních funkčních bloků na čipu.

Pokud výsledný zisk převyšuje náklady, měla by být zavedena hardwarová implementace mechanismu překrývání oken.

Protože mnoho procedur vyžaduje tři až šest parametrů, měli byste přemýšlet o optimalizaci využití oken. Za prvé, v případě přetečení bloku registrů nelze do OP odeslat všechna okna, ale pouze obsah registrů použitých pro tento postup, a za druhé lze použít mechanismus s okny o proměnných velikostech určených za běhu.

Slibným typem architektury RISC je architektura SPARC (Scalable Processor Architecture).

Komentář. Scaling – škálování, tedy schopnost reprezentovat data tak, že jak ona, tak výsledek s nimi prováděných výpočtů jsou v rozsahu čísel, které lze zpracovat v rámci daného procesu nebo na daném zařízení.

Nová řada SPARCSTATIONS od Sun Microsystems je založena na architektuře SPARC. První modely této společnosti byly vyrobeny již v roce 1989. Provozní prostředí pro všechny stanice Sun je SunOS - verze OS Unix, vybavená víceokny grafické rozhraní Otevřete aplikaci Look.

Pro zvýšení rychlosti zpracování dat jsou využívány počítače s architekturou VLIW (Very Long Instruction Word). Struktura instrukcí takových počítačů spolu s operačním kódem a adresami operandů zahrnuje značky a deskriptory. Spolu s výrazným zrychlením zpracování dat tato architektura umožňuje úsporu paměti při dostatečném počtu volání příkazů a snížení celkového počtu příkazů v instrukční sadě.

2.4. Metody adresování a typy příkazů

Na strojích s univerzálními registry může být metodou (nebo režimem) adresování objektů manipulovaných instrukcí konstanta, registr nebo paměťové místo.

V tabulce 2.2 uvádí hlavní metody pro adresování operandů, které jsou implementovány v počítačích probíraných v této knize.

Tabulka 2.2. Metody adresování

Metoda
oslovování

Příklad
týmy

Význam
týmy

Pomocí příkazu

Rejstřík

Pro zápis požadované hodnoty do registru

Přímé nebo písmenné

K nastavení konstant

Základní s offsetem

R4= R4+M(100+R1)

Pro přístup k místním proměnným

Nepřímý registr

Odkaz na vypočítanou adresu pomocí ukazatele

Index

R3 = R3+M(R1+R2)

Přímé nebo absolutní

Užitečné pro oběh
na statická data

Nepřímý

R1 = R1+M(M(R3))

Pokud je R3 adresa ukazatele p, pak je hodnota vybrána z tohoto ukazatele

Auto-inkrementální

Užitečné pro procházení polem s krokem: R2 – začátek pole. V každém cyklu obdrží R2 přírůstek d

Autodekrementální

Podobné jako u předchozího. Oba lze použít k implementaci zásobníku

Základní index s ofsetem a měřítkem

R1=R1+M(100)+R2+R3*d

Pro indexování polí

Adresování přímých dat a doslovných konstant je obvykle považováno za metodu adresování paměti (ačkoliv datové hodnoty, ke kterým se v tomto případě přistupuje, jsou součástí samotné instrukce a jsou zpracovávány v obecném toku instrukcí).

V tabulce 2.2 na příkladu příkazu sčítání (Add) ukazuje nejběžnější názvy metod adresování, ačkoli při popisu architektury v dokumentaci výrobci počítačů a softwaru používají různá jména pro tyto metody. V tabulce 2.2. Znak "=" se používá k označení operátoru přiřazení a písmeno M označuje paměť. M(R1) tedy označuje obsah paměťové buňky, jejíž adresa je určena obsahem registru R1.

Použití komplexních metod adresování může výrazně snížit počet příkazů v programu, ale zároveň se výrazně zvýší složitost hardwaru.

Tradiční instrukce na úrovni stroje lze rozdělit do několika typů, které jsou uvedeny v tabulce. 2.3.

Tabulka 2.3. Základní typy příkazů

Typ operace

Aritmetický
a logické

Celočíselné aritmetické a logické operace: sčítání, odčítání, logické sčítání, logické násobení atd.

Datové přenosy

Operace načítání/zápis

Řízení toku příkazů

Nepodmíněné a podmíněné skoky, volání procedur a návraty

Operace systému

Systémová volání, příkazy pro správu virtuální paměti atd.

Operace s pohyblivou řádovou čárkou

Operace sčítání, odčítání, násobení a dělení na reálných číslech

Desetinné operace

Desetinné sčítání, násobení, převod formátu atd.

Řetězcové operace

Dopředu, porovnávání a hledání řetězců

Typ operandu může být specifikován buď operačním kódem v instrukci nebo tagem, který je uložen s daty a interpretován hardwarem během zpracování dat.

Typ operandu (celé číslo, reálné číslo, znak) obvykle určuje jeho velikost. Typicky jsou celá čísla reprezentována dvojkovým doplňkem. IBM používá kód EBCDIC ke specifikaci znaků, jiné společnosti používají kód ASCII. Pro prezentaci reálná čísla Jednoduchá a dvojitá přesnost odpovídá standardu IEEE 754.

Řada procesorů používá binární kódování desetinná čísla, které jsou prezentovány v zabalených a nezabalených formátech. Sbalený formát předpokládá, že pro kódování číslic 0–9 se použijí 4 číslice a do každého bajtu jsou zabaleny dvě desetinné číslice. V rozbaleném formátu obsahuje bajt jednu desetinnou číslici, která je obvykle reprezentována kódem znaků ASCII.

2.5. Počítače se zásobníkovou architekturou

Při vytváření počítače je pro něj současně navržen příkazový systém (CS). Výběr operací pro zařazení do systému pojištění výrazně ovlivňují:

* elementová základna a technologická úroveň výroby počítačů;

* třída úkolů, které mají být řešeny, definující potřebnou sadu operací implementovaných v samostatných příkazech;

* příkazové systémy pro počítače podobné třídy;

* požadavky na rychlost zpracování dat, které mohou vést k vytváření příkazů s velkou délkou slova (příkazy VLIW).

Analýza úloh ukazuje, že v programových směsích hrají dominantní roli převodové instrukce a instrukce procesoru, které využívají registry a jednoduché režimy adresování.

Dnes jsou nejrozšířenější tyto příkazové struktury: unicast (1A), dvouadresový (2A), tříadresový (3A), neadresný (BA), příkazy s dlouhou délkou slova (VLIW - BDS) (obr. 2.1). :

Deskriptory

Rýže. 2.1. Velitelské struktury

Navíc lze operand zadat buď adresou, nebo přímo ve struktuře příkazu.

V případě BA instrukcí jsou operandy načteny a výsledky jsou vloženy do zásobníku (store, socket). Typickými ranými představiteli BA počítačů jsou KDF-9 a MVK Elbrus. Jejich charakteristický rys je přítomnost zásobníku paměti.

Zásobník je oblast paměti RAM, která se používá k dočasnému ukládání dat a operací. K prvkům zásobníku se přistupuje pomocí principu FILO (first in, last out) – první dovnitř, poslední ven. Kromě toho je přístup k prvkům stohu prováděn pouze jeho vrškem, tj. pro uživatele je „viditelný“ pouze prvek, který je na stohu umístěn jako poslední.

Uvažujme fungování procesoru s organizací zásobníku paměti.

Při provádění různých výpočetních procedur používá procesor buď nové operandy, které ještě nebyly vybrány z paměti počítače, nebo operandy, které byly použity v předchozích operacích. V procesorech s klasickou strukturou vyžaduje přístup k jakémukoli operandu (1A-počítač) paměťový cyklus.

Podívejme se na příklad.

Nechte procesor vyhodnotit hodnotu výrazu

DIV_ADBLOCK142">

Číslo
týmy

Komentáře

– pracovní buňka

– pracovní buňka

Komentář. Provedení příkazu jako https://pandia.ru/text/78/406/images/image016_43.gif" width="28" height="28">

Jak vyplývá z výše uvedeného programu, operand A 2x vybráno z paměti (příkazy 4 a 5), b– 3x (týmy 2, 7 a 8). Kromě toho byly vyžadovány další přístupy do paměti pro uložení a vyvolání výsledků mezivýpočtů (příkazy 3, 6, 9, 10).

Pokud je hlavním faktorem omezujícím výkon počítače doba cyklu paměti, pak potřeba dalších přístupů do paměti výrazně snižuje jeho rychlost. Je zřejmé, že pro data jsou zásadně nutné pouze první přístupy do paměti. Později je lze uložit do spouštěcích registrů nebo SRAM.

Tyto úvahy jsou začleněny do řady logických struktur procesoru. Jedním z nich je procesor se zásobníkovou pamětí. Princip jeho činnosti je znázorněn na schématu na obr. 2.2.

Zásobníková paměť je sada n registrů, z nichž každý je schopen uložit jedno strojové slovo. Stejnojmenné číslice registrů P1, P2, ..., Pn jsou vzájemně propojeny posuvnými obvody. Proto lze celou sadu registrů považovat za skupinu n-bitových posuvných registrů, složenou ze stejnojmenných bitů registrů P1, P2, ..., Pn. Informace v zásobníku se mohou mezi registry pohybovat nahoru a dolů.

Posun dolů: (P1) ® P2, (P2) ® P3, ..., a P1 je vyplněn daty z hlavní paměti.

Posunout nahoru: (Pn) ® Pn‑1, (Pn‑1) ® Pn‑2 a Pn je vyplněno nulami.



Rýže. 2.2. Organizace zásobníku procesorů

Registry P1 a P2 jsou připojeny k ALU a tvoří dva operandy pro provedení operace. Výsledek operace se zapíše do P1. Proto ALU provede operaci .

Současně s prováděním aritmetické operace (AO) se operandy posunou nahoru bez ovlivnění P1, tj. (P3) ® P2, (P4) ® P3 atd.

AO tedy používají implikované adresy, což snižuje délku příkazu. V zásadě stačí mít v příkazu pouze pole definující operační kód. Proto se počítače se zásobníkovou pamětí nazývají bezadresné. Současně instrukce, které vyvolávají nebo ukládají informace z hlavní paměti, vyžadují specifikaci adresy operandu. Proto počítače se zásobníkovou pamětí používají instrukce s proměnnou délkou. Například v KDF-9 jsou AO příkazy jednoslabičné, příkazy pro přístup do paměti a řízení přenosu jsou tříslabičné a ostatní jsou dvouslabičné.

Příkazy jsou umístěny v paměti jako souvislé pole slabik bez ohledu na hranice paměťových buněk. To umožňuje volání více příkazů v jednom cyklu přístupu do paměti.

Pro efektivní využití schopností takové paměti jsou do počítače zavedeny speciální příkazy:

· duplikace ~ (P1) ® P2, (P2) ® P3, ... atd. a (P1) zůstává nezměněna;

· reverzace ~ (P1) ® P2 a (P2) ® P1, která je vhodná pro provádění některých operací.

Uvažujme stejný příklad pro novou situaci (tabulka 2.5):

0 " style="border-collapse:collapse;border:none">

Volání b

Zdvojení

Volání C

Přidání

Obrácení

Zdvojení

Násobení

Volání A

Zdvojení

Násobení

Přidání

Jak vyplývá z tabulky. 2.5 byly k volání operandů potřeba pouze tři přístupy do paměti (instrukce 1, 3, 8). Méně požadavků je v zásadě nemožné. Operandy a mezivýsledky přicházejí pro operace v AC z paměti zásobníku; 9 týmů z 12 je bez adresy.

Celý program je umístěn ve třech 48bitových paměťových buňkách.

Hlavní výhodou použití paměti úložiště je to, že při skoku na podprogramy (SU) nebo v případě přerušení není potřeba speciálních akcí pro ukládání obsahu aritmetických registrů do paměti. Nový program může začít fungovat okamžitě. Když jsou do paměti zásobníku vloženy nové informace, odpovídající data předchozí program, automaticky se posune dolů. Jsou vráceny zpět, když nový program dokončí výpočet.

Spolu s uvedenými výhodami zásobníkové paměti si také všimneme:

* snížení počtu přístupů do paměti;

* zjednodušení způsobu přístupu k softwaru a zpracování přerušení.

Nevýhody organizace paměti zásobníku:

· velké množství registrů s rychlým přístupem;

· potřeba dalšího vybavení pro sledování přetečení paměti zásobníku, protože počet paměťových registrů je konečný;

· vhodné především pro řešení vědeckých problémů a v menší míře pro systémy zpracování dat nebo řízení procesů.

2.6. Optimalizace příkazového systému

Důležitou otázkou při budování jakéhokoli instrukčního systému je optimální kódování instrukcí. Je určena počtem registrů a použitých metod adresování a také složitostí hardwaru potřebného pro dekódování. To je důvod, proč moderní architektury RISC používají poměrně jednoduché metody adresování k dramatickému zjednodušení dekódování příkazů. Složitější metody adresování, které se ve skutečných programech vyskytují jen zřídka, jsou implementovány pomocí dodatečné příkazy, což obecně vede ke zvětšení velikosti programového kódu. Takový nárůst programu je však více než kompenzován příležitostí jednoduché zvýšení frekvence RISC procesorů. Tento proces můžeme pozorovat dnes, kdy maximální takty téměř všech RISC procesorů (Alpha, R4400, HyperSPARC a Power2) překračují takt dosahovaný procesorem Pentium.

Obecnou technologii pro navrhování příkazového systému pro nový počítač lze popsat takto: když známe třídu problémů, které je třeba vyřešit, vybereme nějaký standardní systém pro široce rozšířený počítač a prozkoumáme ho na přítomnost celé řady operací v daná třídaúkoly. Nezahrnujeme operace, které se u příkazů vůbec nebo zřídka vyskytují. Všechny frekvence setkání operací pro jejich specifikaci v CS lze pokaždé určit z poměrů „náklady nákladů – složitost implementace – výsledný zisk“.

Druhým způsobem návrhu systému je rozšíření stávajícího systému velení. Jedním ze způsobů takového rozšíření je vytvoření makro příkazů, druhým je využití stávající syntaxe jazyka SK, její doplnění o nové příkazy s následným opětovným sestavením prostřednictvím rozšíření funkcí assembleru. Oba tyto způsoby jsou v zásadě stejné, liší se však taktikou implementace expanzního aparátu.

Tak pokrývá příkazový systém IBM PC následující skupiny operace: přenosy dat, aritmetické operace, operace větvení a smyčkování, logické operace a operace zpracování řetězců.

Vyvinutý systém by měl být optimalizován. Jedním ze způsobů optimalizace je určit frekvenci opakování kombinací dvou nebo více příkazů, další přítel po sobě v některých typických úkolech pro tohoto počítače, následované jejich nahrazením jedním příkazem, který provádí stejné funkce. To vede ke zkrácení doby provádění programu a snížení množství potřebné paměti.

Můžeme také prozkoumat určité sekvence příkazů často generovaných kompilátorem a odstranit z nich nadbytečné kódy.

Optimalizaci lze také provést v rámci samostatného týmu prozkoumáním jeho informační kapacity. K tomu lze využít aparát teorie informace, zejména k odhadu množství přenášené informace – entropie zdroje. Cesta procesor-paměť může být považována za komunikační kanál.

Komentář. Entropie je míra pravděpodobnosti, že systém je v daném stavu (ve statistické fyzice).

2.7. Firmwarem řízené procesory

Existují dva známé přístupy ke konstrukci logiky pro tvorbu funkčních impulsů. Jedna z nich: každá operace procesoru odpovídá sadě logických obvodů vytvořených na diodách, tranzistorech atd. a určujících, který funkční impuls (FI) a v jakém hodinovém cyklu má být vybuzen. Nechť se nějaké FI musí objevit v kroku j operace m, za přítomnosti přetečení sčítačky, nebo v kroku i operace n. Požadovaná akce bude provedena, pokud jsou na vstupy obvodů AND přivedeny signály odpovídající zadaným operačním kódům, hodinám a podmínkám a výstupy těchto obvodů jsou připojeny přes obvod OR k budiči FI (obr. 2.3).



Tento princip řízení provozu se nazývá „tvrdá“ nebo „pájená“ logika a je široce používán v mnoha počítačích.

Rýže. 2.3. Vznik funkčního impulsu

Další princip organizace řízení: každá mikrooperace (MIO) je spojena se slovem (nebo částí slova), nazývá se mikroinstrukce a ukládá se do paměti stejně, jako se do paměti ukládají příkazy běžného počítače. Zde příkaz odpovídá mikroprogramu, tj. sadě mikropříkazů (MIC) indikujících, které FI a v jakém pořadí musí být aktivovány pro provedení dané operace. Tento přístup se nazývá mikroprogramování nebo „uložená logika“. To zdůrazňuje skutečnost, že v mikroprogramovaném počítači není řídicí logika implementována ve formě elektronického obvodu, ale ve formě zakódované informace umístěné v nějakém registru.

Myšlenka mikroprogramování, vyjádřená v roce 1951 Wilkesem, až donedávna nenašla široké uplatnění, protože:

· neexistovaly spolehlivé a vysokorychlostní paměti pro ukládání mikroprogramů;

· Cíle a přínosy mikroprogramování byly nepochopeny.

Vysvětleme druhý argument. Věřilo se, že hodnota mikroprogramování spočívá v tom, že každý spotřebitel si může z MIC sestavit sadu operací, které potřebuje pro daný konkrétní úkol. Nahrazení instrukčních sad by bylo dosaženo nahrazením informací v paměti bez jakýchkoliv úprav zařízení. V tomto případě by však programátor potřeboval znát všechny složitosti práce vývojového inženýra počítače. A hlavním trendem ve vývoji počítačů v souvislosti s automatizací programování je osvobodit programátora od podrobná studie počítačová zařízení a přiblížit počítačový jazyk co nejvíce lidské řeči. Proto byly počítače s firmwarem považovány za obtížně použitelné.

V poslední době ožil zájem o princip mikroprogramu, protože:

· byla vytvořena jednostranná (čtecí) vysokorychlostní paměťová zařízení s krátkým paměťovým cyklem;

· mikroprogramování není považováno za prostředek zvýšení flexibility programování, ale za způsob konstrukce řídicího systému procesoru, který je vhodný pro vývojového inženýra počítačů.

Při své práci si programátor nemusí být ani vědom mikroprogramové struktury počítače a používá všechny softwarové nástroje a programovací jazyky nejvyšší úrovně. Použití principu mikroprogramu usnadňuje vývoj a změnu logiky procesoru.

S příchodem softwarového přístupu ke stavu procesoru po provedení každého MIC je možné vytvořit ekonomický systém pro automatickou diagnostiku poruch a schopnost emulovat, tedy spustit na daném počítači program zkompilovaný v objeví se příkazové kódy jiného počítače. Toho je dosaženo zavedením doplňková sada MIK, odpovídající příkazy emulovaný počítač.

Tyto schopnosti přispívají k rozšíření metod mikroprogramování při budování řídicích systémů moderní počítače.

2.7.1. Horizontální mikroprogramování



Existují dva typy ovládání mikroprogramu: horizontální a vertikální. V horizontálním režimu každá číslice MIC odpovídá určitému MIO, což se provádí bez ohledu na obsah ostatních číslic. Firmware může být reprezentován jako matice n´m, kde n je počet FI, m je počet MIC, tj. řádek odpovídá jednomu MIC a sloupec odpovídá jednomu MIO (obr. 2.4).

Obr.2.4. Firmware ve vodorovné poloze
mikroprogramování

Přibližné hodnoty výbojů MIC jsou na obr. 2.5.

Obr.2.5. Hodnota číslic MIC (MIO):

1 – tlumení sčítačky; 2 – zhasnutí indikátoru přetečení; 3 – návratový kód zmije; 4 – vymazání registru kvocientového násobiče; 5 – inverze znaménka; 6 – posunout obsah sčítačky doleva; 7 – posunout obsah sčítačky doprava; 8 – zvýšit obsah sčítačky o 1; 9

čtení z paměti do sčítačky; ...

Přítomnost „1“ na průsečíku libovolného řádku a sloupce znamená, že FI je odeslán do tohoto MIC, a přítomnost „0“ znamená jeho nepřítomnost.

Umístění "1" do několika bitů MIC znamená, že několik MIC je spuštěno současně. Samozřejmě, že vzrušené MIO musí být kompatibilní.

Nechť například číslice 9bitového MIC nabývají následujících hodnot: . Pak, pokud dané bity odpovídají sémantice naznačené na Obr. 2.5, pak jsou MIO definované číslicemi 9, 7 a 6 nekompatibilní.

Pro rozšíření možností MIC se někdy používá vícecyklový princip provádění MIC. V tomto případě je každé číslici přiřazeno číslo hodin, ve kterém se provádí odpovídající MIO, tj. zde mají všechny kompatibilní MIO jedno číslo hodin. Všechna ostatní opatření jsou očíslována v pořadí jejich přirozeného provedení. Je však obtížné uvést univerzální číslování místních výkonných orgánů v MIC.

Výhody horizontálního mikroprogramování:

· možnost současného provedení několika MIO;

· jednoduchost generování FI (bez dekódovacích schémat).

nedostatky:

· velká délka MIC, protože počet FI v moderních počítačích dosahuje několika stovek, a tudíž velké množství paměti pro
úložiště MIC;

· kvůli omezením kompatibility operací a také kvůli sekvenční povaze provádění operačních algoritmů bude pouze malá část bitů MIC obsahovat „1“. Matice se bude většinou skládat z nul. Neefektivní využití paměti vedlo k nízkému rozšíření horizontálního mikroprogramování.

2.7.2. Vertikální mikroprogramování

Při vertikálním mikroprogramování není každý MIC určen stavem jednoho bitu, ale binárním kódem obsaženým ve specifickém poli MIC. Mikropříkaz je poněkud podobný formátu běžných příkazů. Rozdíl je v tom, že:

· je provedena elementárnější akce - MIO místo operace;

· část adresy (ve většině případů) neurčuje paměťovou buňku, ale operační registr procesoru.



Formát MIC pro vertikální mikroprogramování je na Obr. 2.6.

Rýže. 2.6. Vertikální formát MIC

Pole P1 a P2 v adresové části MIC označují binární čísla operačních registrů, jejichž obsah se účastní jedné operace. Jedním z polí je také adresa výsledku. Proto implementace aritmetického nebo logického MIO specifikovaného v tomto MIC,

lze vyjádřit vzorcem

(P1) Ä (P2) ® P1 nebo (P2) ® P1,

kde Ä je symbol MIO.

Pro MIC přístupu do paměti pole P1 udává registr, kde jsou přijímány informace, a P2 je registr, jehož obsahem je adresa přístupu do paměti. Uvedený formát MIC není jediný.

Každý MIC plní následující funkce:

· označuje právě prováděné MIO;

· označuje další místní úřad uvedením „další adresy“;

· nastavuje dobu trvání MIC;

· označuje další akce - ovládání atp.

Slovo MIC má obvykle čtyři odpovídající zóny specifikované funkce. Obecně řečeno, některé zóny mohou být specifikovány implicitně, například další MIC lze vybrat z následující buňky, dobu trvání MIC lze určit jako stejnou pro všechny MIC atd.

První počítače s mikroprogramovým řízením mezi domácími počítači byly MIR, NAIRI, ze zahraničních - IBM/360,
Spektra 70.

Cvičení

1. Analyzujte vlastnosti počítačových architektur RISC a CISC.

2. Uveďte konkrétní příklady implementace RISC architektur v reálných počítačích.

3. Simulujte činnost programu RISC na počítači CISC.

4. Analyzujte a porovnejte programy pro jedno-, dvou-, tří- a bezadresové počítače na základě různých parametrů (rychlost, paměť, složitost programování).

5. Optimalizujte systém příkazů, pokud je specifikována konkrétní sada úloh, které mají být řešeny.

6. Vyviňte firmware pro provádění specifikovaných operací skutečný počítač. Analyzujte proveditelnost mikroprogramové podpory operací.

7. Vyvinout příkazový systém pro počítač s architekturou VLIW.





Nahoru