Architektúra
mikroprocesorov a mikropočítačov
Počítač (computer)
je podľa definície stroj na číslicové a logické spracovanie údajov, ktorý
pracuje podľa programu vopred uloženého do pamäti.
Procesorom (CPU - central processor
unit) sa rozumie základná jednotka počítača, t.j. logický automat
pre spracovanie informácii, obsahujúci hlavne aritmetickú (ALU) jednotku
a riadiacu jednotku. Je to vlastne "počítač bez hlavnej pamäte a a bez
periférnych zariadení". Mikroprocesor je CPU vyrábaný technológou veľkej
integrácie. Procesory sa oceňujú predovšetkým podľa:
-
Rýchlosti CPU (v Hz)
-
Efektivita mikrokódu, charakterizujúca počet krokov
potrebných na vykonanie jednej inštrukcie (napr. vynásobenie dvoch čísel).
-
Počet inštrukčných kanálov, udávajúci maximálny počet
inštrukcii, vykonávateľných počas jedného taktu procesora (napr. 4).
-
Šírka slova (v počte bitov) určuje jednak maximálne
číslo, ktoré je schopný procesor spracovať počas jednej operácie a tiež
udáva veľkosť dátovej zbernice procesora, ktorá slúži na prenos dát do
a z procesora.
-
Interná cache pamäť, ktorej použitie si vyžiadala
nutnosť prispôsobiť prístupovú dobu pamäti k taktu procesorov. Interná
cache pamäť je súčasťou procesora. Medzi procesor a operačnú pamäť sa vkladá
tzv. externá (L2, sekundána) vyrovnávacia pamäť (s kapacitou 32 - 1024
kB), označovaná ako cache pamäť
-
Veľkosť adresovateľnej pamäte, ktorá udáva veľkosť
pamäte, ktorú je schopný procesor používať. V programe býva zadaná ako
tzv. logická (virtuálna) adresa. Táto virtuálna adresa sa potom určitým
mechanizmom (závislým na type procesora) prevádza na tzv. fyzickú adresu,
ktorá je už adresou ukazujúcou na konkrétnu pamäťovú bunku v operačnej
pamäti.
Riadiaca jednotka (controller, control
unit) je časť procesora, ktorá riadi vykonávanie operácie a
chod celého procesora podľa inštrukcii programu. Riadiaca jednotka pozostáva
z časti:
-
Register inštrukcii, ktorý uchováva operačný
znak inštrukcie počas jej vykonania.
-
Dekodér inštrukcii, ktorý obsah dekóduje a
generuje riadiace signály pre procesor.
Pod architektúrou procesora rozumieme ideový
návrh, t.j. vytýčenie hlavných princípov jeho výstavby s prihliadnutím
na potreby programovania, členenia na najdôležitejšie časti a stanovenie
ich vlastností atď. K charakteristike architektúry patrí: výpočet registrov
a ich funkcii, popis vnútorných a vonkajších zberníc, spôsob adresovania
a inštrukčný súbor. Analogicky sa chápe aj architektúra mikropočítača.
Táto je predovšetkým predurčená použitým mikroprocesorom a požiadavkami
na prostredie.
Zásobníková pamäť (stack) je špeciálna
pamäť RWM so sekvenčným prístupom. Charakteristické je pre ňu výber dát
v opačnom poradí (LIFO - Last In First Out), než v akom do nej boli
ukladané. Tu sa s výhodou používa tzv. Ukazovateľ zásobníkovej pamäte
SP (Stack Pointer), čo je vlastne počítadlo s predvoľbou.
Fronta (Queue) alebo tiež FIFO (First
In First Out) sú názvy pre pamäť RWM so sekvenčným prístupom. Dáta
sa vyberajú v tom poradí v akom boli do nej ukladané.
Princetonská architektúra
(podľa Johna von Neumana)
Von Neumanova koncepcia. Procesor
má k dispozícii len jednu množinu adries a preferencia adries po uložení
programu je v moci programátora. Tým vyniká možnosť spracovávať inštrukcie
ako dáta a tak modifikovať program. Podľa tejto koncepcie sú postavené
takmer všetky väčšie počítače, mikroprocesory a mikropočítače. Dnešné počítače
na rozdiel od von Neumanovej schémy môžu pracovať s viacerými procesormi
a tiež paralelne s viacerými programami zároveň (tzv. multitasking), čo
vedie k efektívnejšiemu využívaniu strojového času. Program sa tiež nemusí
v dnešných počítačoch zaviesť naraz celý ale je možné zaviesť len jeho
časť a ostatné časti zaviesť až v prípade potreby.
Dáta a inštrukcie podľa von Neumanovej koncepcie
sú uložené v spoločnej pamäti. Prístup k inštrukciám a dátam prebieha sekvenčne
striedaním cyklov F a X ( F - Fetch - výber, X - Execute - vykonaj) :
-
Cyklus F - > Obsah CS:IP definuje adresu pamäte.
Z pamäte po dátovej zbernici vstupujúce dáta na základe kontextu sú interpretované
ako operačný kód a vstupujú do registra inštrukcii , dekódujú sa a ukladajú
sa do fronty inštrukcii.
-
Cyklus X - > Po dekódovaní kódu inštrukcie
sa vykoná vlastná inštrukcia, ktorej kód sa získal z fronty inštrukcii.
Dôsledok sekvenčného striedania cyklov F a X je nižšia
priechodnosť dát a inštrukcii. Nie všetky inštrukčné cykly sa však obracajú
k pamäti. Počas intervalu keď je zbernica voľná možno pristúpiť k pamäti
a uskutočniť predvýber (prefetch) operačného kódu inštrukcie alebo operandu
s tým, aby sa inštrukcia skôr zaradila do fronty (FIFO) predpripravených
inštrukcii, ktoré sa budú vykonávať. Procesor tak spotrebuje menej
cyklov strojového času. Ďalšie zefektívnenie sa dosahuje pomocou prekrývania
dekódovania inštrukcie s posledným krokom vykonávania predošlej inštrukice.
= > zreťazené spracovanie inštrukcii-pipelining.(napriklad
4 stupňové pipeline: čítanie inštrukcie, dekodovanie, vykonanie, uloženie
výsledku).
 |
 |
obr. 2a Princetonska (von
Neumannova)
architektúra počítača. |
Obr. 2b Hardvardská.(Aikenova)
architektúra počítača. |
Hardvardská architektúra
(podľa Howarda Aikena)
Hardwardská koncepcia na rozdiel od von
Neumanovej predpokladá existenciu dvoch oddelených pamätí. V prvej
sú uložené programy a v druhej sú uložené dáta.
Programový kód a dáta sú uložené v oddelene adresovaných
oblastiach pamäte. Môže sa prekrývať čítanie a vykonávanie inštrukcii.
Priechodnosť inštrukcii a dát možno zvýšiť:
-
minimalizovaním času potrebného na vykonanie inštrukcie;
-
rozdelením jednotlivých inštrukcii na menšie úseky,
prekrývanie cyklov.
Hardvardská architektúra umožňuje paralelné spracovanie
dát ( niekoľko paralelne zapojených ALU, keď fyzické oddelenie inštrukcii
a dát umožňuje súčasný prístup k obom. - RALU rekonfigorovateľné ALU v
ktorých načítanie dát sa vykoná 1 impulzom).
Napríklad v mikroprocesore 80486 (obr.6) sa vnútri
procesora používa hardvardská koncepcia s nezávislými zbernicami, ktoré
umožňujú nezávislý prúd dát a adries a pre externý prístup k procesoru
kvôli úspore vývodov sa používa princetónska koncepcia.
 |
Obr. 3. Časový priebeh spracovania
inštrukcii podľa von Neumanovej architektúry. Na vykonanie inštrukcie LDAA
(Ulož obsah zvolenej pamäťovej bunky do akumulátora) s pamäťovou referenciou
je treba viac taktov ako na vykonanie inštrukcie s registrovou referenciou
CLRB (Vynuluj obsah akumulátora ) |
 |
Obr. 4. Hardvardská architektúra
umožňuje pomocou principu zreťazenia (Pipeline) znížiť trvanie cyklu inštrukcii
a tak zvýšiť priechodnosť inštrukcii a dát. Pri aplikovaní principu pipeline
treba rozdeliť jednotlivé inštrukcie na menšie úseky - na obrázku zavádzanie
(Load), výber (Fetch) a vykonanie (Execute). (Označenie PC1, PC2, PC3 reprezentuje
obsah počítadla inštrukcii.) |
.
Zvláštnu pozíciu medzi predošlými koncepciami
zaujíma princíp tzv. zásobnikovo orientovaného procesora. Je to
procesor, ktorý prijíma zvonka dáta v presne stanovenom poradí do svojej
zásobníkovej pamäti a výsledky operácii ukladá zase do zásobníka.
Pokročilejšie architektúry
Základným nedostatkom jednoprocesorových počítačov
je ich pomalosť, podmienená sériovým spôsobom činnosti. Takýto procesor
postupne číta inštrukcie, potom operandy a až potom vykonáva príslušnú
operáciu a ukladá výsledok. Až potom číta zase ďalšiu inštrukciu. Na odstránenie
tohto nedostatku sa ponúkajú rôzne architektúry s využitím viacero procesorov
pre jednu úlohu. Ako také môžu byť typy :
-
Zreťazené procesory.
-
Paralelná sústava procesorov (multiprocesory).
-
Procesorové pole (maticové procesory).
Ďalšie nástroje na zvýšenie výkonu
procesorov predstavuje presahovanie a zreťazenie inštrukcii.
-
Presahovanie (overlapping) spočíva v tom,
že vykonávanie niektorých inštrukcii sa v procesore dokončuje v intervale,
ktorý prislúcha už ďalšej inštrikcii.
-
Zreťazenie (pipelining) možno chápať ako presahovanie
v procesore, ktorý sa skladá z radu sériove zaradených subprocesorov. Ide
o pokročilejšiu architektúru zreťazených procesorov.
Zreťazené
procesory
Koncepcia zreťazeného spracovania vo výpočtovom
systéme je podobná koncepcii výrobnej linky. Na dosiahnutie zreťazenia
treba rozdeliť úlohu do postupnosti dielčích úloh, z ktorých každá môže
byť vykonávaná samostatnými technickými prostriedkami. Jednotlivé časti
pracujú súbežne. Každý modul v takejto zreťazenej jednotke vykonáva určitú
podúlohu realizovaného algoritmu, pričom funkčne závisí od predchádzajúceho
modulu. V ideálnom prípade sa podúlohy v moduloch realizujú za rovnaký
časový interval. V opačnom prípade sa najpomalší modul stáva tzv. "úzkym
miestom". Zreťazenie možno rozdeliť na:
-
Zreťazenie aritmetické, ktoré sa dosahuje
v aritmeticko-logickéj jednotke (ALU).
-
Zreťazenie inštrukcii, ktoré sa dosahuje v
zreťazenej inštrukčnej jednotke (Instrukction Unit), ktorej činnosť je
rozdelená napr. na načítanie inštrukcie z pamäti, dekódovanie inštrukcie,
výber operandov z pamäti a na vlastné vykonanie inštrukcie. V jednej z
prvých implementácii tejto technológie v mikroprocesore 8086,
ktorý je rozdelený na jednotku BIU (Bus Interface Unit) a EU
(Execution Unit). Tieto jednotky tvoria dvojstupňové zreťazenie inštrukcii
(v procesore 486 už štvorstupňové zreťazenie). Väčšina 32 bitových procesorov
používa techniku zreťazenej funkčnej jednotky. Pred vykonaním inštrukcie
je potom k dispozícii fronta pripravených inštrukcii.
-
Zreťazenie procesov. Na základe konfigurácie
reťazca a riadenia zreťazeného výpočtu sú klasifikované rôzne typy zreťazených
systémov:
-
monofunkčné resp.multifunkčné reťazce - vykonávajúce
v jednom časovom okamihu len jednu resp.viaceré funkcie.
-
Statické, resp. dynamické reťazce - predokladajúce
v jednom časovom okamžiku len jednu funkčnú konfiguráciu, resp. umožňuje
súčasnú realizáciu niekoľkých funkčných konfigurácii.
-
Skalárne resp. vektorové reťazce - schopných spracovávať
sekvenciu skalárnych operandov, resp. spracovanie vektorových inštrukcii
nad vektorovými operandami.
 |
Obr. 5. Predspracovanie fronty
inštrukcii v CPU. Počas zaneprázdnenia BIU vykonávaním aktuálneho hodinového
cyklu sa môže vybrať z pamäti nasledujúce slovo (z adresy špecifikovanej
počítadlom inštrukcii IP), ktorého operačný kód po následnom dekódovaní
môže byť uložený do fronty predspracovaných inštrukcii |
 |
Obr. 6. Vnútorná štruktúra CPU
80486. Z dôvodov úspory pinov CPU je jeho vnútorná architektúra Hardvardská
a externá von Neumannova. Vnútri CPU existujú nezávislé zbernice, s oddelenými
datovými a inštrukčnými vyrovnávacími pamäťami typu cache, takže tok dát
a inštrukcii môže prúdiť súčastne. Predspracovaná fronta inštrukcii takto
môže byť doplňovaná operačnými kódmi inštrukcii z inštrukčnej cache, zatiaľ
čo vykonávacia jednotka EU zapisuje dáta do dátovej pamäti typu cache. |
Z hľadiska obmedzenej kapacity pamäti internej
cache (napr u mikroprocesora 80486 len 8192 bajtov) by mali byť inštrukcie
čo najkratšie, resp. je treba používať registre na prechodnú úschovu operandov.
Vďaka architektúre mikroprocesora 80486 s pipelingom (zreťazením) možno
vykonať v najlepšom prípade jednu inštrukciu za takt (CPI - clock
per instruction)
 |
Obr. 7. Vnútorná štruktúra CPU
80686. S cieľom dosiahnuť vykonanie viac ako jednej inštrukcie za takt
sa inštrukcie delia na niekoľko (6 - 8) operácii, ktoré sa vykonávajú v
oddelených jednotkách CPU (na obr. vykonávacia jednotka - Execution Unit
1 a Execution Unit 2). Vďaka tejto technickej úprave môže takýto superskalárny
CPU vykonať viac ako jednu inštrukciu za takt CPU. |
Rýchlosť počítača
Elektronické obvody fyzicky tvoriace mikroprocesor
potrebujú synchronizačné impulzy, ktoré určujú ich "pracovné tempo". Každá
základná doska PC je vybavená generátorom hodinovej frekvencie CLK, generujúcim
vnútorné taktovacie impulzy pre mikroprocesor (pracovná frekvencia mikroprocesora
F).
Niektoré základné dosky poskytujú možnosť voľby viacerých frekvencii pomocou
prepinača (napriklad pre turbo a normalny režim). Čím je vnútorná frekvencia
mikroprocesora CLK vyššia, tým rýchlejšie pracuje mikroprocesor, ale tiež
sa viac zahrieva.
Obvody na základnej doske PC mimo mikroprocesora
pracujú pomalšie ako mikroprocesor. Základová doska je vybavená len jediným
časovacím obvodom, ktorý generuje jednak vnútorné synchronizačné impulzy
mikroprocesora ako aj vonkajšie taktovacie impulzy pre moduly
na základnej doske, ktorých frekvencia je podielom vnútornej hodinovej
frekvencie. V prvých typoch Pentia bola vnútorná frekvencia (100 MHz) 1,5
násobkom vonkajšej frekvencie (66 MHz) na pinoch obvodu (pre systémovú
zbernicu). V moderných typoch Pentia je tento násobok vyšší (3 a viacnásobok)
vonkajšej frekvencie 66 MHz zbernice).
Rýchlosť mikroprocesorového systému závisí od
nasledujúcich hlavných faktorov:
q
Systémovej hodinovej frekvencie CLK, od trvania taktu T a od trvania strojového
cyklu M.
Na rýchlosť spracovania programu majú v zásade
vplyv nasledujúce faktory:
-
Počet inštrukcii v programe: čím viac inštrukcii,
tým dlhšie trvá spracovanie.
-
Strojový cyklus M je základnou jednotkou
práce procesora a predstavuje dobu potrebnú na vykonanie elementárnej,
ďalej nedeliteľnej činnosti, napríklad inštrukcie. Jeden strojový cyklus
M (na obr. 3) sa vykoná za niekoľko taktov T.
-
Obecne inštrukčný kód (Op code) musí špecifikovať
typ operacie a umiestnenie operandov. Často sa kvoli skráteniu inštrukčného
kódu implicitne predpokladá, napriklad že jeden operand je uložený v akumulátore
a že výsledok operácie tiež bude uložený v akumulátore. Potom stačí ak
kód špecifikuje len adresu druhého operandu. Napríklad pre CPU 8080 má
inštrukcia medziregistrového presunu tvar 01 SSS DDD. (01 je Op code a
3 bit informácia charakterizuje číslo zdrojového SSS a cieľového registra
DDD.)
-
Doba trvania jedného taktu T alebo systémová hodinová
frekvencia CLK = 1/T. (Pre CPU typu 80x86 býva CLK ~ 5 - 200 MHz). V moderných
procesoroch so zreťazeným spracovaním inštrukcii (pipelining - napríklad
4 stupňova pipeline: čítanie inštrukcie, dekódovanie, vykonanie, uloženie
výsledku ) je pracovná frekvencia mikroprocesora CLK niekoľkonásobkom pracovnej
frekvencie 1/T na systémovej zbernici.
-
Synchronizácia - využitie jedno
alebo dvojfázového cyklu hodinových impulzov CLK behom strojového cyklu
M ako okamihu zmeny stavu obvodov (či sa využívajú obe nábežné hrany LH
a HL hodinových impulzov alebo len jedna LH hrana). Potom napríklad rýchlosť
procesora s 33 MHz jednofázovým taktom môže byť zrovnateľná s procesorom
s 16 MHz dvojfázovým taktom - obr. 8). Zdvojnásobnenie prenosovej
rýchlosti nie na základe zvýšenia pracovnej frekvencie mikroprocesora ale
pomocou využitia nábežnej a zostupnej hrany hodinových impulzov je označovaný
ako režim 2x. Používa sa napríklad na zrýchlenie náročných operácii
s 3D grafikou na zbernici AGP (Accelerated Graphics Port), ktorá vylepšuje
(šírka zbernice 64 bitov, pracovná frekvencia 166 MHz v režime 1x) pôvodnú
systémovú zbernicu mikroprocesora (PentiumII)
Kvalitatívnym kritériom na posudzovanie
výkonu je MIPS( Mega Instruction Per Second) resp.
výkon PC = frekvencia *IPC,
kde: IPC (Instruction
Per Clock Cycle) - počet operácii, ktoré môže za jeden takt
hodinového cyklu zrealizovať (parameter je daný počtom výkonových jednotiek
mikroprocesora). Vzorec je skôr teoretickým maximom daného procesora ako
reálne dosiahnuteľnou hodnotou lebo nie všetky jednotky sú využívané rovnomerne
- závisí od typu aplikácie.
Napriklad v CPU 80686 sa pomocou pridania oddelených
jednotiek vykonáva súčasne niekoľko operácii počas 1 cyklu, v iných CPU
sa zdvojujú aritmeticko - logické jednotky ALU (napriklad jedna ALU sa
používa pre operácie s pohyblivou rádovou čiarkou a druhá ALU pre operácie
s celými číslami so znamienkom a bez znamienka) a používajú sa krátke inštrukcie,
vykonateľné počas 1 cyklu.
 |
Obr. 8 Porovnanie
dvojfázového taktovania 16 MHz s jednofázovým taktovaním 33 MHz. Počet
pozitívnych čiel (L-H) hodinových impulzov je približne rovnaký. |
q
Šírky zbernice - dát (DB) a zbernice adries (AB).
Na prečítanie inštrukcie z pamäti treba najmenej
3 takty, ak sa nevkladajú čakacie takty WS - Tw (Wait Stages
kvôli pomalším pamätiam). Rýchla pamäť - Cache urýchľuje dobu prístupu.
Používa sa ako vyrovnávacia pamäť, ktorá potrebuje na prečítanie len 2
takty. Veľkosť procesora možno vyjadriť pomocou počtu bitov dátovej zbernice.
Pre porovnanie:
Typ CPU |
DB [bit] |
AB[ bit] |
Pamäť [bit] |
Poznamka |
8088 |
8 |
20 |
1M |
|
80286 |
16 |
24 |
16M |
|
80386 SX |
16 |
24 |
16M |
|
80386 DX |
32 |
32 |
4G |
Používa 48 bit adresu |
80486 |
32 |
32 |
4G |
Používa 48 bit adresu |
Pentium |
64 |
32 |
4G |
Používa 48 bit adresu |
q
Architektúry procesora:
-
CISC (Complex Instruction Set Computer
- Počítač s úplnou inštrukčnou sadou). Napríklad Intel 80x86, Motorloa
680x0. Typická implementácia tejto architektúry pomocou mikroprogramovania:
výsledkom je veľký počet špecializovaných typov inštrukcii, ktoré z časového
pohľadu môžu trvať až do 300 strojových cyklov. Vďaka mikroprogramovaniu
možno vytvoriť rovnakú architektúru s rozdielnou hardwarovou realizáciou.
-
RISC (Reduced
Instruction Set Computer - Počítač s obmedzenou inštrukčnou sadou). Napriklad
Alfa fy Digital alebo PowerPC od konzorcia IBM-Motorola-Apple. Porovnaním
programov, ktoré používali 30 typických inštrukcii sa zistilo, že výskyt
inštrukcii: čítania je ~ 35%, skokov je ~ 30%, zápisov je ~15% a ostatných
~ 20% S pomocou veľkého počtu registrov (napríklad 100 u RISC v porovnaní
s 16 u CISC) a s malým súborom inštrukcii ( s pevnou dĺžkou a pevným formátom,
s čo najkratším trvaním) možno vykonať program rýchlejšie, pretože veľké
množstvo operácii prebieha medzi pamäťou a registrami. Malý inštrukčný
súbor uľahčuje aj preklad programov, písaných vo vyšších programovacích
jazykoch. Strojové programy RISC sú obvykle ale dlhšie ako CISC.
-
VLIW (Very
Long Instruction Word - Veľmi dlhé inštrukčné slovo). Zatiaľ teoretická
architektúra, ktorá presúva väčšinu ťažkostí z hardware na software. Prekladač
programu po bežnom vygenerovaní inštrukcii typu RISC by vyhľadal na sebe
nezávislé inštrukcie a pozdružoval ich do blokov. Napríklad pre hypotetický
16 cestný procesor VLIW by bol každý blok tvorený 16 inštrukciami. Tento
blok je tým veľmi dlhým inštrukčným slovom. Vykonáva sa blok za blokom
vždy 16 inštrukcii naraz. Netestuje sa už ich vzájomná závislosť (časovo
náročná) - to už za procesor spravil jednorázove prekladač.
Dnešné mikroprocesory pre osobné počítače sú podľa
tejto šablóny ťažko zaraditeľné, pretože na jednej strane podporujú inštrukcie
x86, teda CISC, na druhej strane sú však vnútornou štruktúrou viac podobné
pôvodným mikroprocesorom RISC.
Pamäťové obvody
v počítači
Pamäť, ktorú používa mikroprocesor možno rozdeliť
na:
-
Primárnu, ktorou mikroprocesor bezprostredne
spolupracuje (predovšetkým je to operačná pamäť).
-
Sekundárnu, kam si mikroprocesor odkladá programy
a dáta, ktoré nepotrebuje (sú to hlavne disky).
Základnými charakteristickými parametrami, ktoré
popisujú kvalitu pamäte je:
-
Vybavovacia doba - udáva rýchlosť s akou pamäť
zapíše alebo vyhľadá mikroprocesorom zadané dáta.
-
Kapacita pamäte - prezradzuje koľko bajtov
je možné do pamäti uschovať.
-
Typ - predovšetkým ROM a RAM.
Postupne bolo vyvinuté nikoľko druhov pamätí ROM
(Read Only Memory) na uskladnenie dát, aj v dobe keď je počítač vypnutý:
-
ROM - naprogramovaných u výrobcu.
-
PROM - (Programmable ROM) naprogramovaných
u užívateľa.
-
EPROM -(Erasable PROM) s možnosťou opakovaného
zápisu.
-
EEPROM - (Electrically EPROM) mazateľných
elektrickými impulzami.
-
Flash EPROM - asi 1000 krát preprogramovateľné
priamo v PC. Sú rýchlejšie ako predošlé typy, prakticky s vlastnosťami
RAM.
Existuje niekoľko typov RAM (Random Access
Memory), s rôznymi vlastnosťami a účelmi použitia:
-
Statické RAM (SRAM) - základom ktorej je bistabilná
pamäťová bunka preklápacieho obvodu.
-
Dynamické RAM (DRAM) - pamäťová bunka je tvorená
miniatúrnym kondenzátorom. Aby sa pamäť časom nevymazala je treba kondenzátor
periodocky dobíjať - vykonávať občerstvenie (refresh).
-
SDRAM (Synchronous Dynamic Random Access
Memory) - typ pamäte v súčasnosti najčastejšie používaný v úlohe operačnej
pamäti.
-
Komplementárne CMOS RAM, vyrobené technológiou
CMOS (Complementary Metal Oxide Silicon), vďaka ktorej majú malú spotrebu.
Používajú sa na uloženie dôležitých údajov o konfigurácii PC. Po vypnutí
PC sú napájané z batérie umiestnenej na základnej doske.
Pamäte
DDRAM versus RDRAM
V súčasných počítačových systémoch
sa v úlohe operačnej pamäte používajú pamäte RAM (Random Access Memory)
. Tieto pamäte sú schopné uchovať informáciu iba v prípade pripojenia k
zdoju napájania. V súčasnosti sa možno stretnúť s troma typmi pamätí :
Na začiatku vývoja počítačov
sa najčastejši epoužívali polovodičové pamäte typu DRAM (Dynamic
RAM), prevážne vyrobené technológiou CMOS. Na uchovanie informácie v ňom
slúžil obvod zložený s tranzistora a kondenzátora, doplnený o logiku adresovania
jednotlivých buniek pamäte a logiku "Refresh", zabezpečujúcu obnovovanie
náboja uskaldneného v kondenzátore. Tento model bol pre konštruktérov zaujímavý
predovšetkým najmä pre pomer ceny a kapacity. Negatívnou vlastnosťou týchto
pamätí je závislosť na "obnovovaní" obsahu. Cieľom vývojárov bolo zlepšenie
mechanizmu a obvodov obnovovania obsahu, hlavne krátenie času, počas ktorého
je pamäť z dôvodu obnovovania obsahu nedostupná a samozrejme saha bolo
neustále zvyšovať kapacitu pamäťových čippov a zvyšovať pracovnú frekvenciu.
Postupným zdokonaľovaním pamätí
DRAM sa vývojári dopracovali k pamätiam SDRAM (Static DRAM), teda
pamätiam, ktoré sú hybridom medzi pamäťami SRAM a DRAM. Aj tieto podobne
ako DRAM používajú na uchovávanie informácie kondenzátory v obvode pamäťovej
bunky, s ohľadom na zlepšenú konštrukciu bunky však sú schopné udržať informáciu
oveľa dlhší čas, než to bolo pri klasických čipoch DRAM. Toto riešenie
znamenalo zníženie "nedostupnosti" (latencie pamäti) z dôvodu obnovovania
jej obsahu, avšak z princípu tento problém nemohlo eliminovať úplne.
DDR (resp. úplne presne
DDR-SDRAM) je evolučný krok. Tieto pamäte sú schopné zapisovať a čítať
údaje dva razy za hodinový cyklus (s nábežnou a zostupnou hranou impulzu)
čo výrazne zvyšuje údajovú priepustnosť pamäte. Z konštrukčného hľadiska
pritom v pamäťovej bunke i obslužnej logike pamäte DDRAM v porovnaní s
pamäťou SDRAM nie sú výrazné zmeny. Pri požiadavke na zdvojnásobnenie objemu
údajového prenosu z tejto skutočnosti vyplýva zvýšenie rizika latencie.
Preto boli do DDR-SDRAM implementované doplnkové mechanizmy zabezpečujúce
synchronizáciu prenosov (okrem systémových taktov sa využíva aj špecialny
vodiaci signál DQS na doplnkovú synchronizáciu časovania a zvýšenie spoľahlivosti.)
RDRAM - revolučný skok
- nejde len o zlepšenie jestvujúcej architektúry ale o úplne novú architektúru
- RDRAM využiva sériový prenos údajov (zbernica má iba 16 bitov) a nie
paralelný (64 bitová architektúra) ako doterajšie pamäťové architektúry.
Pri RDRAM totiž je aktívny vždy len jeden číp na pamäťovom module, aktívne
prenášajúci údaje. Ostatné čípy sú v jednom z ďalšich troch režimov, definovaných
štandardom - Power Down (vypnuté), Nap (spiace, bdiace), Standby (v pohotovosti).
Sériový prenos umožňuje jednoduchšie zvyšovanie prenosovej rýchlosti. Sériový
prenos prináša však problém nazývaný oneskorenie (na získanie ôsmich bitov
treba osem impulzov).
Obvodové
integrovanie modulov pamätí do puzdier
 |
Obr. 8b. Príklad plátku pamäťových
obvodov SIMM30, ktorý sa zasunie do konektora (slotu) banku pamäti. |
.
Z hľadiska obvodového integrovania do puzdier
sa na vytvorenie pamätí používajú:
-
pamäťové moduly klasické 8 bitové SIMM (Single
Inline Memory Module) 30-pinové (krátke);
-
modernejší vylepšený variant 32 bitových modulov
SIMM so 72 pinmi (dlhé);
-
64 bitové moduly 168 pinové vylepšenia SIMMov - DIMM
(Dual Inline Memory Module) s maximálnou kapacitou 128 MB až 256 MB, umožňujúce
pracovať s frekvenciou 66 MHz a 100 MHz, resp. moduly s pracovnou frekvenciou
133 MHz.
 |
Obr. 8b. Príklad plátku pamäťových
obvodov SIMM72, ktorý sa zasunie do konektora (slotu) banku pamäti. |
.
Pre porovnanie .základné vlastnosti SIMM:
-
Bežná prístupová doba 60 - 70 ns.
-
72 pinové SIMM existujú s kapacitou 4 - 64
MB.
-
Obmedzený počet vývodov modulu obyčajne neumožňuje
prístup ku všetkým bitom dát naraz. Preto je pamäť rozdelená na menšie
časti - 8, 16, 32 bit alebo 64 bit široké moduly.
-
V niektorých moduloch pamätí sa pridáva k 8
bitom dát na kontrolu aj paritný bit. V súčasnosti sa upúšťa od tohto spôsobu
kontroly dát, predovšetkým pre spoľahlivosť dnešných pamäťových modulov.
-
Na úprave tvaru púzdier pamäti sa odráža postupný
vývoj. Staršie typy 30 pinových modulov boli kratšie s dátovou šírkou 8
alebo 16 bitov. Dnes sú najrozšírenejšie 72 pinové SIMM moduly, so
šírkou dát 32 bitov. Dnes sú vo väčšine základných dosiek podporované 64
bitové moduly DIMM so 168 pinmi.
Bank - je kolekcia pätíc umiestnená na základnej
doske, do ktorej sa zasunujú plátky pamäťových SIMMov alebo DIMMov.
V jednom banku musia byť osadené všetky pätice (sloty). Počet pätíc v banku
je daný šírkou dátovej zbernice a pohybuje sa v rozmedzí dva až štyri:
Napríklad v základovej doske pre mikroprocesor
80486 (s dátovou zbernicou 32 bit) môžu nastať prípady:
Počet pinov |
Dátová šírka |
Počet pätíc v banku |
30 |
8 bitov |
4 |
30 |
16 |
2 |
72 |
32 |
1 |
 |
 |
Obr. 9a
Operácia zápisu do pamäte. |
Obr. 9b.
Operácia čítania z pamäte. |
 |
 |
Obr. 10.
Osembitové rozhranie pamäť - CPU. |
Obr. 11.
Ukladanie dát o dlžke bajt (DB), slova (DW) a slova o dvojnásobnej dĺžke
(DD) do pamäti. |
 |
 |
Obr. 12.
Prístup k jednotlivým bajtom v slovne organizovanej pamäti - na párnych
a nepárych adresách. |
Obr. 13.
Prístup CPU k pamäti v 16 bitových procesoroch (8086, 80186, 80286, 80386SX) |
 |
Obr. 14.
Organizácia rozhrania pamäť - CPU v 32 bitových procesoroch (80386, 80486,
Pentium). |
Prispôsobovanie
rýchlosti procesora a operačnej pamäti
U starších typoch procesorov treba na prístup do
pamäte niekoľko hodinových cyklov (Napríklad pre CPU 8088 a 8086 je frekvencia
CLK = 5MHz => perióda T= 200 ns . Na prístup do pamäte treba 4 takty T
=> 4*200ns= 800ns). Modernejší CPU 80486 používa frekvenciu systémových
hodín CLK = 50 MHz (T = 20 ns) a na zakončenie R/W operácie s prístupom
do pamäti potrebuje len 1 takt. Táto operácie je teda u CPU 80486 rýchlejšia
40 krát, za predpokladu, že procesor nemusí čakať na pamäť.
Typické dynamické pamäte DRAM majú dobu prístupu
tacces okolo 70 ns, takže CPU 80486 (s hodinovou frekvenciou
CLK=33 MHz a trvaním taktu T=1/CLK =30 ns) potrebuje predlžiť inštrukčný
cyklus vložením čakacích cyklov (Wait cykly Tw). K dobe prístupu
tacces treba pripočítať ešte ~10 ns (~5 ns na dekódovanie adresy
a ~5 ns na bufferovanie údaja - obr. 15).
 |
Obr. 15. Vznik oneskorenia spôsobeného
dekódovaním adresy a bufferovaním dát
|
V podstate existujú
3 možnosti vzájomného prispôsobenia rýchlostí DRAM a mikroprocesora:
-
Vkladanie čakacích stavov, ktoré ale spomaľujú činnosť
počítača.
-
Osadenie operačnej pamäti obvodmi SRAM s dobou prístupu
tacces okolo 10 ns, ktoré sú ale drahšie.
-
Použitie pamäte typu Cache.
Snahou je teda prispôsobiť rýchlosť procesora rýchlosti
pamätí, aby nebolo treba vkladať čakacie cykly Tw. Pamäti s
dobou prístupu tacces okolo 10 ns sú drahé a sú realizovateľné
v statickom prevedení (SRAM), ktoré potrebuje väčší priestor na doske počítača.
Vyrovnávacie
pamäte - pamäť typu Cache
V programe sa často opakuje prístup k tým istým,
alebo blízkym (sekvenčne blízkym) pamäťovým referenciám, poprípade sa opakovane
v slučke vykonáva určitá postupnosť inštrukcii. Typicky program aktualne
používa okolo 10 - 20 % pamäti, ktorú má pridelenú. Napríklad 1MB program
aktuálne využíva okolo 8KB dát a kódu. Pomocou špeciálnej rýchlej (s Tw
=0 ) vyrovnávacej pamäti Cache (akéhosi príručného medzi skladu) možno
odstrániť čakanie na prístup k operačnej pamäti DRAM, nakoľko pamäť cache
je podstatne rýchlejšia (prístup do pamäte - SRAM tacces ~10
ns do 30 ns) a nepotrebuje vykonávať refresh. Cache je umiestnená medzi
procesorom a hlavnou pamäťou. Na rozdiel od normálnej pamäte cache nemá
pevné adresovanie. Je tu lokalizovaná len tá časť pamäti ku ktorej sa aktuálne
pristupuje. Tzv. transpaentná cache využíva inteligentné
I/O jednotky na aktualizovanie kopie dát bez toho, aby sa na tomto prenose
podieľal procesor. Veľkosť takejto vnútornej SRAM cache býva 256 bajt (CPU
80486) do 8kB (Pentium). Opakom je tzv. netransparentná cache,
ktorá vyžaduje softwarové úpravy na zaktualizovanie dát. Možný je aj dvoj
úrovňový caching systém s vnútornou SRAM cache doplnenou o sekundárnu DRAM
cache (od 32KB - 1MB), ktorá však už potrebuje 1 - 2 čakacie cykly Tw
(Obr. 16).
Vyrovnávacia pamäť (Cache Memory) je veľmi
rýchla pamäť, ktorá je spravidla umiestnená medzi procesorom a hlavnou
pamäťou výpočtového systému. Vo vyrovnávacej pamäti je uložená tá časť
hlavnej pamäte, ktorá je práve procesorom používaná. Vyrovnávacia pamäť
môže byť umiestnená tiež medzi hlavnú pamäť a veľkokapacitnú vonkajšiu
pamäť. Pamäť cache býva 5 - 10 krát rýchlejšia ako hlavná pamäť, má však
obmedzenú kapacitu. Sú v nej uložené kópie niektorých dát z hlavnej pamäte.
Ak sa nachádzajú požadované údaje alebo inštrukcie v pamäti cache,
sú rýchle prečítané z tejto rýchlej pamäte a nie je vykonaný prístup do
relatívne pomalej hlavnej pamäte.
Princíp aplikácie vyrovnávacej pamäti spočíva
vo využití objemovo malej, čo do prístupu však veľmi rýchlej a teda aj
drahej vyrovnávacej pamäti. Rýchly procesor nie je nútený pri čítaní
údajov z pomalej pamäti prechádzať do tzv. čakacích cyklov (Wait State),
keď čaká na vydanie obsahu pamäti. Často používané dáta a inštrukcie sú
preto zavedené do vyrovnávacej pamäte, z ktorej môžu byť veľmi rýchle sprístupnené.
K hlavnej pamäti sa uskutočňuje prístup len pri požiadavke na nové hodnoty
dát či inštrukcii, ktoré nie sú vo vyrovnávacej pamäti. Prístup do hlavnej
pamäti sa pritom vykonáva na procesore nazávislými technickými prostriedkami
a procesor nie je nijako zaťaženovaný.
Pamäť cache je rozdelená do rovnako veľkých segmentov.
Tieto segmenty sa obvykle nazývajú bloky (Block Frames). Veľkosť
vyrovnávacej pamäte je celistvým násobkom veľkosti bloku. Vyrovnávacia
pamäť obsahuje dvojice " adresa bloku, dáta bloku". Adresa operandu postupujúca
z procesora je porovnávaná s adresami pamäte cache s cieľom zistiť či sa
nachádza obsah obsah danej adresy v pamäti alebo nie. Okrem informácie
o adrese bloku môže pamäť cache obsahovať informáciu o aktuálnosti uložených
dát v tzv. poli príznakov (príznak platnosti dát, správnosti dát,
blokovanie prístupu k ďalším dátam a pod.)
 |
Obr. 16. Dvojúrovňový systém pamäti
typu cache. |
V novších mikroprocesoroch (Pentium) je pamäť
cache rozdelená do dvoch častí (obr.33b a obr.
34):
-
cache označované ako First Level
Cache alebo skrátene L1 (o veľkosti 16 až 128 kB) integrovaná
priamo v jadre procesora. Slúži na zásobovanie jednotiek mikroprocesora
dátami so zbernice a na zrýchlenie vnútornej činnosti mikroprocesora. Pamäť
cache prvej úrovne L1 pracuje na frekvencii jadra procesora (v súčasnosti
je pracovná frekvencia >800MHz), teda na podstatne vyššej frekvencii než
používa systémová zbernica (~100MHz).
-
cache druhej úrovne L2
(o veľkosti 256 až 512 kB) v tesnej blízkosti modulu procesora
alebo v starších procesoroch aj na základnej doske. Slúži ako veľmi rýchla
vyrovnávacia pamäť na prechodné uloženie údajov pre zrýchlenie presunov
dát medzi mikroprocesorom a operačnou pamäťou. Sekundárna cache L2
pracuje na 1/2 frekvencii jadra mikroprocesora. Do nej sa ukladajú údaje,
ktoré bude systém pravdepodobne potrebovať pri ďalších výpočtoch.
Pamäte cache
využívajú tri spôsoby zápisu údajov:
-
Priamy zápis (Write-Through)
je najstarší a najpomalší spôsob, typický pre mikroprocesory 486. Pri tomto
spôsobe sú dáta ukladané do cache súčasne so zápisom do operačnej pamäti.
Pri čítaní porovnáva kontrolér cache požadované adresy s adresami už uloženými
v pamäti cache. Ak sú potrebné dáta nájdené (Cache Hit), sú z nej prečítané.
-
Pri oneskorenom zápise (Write-Back)
sú dáta zapísané len do cache a až po odstránení dát z cache sú zapísané
do operačnej pamäte. Táto rýchlejšia metóda je používaná v PC osadených
Pentiom. Kým sa dáta zapíšu do operačnej pamäte, môže cache zmeniť niekoľkokrát
svoj obsah. V tomto režime sa šetrí čas, potrebný na opakované zápisy do
pomalšej operačnej pamäte. V režime Write - Back by mala mať pamäť cache
navyše špecialny pamäťový modul tzv. Alter Tag. Pomocou neho
kontrolér pamäte cache sleduje zhodu dát v cache a v operačnej pamäti.
Niekedy v rámci šetrenia výrobcovia tento modul neobsadzujú, ale využívajú
jeden bit (Tag) v každom riadku v pamäti cache, tzv. Dirty Bit.
-
Reťazový zápis (Pipelined Burst)
je najnovší a najrýchlejší spôsob, ktorý sa v súčasnosti používa (v
moderných základných doskách pre Socket 7). Tento spôsob pracuje tak, že
vykonáva viac operácii zreťazene - ak procesor číta z určitej adresy informácie,
prečíta zároveň informácie aj z nasledujúcich adries, ktoré by s najväčšou
pravdepodobnosťou čítal o chvíľu. Prístupová doba sa pohybuje okolo 9-15
ns i menej.
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)
Zhrnutie -
ako zvýšiť výkon počítača
Ako vyplýva z definície základného kvalitatívneho
kritéria na posudzovanie výkonu PC - MIPS
je cestou k zvýšeniu výkonu PC:
-
zrýchlenie priechodnosti dát a inštrukcii cestou:
-
predvýberu (prefetch) operačného kódu inštrukcie
alebo operandu s tým, aby sa inštrukcia skôr zaradila do fronty (FIFO)
predpripravených inštrukcii, ktoré sa budú vykonávať. Obr. 5 ilustruje
použitie fronty inštrukcii, obr. 6 zase použitie fronty
inštrukcii a fronty dát, na obr. 7 je zobrazená vnútorná
štruktúra CPU s oddelenými vykonávacími jednotkami
- Execution Unit 1 a Execution Unit 2. Vďaka tejto technickej úprave môže
takýto superskalárny CPU vykonať viac ako jednu inštrukciu
za takt CPU.
-
pomocou prekrývania (pipelining) dekódovania
inštrukcie s posledným krokom vykonávania predošlej inštrukice, teda
pomocou zreťazeného spracovania inštrukcii.
Napriklad na obr. 4 súbežné využitie cyklov označených PC1 - PC3.
Podobne u viacprocesorových štruktúr
základný nedostatok jednoprocesorových počítačov - ich pomalosť, podmienenú
sériovým spôsobom činnosti sa odstraňuje pomocou:
-
Presahovania (overlapping),
spočívajúceho v tom, že vykonávanie niektorých inštrukcii pre jednu úlohu
sa v procesore dokončuje v intervale, ktorý prislúcha už inštrukcii.
procesora pre inú úlohu.
-
Zreťazenia (pipelining),
ktoré možno chápať ako presahovanie sériove zaradených subprocesorov. Na
dosiahnutie zreťazenia sa používajú súbežne pracujúce ALU (aritmetické
zreťazenie), zreťazenej funkčnej jednotky (zreťazenie inštrukcii),
alebo zreťazenie procesov.
`
 |
Win 1250 |
Návrat
na stránku |
HTML 4.0 |
 |
Back |
|
|
|
Next |
|