- Architektúry procesorov
- Architektúra inštrukčných súborov RISC a CISC
- Výpočet zložitej inštrukčnej sady (CISC)
- Výpočtová sada so zníženou inštrukciou (RISC)
Vstavaný systém je srdcom a jadrom väčšiny elektronických výrobkov dostupných na trhu. Je to implementácia inžinierstva, v ktorom sa hardvér a softvér stretávajú. Sme obklopení svetom zabudovaných systémov s minipočítačmi v biometrických zámkoch dverí, lietadlách, automobiloch, kardiostimulátoroch atď. Tieto obmedzené zdroje, malé, inteligentné a výkonné systémy, nám pomáhajú pri každodenných úlohách.
Už ste niekedy premýšľali o tom, ako funguje naše telo, nervový systém, mozog a schopnosť vykonávať viac úloh. Ak spojíte všetky tieto funkcie, získate hrubý obraz o biologicky zabudovanom systéme. Náš mozog skrýva komplexné podrobnosti svojho fungovania, ktoré sa odohrávajú v jeho vnútri, ale umožňuje nám ho ovládať na maximálny potenciál. Rovnaká zložitosť platí aj pre procesor alebo radič používaný v zabudovaných systémoch. Skrývajú zložité detaily a poskytujú nám rozhranie na vysokej úrovni, na ktorom môžeme pracovať. Pre úroveň abstrakcie je možné uviesť, ako kód na sčítanie dvoch čísel v programovacom jazyku na vysokej úrovni spôsobí, že registre v čipoch zvládnu bity a dajú výstup späť užívateľovi.
Architektúry procesorov
Centrálna procesorová jednotka, ktorá sa týka mikroprocesora aj mikrokontroléra, vykonáva špecifické úlohy pomocou riadiacej jednotky (CU) a aritmetickej logickej jednotky (ALU). Keď sú pokyny dodávané z RAM, procesor koná pomocou svojich dvoch pomocných jednotiek tak, že vytvára premenné a priraďuje im hodnoty a pamäť. Je naozaj dôležité vedieť, ako procesor vykonáva všetky tieto akcie pomocou svojej architektúry. Ak sa chcete dozvedieť viac o tom, ako mikrokontrolér funguje, môžete si prečítať tento základný článok o mikrokontroléri.
Každý procesor má priradenú pamäť na ukladanie programu a údajov. Program a dáta pracujú s procesorom na získanie výstupu. Program poskytuje pokyny, zatiaľ čo údaje poskytujú informácie, na ktorých je potrebné pracovať. Pre prístup k programu a údajom CPU využíva zbernice, tieto zbernice sú drôty, presnejšie ide o stopy po vodičoch, ako ste mohli vidieť na doskách plošných spojov. V priebehu týchto rokov sa mikrokontroléry a mikroprocesory vyvinuli prispôsobením rôznych architektúr. Na základe požiadaviek aplikácie alebo dizajnu je výber mikrokontroléra ovplyvnený typom architektúry, ktorá sa v ňom používa. Poďme sa pozrieť na populárne architektúry.
Von-Neumann / Princetonská architektúra
Spôsob, akým CPU získava prístup k programu a údajom, vypovedá o architektúre CPU. Na získanie prístupu k programu a údajom sa predtým používala jedna zbernica. Tento typ architektúry je známy ako Von Neumann Architecture alebo jednoduchšie Princeton Architecture. Jedna zbernica na získanie kódu a dát znamená, že si navzájom prídu do cesty a spomalia rýchlosť spracovania CPU, pretože každá musela čakať, kým načítanie dokončí druhá. Toto obmedzenie je tiež známe ako Von-Neumannovo úzke miesto.
Harvardská architektúra
Na urýchlenie procesu bola navrhnutá Harvardská architektúra. V tejto architektúre sú k dispozícii samostatné dátové zbernice pre dáta a program. Znamená to teda, že táto architektúra navrhovala použitie štyroch autobusov
- Sada dátovej zbernice prenášajúcej údaje do a z CPU.
- Sada adresnej zbernice na prístup k údajom.
- Sada dátovej zbernice na prenášanie kódu do CPU.
- Adresová zbernica na prístup ku kódu.
Použitie samostatnej adresovej zbernice a dátovej zbernice znamenalo pre CPU nízky čas vykonania, čo však prichádza s cenou komplexnosti pri navrhovaní architektúry. Architektúra Von Neumann môže znieť trochu lenivo, ale má výhodu v jednoduchom dizajne.
Harvardská architektúra sa dá implementovať oveľa ľahšie, keď procesor a pamäťové jednotky zdieľajú rovnaký priestor alebo sú RAM a ROM zabudované (na čipe) s procesorovou jednotkou, napríklad v mikrokontroléri, kde sú vzdialenosti v mikrónoch a milimetroch. Rovnakú architektúru je však ťažké implementovať tam, kde je pamäť obsahujúca kód externá k procesorovej jednotke, ako napríklad v procesoroch x86 IBM PC. Vďaka množine samostatných trasovania vodičov pre údaje a adresu na základnej doske by bola doska zložitá a nákladná. Poďme to pochopiť na príklade procesora.
Procesor so 64-bitovou dátovou zbernicou a 32-bitovou adresovou zbernicou by na implementáciu Von-Neumannovej architektúry potreboval približne 100 zberníc (96 pre dátovú a adresnú zbernicu a niekoľko ďalších pre riadiace signály). Rovnaká štruktúra, ak by bola implementovaná s architektúrou Harvard, by stála stopy dvojitého drôtu približne 200 s veľkým počtom kolíkov vychádzajúcich z procesora. Je to z rovnakého dôvodu, že nevidíme implementovanú čistú architektúru Harvard pre počítače a pracovné stanice. Namiesto toho sa používa upravená architektúra Harvard, v ktorej sa na oddelenie programu a údajov používa hierarchia pamätí s medzipamäťou CPU. Hierarchia pamätí oddeľuje úložisko na základe hierarchie doby odozvy procesov.
Architektúra inštrukčnej sady
Pretože je program (kód) načítaný do pamäte systému (RAM), je načítaný procesorom (ktorý označuje mikroprocesor aj mikrokontrolér), ktorý má pôsobiť na dáta, je to veľmi podobné, ako keď dávame pokyny, keď psa cvičíme na určité akcie a príkazy. Keď sa tieto pokyny budú konať, určité tranzistory postupujú z jednej logickej úrovne do druhej, aby sa tak stalo. Takže v zásade pomocou pokynov komunikuje ľudský programátor s procesorom. Každý procesor má svoju vlastnú sadu inštrukcií, zbierku pokynov založených na svojej architektúre a schopnostiach.
CPU chápe tieto pokyny v kombinácii s 0 a 1, ktoré sú tiež známe ako operačný kód. Pre ľudského programátora je naozaj ťažké zapamätať si kombináciu 0 a 1 pre každú inštrukciu spojenú s CPU. Aby sme uľahčili prácu ľudského programátora, máme k dispozícii rozhrania týchto pokynov na vysokej úrovni a kompilátor ich prevádza na spracovanie v podobe 0 a 1. Taktiež v inštrukčnej sade každého CPU má obmedzený počet inštrukcií, ktorým dokáže porozumieť.
Výkon CPU
Možno ste už počuli pojem hodinová frekvencia CPU súvisiaca s výkonom CPU. CPU majú zvyčajne taktovací kmitočet v MHz (Mega-Hertz) alebo GHz (Giga-Hertz), napríklad 25 GHz. Číslo spojené s frekvenciou hodín udáva, koľkokrát hodiny vo vnútri procesora tikajú v cykloch za sekundu. Praktickosť taktu je možné pochopiť tak, že inštrukcie sa vykonávajú na základe taktovania CPU, ktoré je úmerné počtu programov, ktoré môže CPU súčasne spustiť.
Výkon procesora závisí od počtu inštrukcií, ktoré sú zapísané do programu, viac inštrukcií, viac času potrebného CPU na ich vykonanie. Závisí to tiež od počtu hodinových cyklov, v ktorých sa vykonáva každá inštrukcia, určité inštrukcie potrebujú na vykonanie viac hodinových cyklov ako iné, aby zaostávali za výkonom CPU. Pokyny v programe a cykly potrebné na vykonanie každej inštrukcie sú navzájom nepriamo úmerné. Zmena jedného ovplyvní druhého. Toto je bod, v ktorom je priemysel CPU rozdelený.
Architektúra inštrukčných súborov RISC a CISC
Ako bolo uvedené vyššie, vykonávanie programu a výkon CPU závisia od počtu inštrukcií v programe, kde sú inštrukcie navrhnuté pre konkrétny CPU ako súčasť inštrukčnej sady a druhým faktorom je počet taktovacích cyklov v ktorým sa vykonáva každá inštrukcia. Na základe týchto dvoch faktorov sú v súčasnosti k dispozícii dve inštrukčné sady. Najstaršou z nich je Computing Instruction Set Computing (CISC), zatiaľ čo druhou je Reduced Instruction Set Computing (RISC). Poďme podrobne diskutovať o každej z týchto architektúr, aby sme pochopili rozdiel medzi architektúrou RIC a CISC.
Výpočet zložitej inštrukčnej sady (CISC)
CISC je skratka pre Complex Instruction Set Computing. Hlavným motívom CISC je znížiť počet inštrukcií, ktoré program vykonáva, a to kombináciou mnohých jednoduchých inštrukcií, ako je režim adresy, načítanie atď., A vytvoriť jednu zložitú inštrukciu. Inštrukcie CISC zahŕňa rad jednoduché inštrukcie, ako aj niektoré špeciálne inštrukcie, ktoré trvá dlhšie ako jeden hodinový cyklus spustiť. Pokyny CISC môžu pracovať priamo s pamäťou bez zásahu registrov, čo znamená, že vylučuje potrebu niektorých základných pokynov, ako je načítanie hodnôt a požiadavka na pamäť (RAM). Pokyny CISC kladú väčší dôraz na hardvér ako na softvér, čo znamená, že namiesto zaťaženia kompilátorov saCISC používa ako hardvér na dekódovanie a implementáciu pokynov tranzistory. Pretože je však inštrukcia zložitá a pozostáva z viacerých krokov, sú vykonávané vo väčšom počte hodinových cyklov.
Jednoduchá analógia, ktorá sa vás týka, je, keď vám povedia, aby ste otvorili knihu a prečítali si druhú stránku tretej kapitoly. V tejto sérii aktivít urobíte viac krokov, napríklad vyhľadanie knihy z tašky, ako prehadzovanie stránky do kapitoly 3 a potom prechod na druhú stránku kapitoly a potom začatie čítania. Ak sériu krokov spojíme do jednej inštrukcie čítania stránky 44 (čo je druhá strana číslo 3. kapitoly), dostaneme inštrukciu CISC.
Výpočtová sada so zníženou inštrukciou (RISC)
Prvý integrovaný čip navrhol Jack Kilby v roku 1958, ktorý bol oscilátorom, a v 70. rokoch vyšiel prvý komerčný mikroprocesor od spoločnosti Intel. Aj keď na začiatku procesorov neexistoval CISC. Ale s vysokými výpočtovými požiadavkami bola architektúra CISC čoraz zložitejšia a ťažšie zvládnuteľná. Celkový redizajn architektúry CISC známy ako RISC vyšiel od IBM od Johna Cokeho. Na rozlíšenie týchto dvoch architektúr boli zavedené pojmy RISC a CISC.
RISC je skratka pre výpočty s redukovanou inštrukčnou sadou. Hlavným motívom RISC bolo zaviesť jednotnosť veľkosti a vykonávania pokynov. Toto sa dosiahlo zavedením jednoduchej inštrukčnej sady, ktorú bolo možné vykonať ako jednu inštrukciu na cyklus, a to rozdelením zložitej inštrukcie, ako je načítanie a uloženie, do inej inštrukcie, pričom vykonanie každej inštrukcie trvá približne jeden takt. RISC architektúru obsahuje jednoduché inštrukcie o rovnakej veľkosti, ktoré by mohli byť vykonané v jednom hodinovom cykle. Počítače založené na RISC potrebujú viac RAM ako CISC, aby uchovali hodnoty pri načítaní každej inštrukcie do registrov. Vykonanie jedinej inštrukcie za cyklus dáva strojom založeným na RISC výhodu pipeline(pipeline je proces, v ktorom sa načíta ďalšia inštrukcia pred vykonaním prvej inštrukcie, čo zvyšuje efektivitu vykonávania). Zdôrazňuje architektúra RISC