Friday, June 17, 2011

HW: Zakladne parametre pamati, vybavovacia doba a cyklus pamate

Zacnime zase pekne od zaciatku, hoci tu o pamatiach uz nieco padlo. Pamate v pocitaci maju istu hierarchiu. Na obrazku su znazornene pamate od najmensich po najvacsie, od najrychlejsich po najpomalsie a od najdrahsich po najlacnejsie (zlava). Hierarchia znazornuje, ako su blizko k CPU. Cim blizsie k CPU, tym rychlejsie CPU dostane data a moze pracovat.


Medzi procesorom (kam patria aj registre) a pamatou samozrejme dochadza k vymene dat. Procesor si povie z akej adresy chce citat (EBX + IP) a z pamate nacita data do dalsich registrov (IR a napr. EAX). Prenos sa deje po datovej zbernici, o ktorej uz co to vieme. Adresovanie pamate prebieha po adresovej zbernici. Samozrejme, musime odlisovat dve mozne operacie pamate a to read/write. K tomu sluzia signaly. 

Hlavna pamat RAM (random access memory) moze byt napr. SRAM. Pouziva sa v mensich pocitacovych systemoch, napr. pre riadiace aplikacie. Pamat neztraca zapisane data, kym je pripojene napajanie (bistabilny klopny obvod - bistabilny znamena, ze oba stavy su stabilne a suvisi to so synchronizaciou obvodu). Pamat DRAM je realizovana pomocou kondenzatorou a preto sa postupne vybija a potrebuje periodicky obnovovaci impulz (hodiny). Predstavme si SRAM pamat o kapacite 512KB, tak ako je naznacena na obrazku. Tuto pamat musime vediet adresovat a k tomu potrebujeme vodice A0 - A18. Pre data potrebujeme 8 vodicov D0 - D7, dalej potrebujeme citaci signal OE a zapisovy signal WR. Dalej mame este signal pre vyber cipu CE. 8 datovych vodicov nam napovie, ze budeme prenasat 8 bitov a to bude pravdepobodne aj najmensia adresovatelna jednotka. 8 bitov je 1 byte alebo 1 slabika. 512KB je 524288 bytov. To teda znamena, ze v pamati mame pomyslenych 524288 chlievikov, ktore potrebujeme adresovat od 0 ... 524287 a preto potrebujeme tych 19 vodicov na adresu. 2^19 = 524288. Mozete si predstavit pevnu radovu mriezku a v nej 19 okienok a v nej spravit kombinacie 0 a 1 tak, aby sme dokazali zapisat cislo 524287. K tomu potrebujeme 19 okienok 2^0 az 2^18 a kazde z nich musi byt 1, aby sme adresovali aj ten najsamposlednejsi chlievik v pamati. 

K tomuto super mega uvodu do pamati je este mozno vhodne ukazat, ako sa z pamati cita a ako sa do nej zapisuje. Zjednoduseny diagram nas vlastne ukaze, ako vyzera cyklus pamate. 



Pan Skrbek bol taky mily, ze nam to dokonca aj nazoomoval a vsimnite si slajdu dole. Je na nom prakticky uplne to iste, ako hore, ale nazornejsie ukazane adresovanie. Vybrali sme si riadok a vybrali sme si stlpec pamate a postupne s delay-om 45 nanosekund nam prichadzaju data. Potom sme zadali novu adresu stlpca a prichadzaju dalsie data z inej adresy. Co z toho vyplyva? Ze citame po stlpcoch! :) 


Tak tolko uvod do pamate a teraz, ake su zakladne parametre pamate? 
  • Kapacita pamate, alebo objem dat, ktore do nej mozme ulozit 
  • pristupova doba, znaci trvanie cyklu pamate, alebo doba pre najdenie pozadovaneho miesta v pamati 
  • sirka pasma, alebo kolko dat prenesieme za jednotku casu
  • cena
  • typ pamati, pretoze pamat moze byt vnutorna a vonkajsia. Medzi vnutorne pamate radime registre, zapisnikove pamate, skryte pamate (cache), hlavne pamate  
  • energeticka zavislost. Toto sme uz mali vyssie. Pamate mozme rozdelit na 
    • Energeticky nezavisle
      • permanentne
        • ROM - read only memory s obsahom od vyrobcu
        • PROM - obsah je jednorazovo naprogramovany po vytvoreni cipu (ten rozdiel od ROM). Obsah je uzamknuty pomocou diod a antidiod.
      • semipermanentne 
        • EPROM - ktorej informacie je mozne vymazat po oziareni ultrafialovym svetlom 
        • EEPROM - da sa vymazat elektricky 
    • Energeticky zavisle 
      • RAM
        • SRAM - je realizovana ako bistabilny klopny obvod 
        • DRAM - data su uchovavane vo forme naboja na pamatovom kondenzatore, ktory sa pri zapise nabije alebo vybije a pri citani sa vybija 
  • Aby sme deleniu neboli nic dlzny, tak pamate este mozme delit aj podla sposobu vyberu datovych poloziek
    • adresove, teda s adresovym vyberom 
    • seriove, teda s postupnym vyberom 
    • asociativne, kde vyberame podla kluca 
    • LIFO, last in first out (zasobnik)
    • FIFO, first in first out (fronta)
Cyklus pamate 
Cyklus pamate je dobre citatelny z obrazka, ktory sme uz viedli vyssie. Jedna sa o postupnost udalosti, ku ktorym dojde od prijatia poziadavku az po vykonanie poziadavku (vystavenie dat na data bus). Kazda pamat potrebuje po vykonani poziadavku "oddych", tzv. cycle time. Cycle time je teda dlzka intervalu medzi dvoma po sebe iducimi poziadavkami, potrebna na vybitie + doba na vybavenie poziadavku. Pocas tohto intervalu je pristup k pamati nemozny. 

Cyklus moze byt zapisovaci a citaci 
  • najprv sa vystavi adresa na adresovu zbernicu 
    • ak je to citaci cyklus, tak potom sa aktivuje read signal a data su vystavene na DB 
    • ak je cyklus zapisovaci, tak data sa vystavia na data bus a az nasledne sa aktivuje signal 
  • read/write cyklus sa ukonci 
Aby sme to trochu zhrnuli, tak 
  • Vybavovacia doba pamate (Access Time)
    Je casovy interval, ktory uplynie od vyslania poziadavku az kym su data k dispozicii (read). Dnes to je okolo 70 nanoseknund.
  • Cycle Time
    Toto je Access Time + doba potrebna na vybijanie. Dnes okolo 200 nanosekund a pocas tohto intervalu sa na pamat nesmie sahat.