Registre mikroprocesora
q Univerzálne registre AX, BX, CX, DX, slúžiace ako prechodná pamäť namiesto operačnej pamäti, na skrátenie prenosu dát. Každý z registrov 8086 má oddelený prístup k hornému bajtu, napríklad AH, k dolnej časti AL a aj celkove k AX, ako 16 bitovému registru. U novších 32 bitových procesorov sa na prístup k celému 32 bitovému registru používa označenie s E, napríklad EAX. Použitie týchto registrov môže byť ľubovoľné, v mnohých inštrukciách je však implicitné:
q Registre na špeciálne účely -SP, BP, SI, DI
q Riadiace registre - IP, F
Najdôležitejšie príznaky:
q Ďalšie registre pre správu virtuálnej pamäte
Podpora adresovania u mikroprocesora 80x86
Nepriama adresa alebo adresa druhého rádu je adresa, na ktorej až sa nachádza priama adresa. Nepriame registrové adresovanie. Inštrukcia s týmto adresovaním obsahuje vo svojom operačnom znaku príznak registra alebo skupiny registrov, v ktorých je uložená priama alebo ďalšia nepriama adresa operandu. Adresovanie ukazovateľmi. Každý procesor obsahuje špeciálne registre, ktorých obsah "ukazuje " na príslušné miesto a preto sa označuje ukazovateľ (pointer). Jedným takýmto ukazovateľom je počítadlo inštrukcii, resp. ukazovateľ inštrukcii IP druhým je ukazovateľ zásobníkovej pamäti SP. Relatívna adresa umiestnená v adresovej časti inštrukcie predstavuje tzv. posunutie (offset, displacement), t.j. údaj o relatívnej polohe operandu vzhľadom k určenému vzťažnému pamäťovému miestu. Adresa vzťažného miesta sa nazýva báza alebo bázová adresa a je uložená v bázovom registre. Autorelatívne adresovanie. V tomto prípade je bázovou adresou práve vykonávaná inštrukcia a úlohu bázového registra hrá počítadlo inštrukcii IP. Autorelatívne adresovanie sa najčastejšie používa u skokových inštrukcii. Segmentové adresovanie. Segmenty sú súvislé, funkčné samostatné úseky programov alebo polí dát, ktoré sa uchovávajú vo vonkajšej veľkokapacitnej pamäti a len podľa potreby sa presunú do hlavnej pamäti (dynamické premiestňovanie jednotlivých častí programu alebo dát). Indexové adresovanie.
Je
to veľmi užitočná modifikácia relatívneho adresovania. Je založená na
použití
tzv. indexového registra, čo je bázový register upravený tak, že sa po
použití automaticky inkrementuje alebo dekremnetuje. Mikroprocesor podporuje požitie 5 typov operandov: obsah registra, priamy operand a 3 spôsoby adries pamäti:
.
Fyzická organizácia pamätiV počítači s von Neumanovou architektúrou je procesor spojený s pamäťou prostredníctvom zberníc:
V počiatkoch počítačovej éry, keď pamäte boli drahé, bolo možné pomocou 20 bitovej adresovej zbernica počítača s CPU 8086 adresovať 1MB buniek (realny mód 8086). Pretože v CPU 8086 sa požívali 16 bitové registre, tak sa ujal spôsob segmentovej adresy, ktorý umožnil spočítaním obsahu 16 bit registra s posunutím z iného registra vytvoriť potrebnú 20 bitovú adresu, tzv logickú adresu. Štandardný zápis logickej adresy je Segment:Offset. Pri 16 - bitových registroch je segment blok pamäte, ktorý má veľkosť 64 kB a offset predstavuje adresu, pomocou ktorej sa možno pohybovať v danom segmente, teda v bloku 64 kB. Segmenty sa môžu aj prekrývať v programoch s príponou *.com. Tento typ programov môže mať maximálnu veľkosť 64 kB (1 segment). S tohoto dôvodu u programu s príponou *.com musia všetky segmenty začínať na tej istej adrese ( u programov s príponou *.exe neplatí toto obmedzenie). Pretože zápis 1000H:1F00H , 11F0H:0H , 1100H:0F00H a dokonca 1080H:1700H zodpovedá tej istej pamäťovej bunke, používa sa zápis v tvare tzv normalizovanej adresy, v ktorej má segment 16 bitovú hodnotu a offset je v rozmedzí 0 až FH. Hlavnou výhodou segmentácie je jednoduché premiestňovanie programových modulov. Pritom sa používa na určenie adresy prístupu do pamäti kombinácia obsahu:
Efektivna_adresa = segment + baza + index + ukazovateľ. Napríklad ak obsah {BX} = 10H je výsledný offset v efektívnej adrese 10H +{BX} = 20H. V príkladoch nasledujúcich inštrukcii mov al,[bx,si,D8] a mov AL,ES:[BX+SI+D8] majú "+" a "," v zátvorke [ ] rovnaký význam. (Nerozlišujú sa tiež znaky malej a veľkej abecedy). V prvej inštrukcii špecifikácia Intel implicitne predpokladá offset dát spojený so segmentom DS, v druhej inštrukcii je pomocou predpony - overide prefixu zadefinovaná väzba na iný segment ES. Príklad určenia výslednej fyzickej
adresy FFFF:0000H
= F000:FFF0H, pomocou logickej adresy
Virtuálna pamäťPočnúc procesormi s 32 bitovou adresnou zbernicou sa segment používa ako selektor do tabuľky segmentových deskriptorov (48 bitové slovo, obsahujúce 32 bitovú adresu začiatku segmentu - bázy, spolu so 16 bitovou špecifikáciou hraníc prideleného segmentu pamäti a prístupových práv k pamäti). Napríklad segmentový tvar adresy:
Selektor na bunku 0038H reprezentuje index do tabuľky segmentových deskriptorov so základnou adresou segmentu 012340H . Táto adresa sa štandardným adresovacím spôsobom pripočíta k offsetu 4321H na výslednú fyzickú adresu 016661H. S použitím tabuľky segmentových desktriptorov sa vytvára možnosť adresovať väčší adresový priestor, ako je použiteľná pamäť na základe fyzického adresovania ( pre 32 bitový procesor adresovanie 232 = 4GB ). Virtuálny adresný priestor má kapacitu 4GB*16kB= 64TB. Virtuálne adresy nie sú nutne identické s adresami fyzickej pamäte, avšak počas práce procesora je každá virtuálna adresa transformovaná na fyzickú adresu. Vďaka takémuto dynamickému prekladu adries môže byť architektúra softwarového systému nezávislá na architektúre konkrétneho hardwardového systému. Toto priradenie virtuálnej a fyzickej adresy sa nerealizuje pre každý bajt, lebo by príslušná tabuľka pre preklad bola enormne objemná. Pamäťové bunky sú preto pozhlukované do pamäťových blokov. Ak sú bloky rovnako veľké nazývajú sa stránky a správa virtuálnej pamäte sa nazýva stránkovanie pamäte. Ak je operačná pamäť dostatočne veľká na pojatie stránok so segmentmi programu a najčastejšie používanými dátami je virtuálna pamäťová schéma účinná a pomerne rýchla. Ak nie sú v operačnej pamäti momentálne k dispozícii potrebné dáta alebo potrebná časť programu treba ich zaviesť do hlavnej pamäti so sekundárnej pamäti, ale až potom, keď sa presunom vytvorí potrebný priestor => swapping (výmena) na základe žiadosti (demand). Pri častom vymeňovaní vzniká fragmentácia
pamäti (na malé množstvo kúskov pamäti lebo praktická veľkosť
typickej
stránky 512 bajt << ako veľkosť segmentu). Problém nastáva hlavne
pri multitaskingu, keď sa môže veľká časť strojového času počítača
spotrebovávať
už len na swapping. Správa pamätiJednotka pre správu pamäte tvorí rozhranie medzi adresami generovanými programom a skutočnými adresami v operačnej pamäti. Hlavný dôvod pre preklad adries je lepšie využitie operačnej pamäte.Druhou dôležitou úlohou jednotky správy
pamäti
je zabezpečenie ochrany pamäti. V modernom operačnom systéme môže
pracovať
zároveň niekoľko programov. Jednotka správy pamäti musí zabrániť
vzájomné
narušenie činnosti bežiacich programov a operačného systému. Ďalšia doplnková literatúra o mikroprocesoroch (anglicky, v zazipovanom tvare): Postup technologického vývoja mikroprocesorovPotreba
štandardizácie
Každá firma po nástupe mikroprocesorov využívala unikátne hardvérové riešenie a softvér. Dôsledkom bola nekompatibilita v hardvérovej, softvérovej a údajovej oblasti.(Pri prenose údajov z jedného typu počítača na iný bolo treba vytvárať špeciálne programy na konverziu dát. Situáciu zachránila IBM, ako v tom období najsilnejšia počítačová spoločnosť vytvorením otvoreného štandardu (IBM dala svoj návrh k dispozícii aj ďalším výrobcom), ktorý položil základy úspechu architektúry PC. V auguste 1981 IBM predstavila počítač, ktorý bol zložený z komponentov dodaných inými firmami (mikroprocesor od Intelu, operačný systém MSDOS od začínajúcej firmy Microsoft, diskovú jednotku od spoločnosti Tandom a niektoré ďalšie komponenty základnej dosky vyrobené v spoločnosti SCI System). Tento historický model IBM 5150PC obsahoval mikroprocesor Intel 8080, taktovaný na frekvencii 4,77MHz, základná verzia disponovala pamäťou RAM s kapacitou 16KB (v závislosti od modelu mohol mať až 256 KB). Počítač mohol byť rozšírený o jednu alebo dve disketové mechaniky (160KB). V roku 1983
predstavila IBM
inovovanú architektúru PCXT (Extended Technology) s mikroprocesorm
8088,
pracujúci na frekvencii 4,77MHz, so štandardnou pamäťou 128KB, pevným
diskom
s kapacitou 10MB a 5,25" disketovou jednotkou (podporujúcou diskety
360KB).
Poslednou aktivitou IBM v oblasti otvorených štandardov bolo uvedeniee
systému PC AT (Advanced Technology).
Čoraz viacej firiem
vstúpilo
do počítačového odvetvia. V okamihu keď trhový podiel IBM poklesol k
hranici
50% uviedla IBM na trh nový štandard, pod názvom Micro channel, ktorý
pod
dojmom znižujúceho sa trhového podielu už nebol voľne k dispozícii
ďalším
výrobcom, ale bol IBM licencovaný. Tento krok sa nestretol s pochopením
výrobcov a tí sa rozhodli pokračovať v zdokonaľovaní otvoreného
štandardu
na vlastnú päsť. IBM po období presadzovania vlastného štandardu sa
vrátila
do tábora PC, avšak trhový podiel vyšší ako 20%sa jej nepodarilo už
prekročiť.
Mikroprocesory Intel Intel bol prvou spoločnosťou, ktorá dala svetu polovodičovú súčiastku pod týmto názvom. V roku 1968 prevzal objednávku od japonskej spoločnosti Busicom, ktorá sa zaoberala výrobou kalkulačiek. Intel mal podľa dohody vyvinúť súpravu čípov, ktoré by Busicomu umožnili skonštruovať jednoduchšiu kalkulačku na báze programom modifikovateľného integrovaného obvodu. Keď bol čip hotový Busicom oň stratila záujem a tak sa v Inteli rozhodli dať novinku k dispozícii ostatným výrobcom. Tak sa v roku 1971 novinka pod označením i4004 stala prvým mikroprocesorom. Obvod bol vyrábaný technológiou 10um a obsahoval 2300 tranzistorov. Postupne sa dostávali an trh aj mikroprocesory ďalších výrobcov. K strategickému úspechu mikroprocesorov pomohlo spojenie IBM a Microsoftu, ktoré použilo mikroprocesory Intel s architektúrou x86 za základ štandardu PC. Mikroprocesory sa neustále vyvíjajú, pravidelne sa objavujú nové rady, sústavne dochádza k inovácii existujúcich typov. Mikroprocesory firmy Intel sa stali etalónom pre porovnávanie mikroprocesorov ostatných výrobcov. Dôležitou vlastnosťou radu Intel 80x86 je ich spätná kompatibilita. Nový mikroprocesor si tak so sebou nesie "záťaž" staršieho riešenia, ale je zároveň schopný pracovať s programami určenými pre jeho predchodcov. Užívateľ takto aj po inovácii svojho PC môže aj naďalej používať programy, na ktoré si zvykol. Z historického pohľadu predstavujú nasledovné typy medzníky vo vývoji PC:
80286 - v roku 1974 je 16 bitový mikroprocesor navrhnutý so zreteľom na potreby výstavby tzv. veľkých osobných počítačov, predstavovaných predovšetkým typom PC AT (Advanced Technologii) firmy IBM. Tento mikroprocesor vznikol revolučnou inováciou typu 8086. Architektúra 80286 je podstatne rozvinutejšia a poskytuje možnosti, ktoré sa s 8086 nedajú zabezpečiť. Tento procesor má 130 000 tranzistorov.
Aritmeticko-logická jednotka ALU okrem bežne používanej sčítačky obsahuje aj násobičku, deličku a posúvač. Operandy môžu mať dĺžku 8, 16 alebo 32 bitov. Na čípe ALU je realizovaná tiež jednotka riadenia pamäti, v ktorej sa prekladajú virtuálne adresy na reálne. Ochrana pamäti je štvorúrovňová, rovnako ako u 80286. Reálne adresy majú 32 bitov, takže možno priamo adresovať 4 GB pamäti, zatiaľ čo virtuálne adresy pri dĺžke 46 bitov umožňujú adresovať 64 TB. Mikroprocesor 80386 umožňuje simultánne
použitie
niekoľkých operačných systémov.
Vzhľadom na to, že inštrukcie sú zavádzané prúdove, je tento mikroprocesor schopný vykonávať niektoré inštrukcie v jednom cykle. Mikroprocesor má inštrukcie pre multiprocesorový režim a prostriedky pre pripojenie cache druhej úrovne. V mikroprocesoroch 80486 sa tiež používa
technika
zdvojovania frekvencie označovaná DX-2 (overdrive). Číp navonok
pracuje
s polovičnou frekvenciou, než akú udáva výrobca v dokumentácii.
Napríklad
procesor 80486DX2/66MHz pracuje vnútorne s touto frekvenciou, ale
navonok
je jeho frekvencia polovičná, t.j. 33 MHz. Vďaka tomuto riešeniu je
možné,
aby všetky operácie, ktoré sa vykonávajú vovnútri procesora (napr.
numerický
výpočet, alebo vnútriprocesorové presuny dát) prebehli s dvojnásobnou
frekvenciou.
Len externé operácie, ako sú napr. presuny dát do (z) operačnej pamäti
prebiehajú s rovnakou rýchlosťou ako u obyčajného procesora 80486. Ešte
výkonnejší procesor 80486DX4/100MHz pracuje vnútorne s frekvenciou
100MHz
a externe s frekvenciou 25 MHz. Ďalšim rozdielom je aj znížené
napájacie
napätie na 3,3 V. Mikroprocesor, ktorý dostal označenie Pentium sa pôvodne mal volať i80586, na základe dovtedy používanej konvencie označovania procesorov Intel. Pred uvedením nového mikroprocesora viedla spoločnosť Intel so spoločnosťou AMD súdny spor, ktorého predmetom bola otázka ochrany označenia mikroprocesora. AMD totiž uviedla na trh mikroprocesory am486, ktorých označenie sa od mikroprocesorov rovnakej rodiny líšilo len mierne. Verdikt súdu znamenal víťazstvo AMD. Intel na odlíšenie svojich mikroprocesorov od výrobkov ďalších výrobcov ktoré malo v konečnom dôsledku vplyv na cenu výrobkov osadených týmto procesorom) pomenoval novinku piatej generácie mikroprocesorov ako Pentium. Pentium z roku 1993 bol vyrobený technológiou 0,8 um, obsahoval 3,1 milióna tranzistorov a na trh sa dostal v dvoch verziach, líšiacich sa pracovnou frekvenciou - 66MHz a 25MHz. Mikroprocesor sa líšil od 486 rozšírením dátovej zbernice z 32 na 64 bit a dostal nové púzdro, ktoré sa však v histórii rodiny niekoľko krát menilo. Slot - vhodný pre mikroprocesory s veľkou pamäťou cache a pre servery, v ktorom má mikroprocesor má tvar karty a podobá sa na rozširujúci slot; Socket - pätica určená pre lacnejšie systémy; system on a chip - koncepcia uP integrujúca prakticky všetky dôležité komponenty potrebné pre konštrukciu počítača vrátane grafického adaptéra do spoločného púzdra.) Procesor mal pri frekvencii 66 MHz má spotrebu 16W a z tohto dôvodu bolo u neskoršich verzii znížené napájacie napätie z 5 V na 3,3 V. V Pentiu sa inštrukcii z pamäti cache presúvajú v šírke 256 bitov do fronty, ktorej plnenie ovplyvňuje blok predikcie skoku. Jeho úlohou je naplniť frontu tak, aby k vykonaniu boli pripravené inštrukcie ktoré nasledujú v pamäti, alebo inštrukcie z cieľovej adresy skoku. U viacerých inštrukcii výrobca upustil od predtým používanej mikroprogramovej realizácie (program je zostavený z mikroinštrukcii podľa algoritmu požadovanej operácie), takže sa inštrukcie môžu vykonať v jednom takte. Spôsob, ktorým sa táto jednotaktová inštrukcia realizuje sa nazýva zreťazené spracovanie inštrukcii (pipelining). Procesory Pentium s technológiou MMX obsahujú 4,5 miliona tranzistorov dovoľujú dodať vyšší výkon s nižšou spotrebou elektrickej energie. Okrem posilnenia inštrukciami MMX je procesor vybavený aj 32 kB pamäťou cache. Technológia MMX využíva techniky SIMD (Single Instrukction Multiple Data), ktorá dovoľuje spracovávať mnoho informácii počas jednej inštrukcie. Možnosti MMX technológie sa využívajú predovšetkým pri spracovaní videa a zvuku, pri 3D grafike, pri rozpoznávaní reči, pri komresii dát a pod. Pentium Pro (P6, 686) má viac ako dvojnásobný výkon než najrýchlejšie Pentium. Tento nárast umožňuje nový design procesora so štyrmi zreťazeniami (pipelines) na paralelné spracovanie príkazov a tiež integrovaná primárna a sekundárna medzipamäť cache. Pentium Pro má možnosť špekulatívneho vykonávania inštrukcii mimo poradie, ktoré sa uplatňuje napr. v prípade zistenia, že požadované dáta nie sú ešte vo vyrovnávacej pamäti. V takomto prípade Pentium Pro nečaká až budú dáta načítané z pomalšej pamäti, ale začne vykonávať ďalšie inštrukcie do tej doby, až budú informácie prístupné. Takto môže Pentium Pro odložiť vykonanie až 4 inštrukcii. Podobne postupuje procesor aj v prípade inštrukcie, ktorá závisí od výpočtu požadovaného operandu. Okrem toho Intel u Pentia Pro zaviedol
aj nový
zbernicový systém, umožňujúci komunikovať až 4 procesorom Pentium Pro,
ktoré majú logiku multiprocesingu nasadenú do každého čípu.
Vnútorná stavba nového procesora sa skladá z dvoch oddelených čípov (obr. 33b). Na jednej kremíkovej doštičke čípu je umiestnené vlastné jadro procesora a primárna procesorová cache (L1 cache). Na druhej doštičke je umiestnená sekundárna cache (L2 cache). Jedná sa o externú pamäť o kapacite 256kB (512 kB) priamo v puzdre procesora. Na oboch kremíkových doštičkách je okolo 6 milióna tranzistorov. Jadro procesora Pentium pro sa zásadne odlišuje od jadra Pentia. Už v Pentiu sa začalo s nahradzovaním komplexných príkazov jednoduchšími príkazmi RISC (Reduced Instruction Set Computer). Príkazy redukovaného inštrukčného súboru sú rýchlejšie spracovávané v dvoch paralelných zreťazených cestách pipeline. V Pentiu Pro sú nasadené 4 takéto zreťazenia pipeline. Procesor sa umiestňuje do 387 pinovej pätice socket 8 ZIF (nulová zasunovacia sila) s chladičom. Spoločne s procesorom Pentium Pro sa objavili nové zbernicové architektúry, v ktorých zbernica PCI predstavuje most cez ktorý môžu byť napojené ďalšie rozhrania klasických PC ako periférie ISA a EISA. Snahou Intelu (a tiež ďalšich výrobcov) je znížiť doterajšie napájacie napätia z hodnoty 3,3 V na 2,8 V a tak zmenšiť stratový výkon (pri frekvencii 150 MHz dosahuje 28W). Snahou výrobcov procesorov je dosiahnutie rýchlosti 250 až 300 MIPS a u systému so 4 procesormi Pentium Pro dosiahnuť až 1000 MIPS. Hoci Pentium Pro zvláda všetky príkazy sady 80x86 nie je oprimalizovaný pre 16 bitové programy, v dôsledku čoho pre vykonanie niektorých príkazov ich nedokáže rozložiť na fázy pipelingu a príkaz sa vykoná "starým spôsobom", t.j. pomalšie. Pentium II v sebe spojuje pokrokové architektúry procesora Pentium Pro a rozšíreného inštrukčného súboru technológie MMX. Procesor je navrhnutý predovšetkým na zýšenie výkonu v multimediálnych aplikáciách, komunikačnom software, videokonferenciach a plnoobrazovkovom zobrazení obrázkov a videa. Má novú technológiu púzdrenia, tzv. Single Edge Contact (Súčiastky sú upevnené na podložku a potom uzavreté do plastového a kovového krytu, ktorý tvorí vlastné telo procesora.). Nová architektúra odstraňuje obmedzenia, ktoré existujú pri použití jedinej zbernice, ako je tomu u generácie procesorov s päticou socket 7. Nová architektúra poskytuje až tri krát vyššiu priestupnosť dát. (Procesor Pentium II s taktovacou frekvenciou 450 MHz spolupracuje so zbernicou bežiacou na frekvencii 100 MHz.) K najnápadnejším charakteristickým rysom architektúry procesora Pentium II patrí:
Pentium III, Pentium 4 a ďalší kvalitatívny skok Mikroprocesor Pentium prešiel v rokoch 1993 - 2003 postupne 57 inovačnými verziami (10x Pentium, 4x Pentium MMX, 7x Pentium II, 16x Pentium III, 20x Pentium 4 - nesie v názve arabskú číslicu) pre desktopy, servery i mobilné počítače. Nástup technológie HyperThreading umožnil ďalšie zvyšovanie frekvencie systémovej zbernice (500 - 800 MHz). Potenciál aktuálnej architektúry umožní používanie ešte vyššej pracovnej frekvencie (3,4 až 4 GHz). Stále
ešte platí známy Moorov zákon, podľa ktorého sa výkon procesorov
zdvojnásobuje
každých 18 mesiacov. Zvyšovanie výpočtového výkonu mikroprocesorov
sa uberá cestou zvyšovania frekvencie jadra mikroprocesora - dôsledok
čoho
je nárast veľkosti čípu a spotreby (resp. potreba
mohutnejšieho,
najčastejšie medeného chladiča s väčším počtom rebier). Koncom roku
2002
sa objavili na trhu mikroprocesory s frekvenciou jadra v oblasti
3GHz.
Napríklad Intel Pentium 4 (Nortwood) s frekvenciou jadra 3,08GHz,
frekvenciou zbernice 533MHz, L2 Cache 512 kB, v ktorom je 55 miliónov
tranzistorov
rozmiestnených pomocou technológie 0,13um na ploche 127 mm2.
(Pre porovnanie procesor Pentium Pro bol založený na technológii 0,35
mm,
Pentia 3 boli vyrábané 0,25 mm technológiou a Pentia 4 sa
začali
vyrábať pomocou tzv. 0,18 mm technológie. Nová technológia
bright-peak,
ktorá pri výrobe masky umožňuje základné elementy zmenšiť na 20nm
(namiesto doterajšich 90nm. Okolo roku 2007 by sa mali objaviť
v
sériovej výrobe nové super rýchle tranzistory z kremíka, v ktorých
hrúbka
hradla nepresahuje 20nm, čo umožní ďalšie niekoľkonásobné zvýšenie
počtu
tranzistorov na čípe.) Kým na pokorenie prvého gigahertza potreboval
mikroprocesorový
priemysel dvadsaťpäť rokov (1974 - 2000), druhý zvládol za 17 mesiacov
(marec 2000 - august 2001) a na prekonanie hranice troch megahertzov už
to bolo iba 15 mesiacov (august 2001 - november 2002.) Pentium 4 Pentium 4 (nesie v názve arabskú číslicu) predstavuje zásadnú zmenu v porovnaní s predošlými mikroprocesormi (napr. Pentium III, založenými na mikro architektúre P6) . Nová architektúra Intelu nesie označenie NetBurst s kľúčovými črtami: 400 MHz zbernica
Hyper pipelined
Advanced
Transfer Cache
Hardware Data
Prefetch
Rapid Execution
Engine
Inštrukcie
Moderné mikroprocesory - zhrnutie1. Spracovanie viacero inštrukcii narazStaršie PC (až po 80486) používali sekvenčné spracovávanie inštrukcii, teda jednu po druhej. Moderné riešenia (Pentium, Pentium Pro) sa vyznačujú superskalárnou architektúrou, ktorá dokáže spracovávať niekoľko inštrukcii naraz. Superskalárnosť možno dosiahnuť rôzne - buď zdvojením niektorých funkčných celkov (Pentium), alebo premysleným návrhom mikroprocesora, vďaka ktorému môžu jednotlivé celky pracovať nezávisle na sebe (Power PC). Ani superskalárny mikroprocesor nemôže vždy paralelne spracovávať inštrukcie. Pokiaľ napríklad v programe nasledujú dve inštrukcie, z ktorých prvá pripraví údaje pre druhú, musia sa spracovávať sekvenčne. Druhým zrýchľujúcim prvkom
mikroprocesora je pipelining.
Jedná sa o mechanizmus, vďaka ktorému môžu aj nesuperskalárne
mikroprocesory
v skutočnosti spracovávať viac inštrukcii naraz. Spracovanie každej
inštrukcie
sa rozloží na viac fáz (dekódovanie, vyhľadávanie parametrov atď.) .
Akonáhle
je jedna fáza inštrukcie hotová, postúpi táto inštrukcie do ďalšej
fáze.
Uvoľnenú fázu začne používať nasledujúca inštrukcia. Celý proces
pripomína
pásovú výrobu, kde do jednotlivých výrobných fáz vchádza jeden výrobok
za druhým.
Čoraz vyššie nároky na výkon procesora pri spracovaní trojrozmernej grafiky a multimediálnych aplikácii odhaľujú slabé miesta v architektúre procesorov generácie Pentium. Firma Intel v snahe zrýchliť komunikáciu procesora s hlavnou pamäťou a s grafickým systémom zaviedla v generácii Pentium II niekoľko technologických noviniek:
O multimediálnych aplikáciach je známe,
že priveľmi
zaťažujú procesor. Doterz už bolo zverejnených viacero multimediálnych
inštrukčných rozšírení, napríklad MMX
(Matrix
Manipulation eXtension) pre architektúru x86 firmy Intel.
Podpora
MMX z pohľadu architektúry mikroprocesora pozostáva v rozšírení
inštrukčnej
sady (u Intelu o 57 nových inštrukcii), o zavedenie ôsmich nových MMX
registrov
a štyroch nových údajových typov. Základným kameňom všetkých nových
údajových
typov je 64-bitové celé číslo v dôsledku združenia štvoríc bajtov alebo
dvojíc 16-bitoých slov do 64-bitového slova pre spoločné spracovanie. V
doterajších čipoch Intelu (P55C, Klamath a Pentuim Pro) sú 64-bitové
multimediálne
registre spoločné pre aritmeticko-logickú jednotku (ALU) a pre jednotku
operácii s pohyblivou rádovou čiarkou (FPU) a preto sa inštrukcie MMX
nemôžu
vykonávať paralelne s inštrukciami FPU. Tento dôvod, poprípade aj časté
prepínanie medzi módmi FPU a MMX, má nepriaznivý dosah na výkonnosť.
Procesor
Alpha so svojou sadou 32 (štyrikrát viac ako u Intel MMX) 64-bitových
celočíselných
registrov môže spracovávať multimedálne inštrukcie paralelne s inými
celočíselnými
operáciami. So zvyšovaním frekvencie (Pentium III
používa
internú frekvenciu 800 MHz, Pentium 4 až 3GHz) a zmenou
architektúry
procesorov sa mení aj spôsob pripojenia procesora. S doposiaľ (v
Pentiu)
používanej pätice (Socket 7 s 296 vývodmi pre architektúru s
jedinou
zbernicou o šírke 64 bitov, ktorá môže pracovať pri maximálnej
frekvencii
66 MHz, Socket 8 s 387 vývodmi a integrovanou pamäťou cache L2,
ktorá pracuje na rovnakej frekvencii ako jadro mikroprocesora a ktorá
komunikáciu
medzi procesorom a pamäťou cache uskutočňuje cez samostatnú zbernicu,
čím
nezaťažuje systémovú zbernicu) sa stáva slot (konektor - Slot I
a Slot II) a z integrovaného obvodu označovaného termínom
mikroprocesor
v úpravách Pentia Pro a Pentia II sa stáva modul, združujúci
niekoľko
integrovaných obvodov. Napríklad základné dosky s päticou pre mikroprocesorový modul:
Významnú úlohu vo výkone počítača má veľkosť
a typ pamäte cache. Cache pamäť je rýchla statická pamäť RAM, do
ktorej
sú ukladané údaje pred zápisom do pomalšieho zariadenia. Pri základných
doskách s procesorom radu Pentium je to cache 2 úrovne (L2), ktorá
sprostredkováva
rýchlejší prístup procesora k operačnej pamäti a na periférie. Základná
doska pre procesor Pentium II neobsahuje pamäť cache ale sa využíva
pamäť
cache integrovaná na doštičke s procesorom, ktorý sa pripája pomocou
slotu
1. Integrovaná pamäť cache L2 má veľkosť 256 až 512 kB. Podobný princíp
využiva aj pamäť cache prvej úrovne (L1 o veľkosti 16 až 64 kB), ktorá
je integrovaná v procesoroch. Niektoré kontoléry periférii, z dôvodov
rýchleho
prístupu používajú aj pamäť cache, zloženú z modulov RAM s kapacitou
4MB
a viac. Na podobnom princípe pracuje aj softwarová pamäť cache v
operačnom
systéme DOS (SmartDrive)
4. Integrácia PC do čípuSúčasné technologické možnosti umožňujú integrovať do jedného čípu nielen mikroprocesor, ale aj množstvo ďalších komponentov. Dôvodom pre integráciu je zníženie ceny a zníženie náročnosti výroby počítačov.Druhým dôvodom je zvyšovanie
výkonnosti počítačov.
V klasických počítačových systémoch, kde pracuje procesor na vysokej
pracovnej
frekvencii, pri požiadavke na operáciu s údajmi v pamäti či na
grafickej
karte, keď je potrebné na ich presun z a do mikroprocesora využiť
niekoľko
rozhraní a pomalé zbernice, ktorých pracovné frekvencie sú o viac ako
polovicu
nižšie ako pracovná frekvencia mikroprocesora takže limitujú výslednú
rýchlosť
prenosu. Nevýhoda takéhoto riešenia (obr. 36) je potom nižší výkon,
lebo
mikroprocesor musí časť svojho výkonu "obetovať" na emuláciu niektorých
funkcii jednotlivých zariadení. Príkladom nového typu procesora môže
služiť
mikroprocesor MediaGX firmy National Semiconductor (Cyrix) na obr. 37.
5. HyperThreading - cesta k zvyšovaniu výkonu mikroprocesora Jednou z možností ako ďalej zvýšiť výkonnosť mikroprocesorov je využitie skutočnosti, že súčasné operačné systémy umožňujú súbežný beh viacerých aplikácii - multitasking a niektoré aplikácie aj interne využívajú súbežné spracovanie kódu - multithreading. Zdvojnásobnením
počtu výpočtových jednotiek sa nedá lineárne zvyšovať výkon, pretože
nie
je možné prakticky dosiahnuť, aby v každom inštrukčnom cykle
spracovával
mikroprocesor rovnaký počet inštrukcii. Obmedzením paralelizmu pri
spracovaní
je samotný spracovaný programový kód. Dokonca ani jeho optimalizáciou
nie
je možné dosiahnuť ideálny stav - naplnenie všetkých výkonových
jednotiek.
Mikroprocesor Pentium 4 okrem prekročenia frekvencie 3GHz priniesol
ďalšie
zvýšenie výkonu vďaka podpore technológie HyperThreading.
Princíp činnosti mikroprocesora s podporou HyperThreadingu spočíva v tom, že mikroprocesor sa pre operačný systém i pre aplikácie tvári, akoby obsahoval dve jadrá. (Obr. 37c-b. V súčasnosti je podpora HyperThredingu sprístupnená pre OS Windows XP a Linux). Štruktúra mikroprocesora však zostáva nezmenená pokiaľ ide o výkonové jednotky, obvody spolupráce s pamäťami a samotnú cache. Prepracovaná, presnejšie zdvojená, je však časť jadra mikroprocesora (registre a stavový vektor), určujúca aktuálny stav výpočtového procesu. Vďaka
tejto úprave možno veľmi rýchlo (jeden cyklus) a efektívne prepínať
medzi
jednotlivými treadmi. To je vhodné napríklad vtedy, ak jedna z úloh
čaká
na údaje z hlavnej pamäte. Takáto manipulácia je možná s každou
výkonovou
jednotkou. V podstate je tento princíp možné prirovnať k vypĺňaniu
medzier.
V momente, keď jedna úloha nie je schopná obsadiť všetky výkonné
jednotky,
je voľný priestor daný k dispozícii druhej úlohe (Obr. 37b-b)
Do budúcnosti sa dá očakávať nová verzia mikroprocesora Pentium 4 (Nehalem), ktorý by sa mal pre software "tváriť" ako štvorica mikroprocesorov. 6. Prognózy do blízkej budúcnosti v oblasti technológie Zrýchľovanie a "zahusťovanie" mikroprocesorov v procese ich vývoja ilustruje nasledujúca tabuľka:
Až miliardu tranzistorov by mohli v roku 2007 obsahovať mikroprocesory novej generácie. (Dnešné Pentium 4 ich obsahuje len 55 miliónov.) Problém, ktorý trápi výrobcov mikroprocesorov: ako vyrábať výkonné mikroprocesory, ktoré by nespotrebovávali toľko elektrickej energie ako doposiaľ a ktoré by sa toľko nezohrievali zdá sa, že sa podarilo vyriešiť americkej spoločnosti Intel. Problém: Na základnú dosku z kremíku sa umiestňuje už dnes stále viac tranzistorov, ktoré sú veľmi malé a medzi ktorými v dôsledku nedostatočnej izolácie dochádza k nekontrolovateľným únikom prúdu (napríklad u čípu Pentium 4 sa kvôli tomu spotrebuje až 40% energie na nežiadúce teplo). Návrh riešenia problému: Únikom prúdu možno podľa vývojárov Intelu zabrániť zmenou látky, ktorou sa jednotlivé tranzistory od seba izolujú. Dnes sa používa oxid kremičitý o hrúbke len 5 molekúl, čo nestačí na dobré izolačné vlastnosti. Intel nechce zverejniť zloženie nového materiálu ale predpokladá sa že by ním mohol byť oxid hafnia. (Hafnium je kov, ktorý sa používa aj v regulačných tyčiach jadrových elektrární. ) Okrem toho chce Intel nahradiť aj materiál na elektródach tranzistorov. Tiež nie je známa špecifikácia nástupcu súčasného polykryštalického kremíka. Intel predpokladá, že nový typ mikročípu sa na trh objaví v roku 2007. Nástupcovia súčasných Pentii by to mohli v roku 2010 v oblasti pracovnej frekvencie dotiahnuť na hranicu 15 - 20 GHz. (Výkon mikroprocesora =IPC (počet inštrukcii vykonaných za jednotku času) * pracovná frekvencia. Teda nielen pracovná frekvencia!!) Už v roku 2004 sa pravdepodobne prekoná pracovná frekvencia 5-7 GHz a očakáva sa:
Do konca roka 2003 by sa mali uviesť na trh produkty (mikroprocesory a k nim podporné čípové súpravy) vyrábané prostredníctvom 90-nanometrovej technológie, do konca roku 2009 sa očakáva postupný prechod na technológie 65, 45, 32 nanometrov. Problémom
súčasných
čipov prestane byť zvýšenie výkonu na základe zvýšenia počtu
tranzistorov
na univerzálnom čípe. Postupne výrobcovia čípov a vývojári zariadení sa
od myšlienky univerzálneho čípu prikláňajú k myšlienke špecializovaného
čípu (System On a Chip až ku koncepcii Device On a Chip) - teda k
výrobe
čípov na konkrétne nasadenie. Mílniky OS Windows
AssemblerStrojová inštrukcia je kódový príkaz na vykonanie strojovej operácie. Úplný súbor strojových inštrukcii tvorí tzv. strojový jazyk alebo strojový kód. Programovanie v strojovom kóde je namáhavé a vzniknuté programy sú neprehľadné. Preto sa častejšie programuje v jazyku symbolických adries - asembléri (assembly language).Pseudoinštrukcia (direktíva) je príkaz symbolického programovacieho jazyka, ktorý sa neprekladá do cieľového programu, ale ovplyvňuje prekladač. Makroinštrukcia je pokyn pre prekladač, aby do cieľového programu zaradil vopred definovanú postupnosť inštrukcii, tzv. rozvoj makroinštrukcie, čo je vlastne otvorený podprogram. Najjednoduchším spôsobom ovládania procesora je strojový kód (machine cod), teda kód v tvare postupnosti jedničiek a núl. Pretože tvoriť program priamo v niektorej z číselnych sústav (binárnej, dekadickej, hexadecimálnej) by bolo náročné, používa sa jednoduchšia forma zápisu : symbolický zápis inštrukcii - assembler. Prednosťou assemblera voči iným vyššim programovacím jazykom je rýchlosť vykonania kódu a zaroveň to, že zaberá v pamäti čo najmenej miesta. Program je ľahko prenositeľný na rôzne typy počítačov a zabezpečuje úplnú kontrolu nad programom. Minusom assemblera je i pri krátkom programe pomerne dlhý zdrojový text, ťažšie hľadanie chýb, takže programovanie aplikácii zaberie viac času ako pri vyšších programovacich jazykoch. Assembler sa často používa aj v programoch napísaných vo vyšších programovacích jazykoch vo forme krátkych a rýchlych rutín. Takto možno dosiahnuť zrýchlenie, hlavne pri kritických častiach programu, ktoré by inak trvali veľmi dlho. Pri používaní assemblerovských rutín sa väčšinou nedá vyhnúť potrebe odovzať rutine nejaké parametre. Najčastejší ide o hodnoty premenných daného modulu. Parametre sa odovzdávajú buď priamo cez registre alebo cez zásobník.
Zhrnutie základov o mikroprocesorochS pohľadu programátora sú najpodstatnejšou súčasťou mikroprocesora jeho registre :
Obdoba tohto koincidenčného spôsobu adresovania sa používa pre virtuálne adresovanie (48bitové slovo , pozostávajúce z 32 bitov adresy začiatku segmentu - bázy, spolu so 16 bitovým - selektorom, ktorý špecifikuje hraníce prideleného segmentu pamäti a prístupové práva k pamäti ). Selektor reprezentuje index do tabuľky segmentových deskriptorov so základnou adresou segmentu . ktorá sa potom štandardným adresovacím spôsobom pripočíta k offsetu na výslednú fyzickú adresu. S použitím tabuľky segmentových desktriptorov sa vytvára možnosť adresovať väčší adresový priestor ako je použiteľná pamäť na základe fyzického adresovania ( pre 32 bitový procesor adresovanie 232=4GB ). Virtuálny adresný priestor má v tomto prípade kapacitu 4GB*16kB= 64TB. Virtuálne adresa je dynamicky prekladaná na fyzikálnu adresu nie po adresách jednotlivých buniek pamäte ale po blokoch buniek pamäte, ktoré sa nazývajú stránky. Jednotka správy pamäti zabezpečuje ochranu pamäti v systéme, v ktorom môže pracovať zároveň niekoľko programov. Jednotka správy pamäti musí zabrániť vzájomné narušenie činnosti bežiacich programov a operačného systému. Hierarchická ochrana pamäte je založená na rozdelení úloh do privilegovaných úrovní (kernel, supervízor, univesal user, user). Potreba určitej štandardizácie hardvérového riešenia ako aj softvéru (operačný systém) si vyžaduje pridŕžať sa spätnej kompatibility so staršími typmi mikroprocesorov na základe požiadaviek určitej skupiny používateľov so starším hardvétom, čo predstavuje nevýhodu pre vývojarov - napr. už od určitého stupňa vývoja, ktorý prestavuje nástup Pentia Pro prestalo byť možným optimalizovať v tomto mikroprocesore vykonávanie kódu programu, pozostávajúceho z "nemoderných" 16 bitových inštrukcii. Pomocou nových technológii možno:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||