PC
Architektúra počítača
Architektúra  mikroprocesorov a mikropočítačov
Rýchlosť počítača
Pamäťové obvody v počítači
q Prispôsobovanie rýchlosti procesora a operačnej pamäti
q Pamäť typu Cache



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í :

  • SRAM, 
  • DDRAM, 
  • RDRAM.
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 T(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:
  1. 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é.
  2. 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.
  3. 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