Memorijski kontroler

Memorijski kontroler je digitalno kolo koje upravlja protokom podataka koji idu ka i od glavne memorije. Može biti izdvojen čip ili integrisan u drugi čip, kao što je procesor. Ovo se takođe naziva čip memorijskog kontrolera (MCC).[1]

Istorija uredi

Kompjuteri bazirani na Intelovim procesorima su tradicionalno imali memorijski kontroler integrisan u severni most čipseta matične ploče, ali mnogi moderni procesori, kao što su DEC/Compaq Alpha 21364, AMD-ovi Athlon 64 i Opteron procesori, IBM-ov POWER5, Sun Microsystems UltraSPARC T1, i u skorije vreme Intelovi Core i7 i Core i5 procesori imaju integrisan memorijski kontroler (IMC) na procesoru radi smanjenja memorijskog kašnjenja. Iako ovo ima potencijal da poveća performanse računara, ograničava procesor na specifičan tip memorije, zahtevajući redizajniranje da bi podržao novu memorijsku tehnologiju. Kada je DDR2 SDRAM memorija predstavljena, AMD je lansirao svoj Athlon 64 procesor. Ovi novi modeli sa DDR2 kontrolerom, koriste drugačije fizičko podnožje (poznato kao AM2), da bi pasovali samo u ploče dizajnirane za novi tip RAM memorije. Kada memorijski kontroler nije na čipu, isti procesor može biti instaliran na novu ploču, sa ažuriranim severnim mostom (čipsetom).

Integracija memorijskog kontrolera na čip procesora nije novi koncept. Neki procesori iz 1990ih kao što su DEC Alpha 21066 i HP PA-7300LC su imali integrisani memorijski kontroler, ali ne radi boljih performansi, već da bi se smanjila cena sistema eliminisanjem eksternog memorijskog kontrolera.

Svrha uredi

Memorijski kontroleri sadrže logiku neophodnu za čitanje i upisivanje u DRAM, i za osvežavanje DRAM-a. Bez konstatnih osvežavanja, DRAM gubi podatke koji su upisani, jer kondenzatori ispuštaju svoje naelektrisanje u okviru delića sekunde (ne manje od 64 milisekunde prema JEDEC standardu).

Čitanje i upisivanje u DRAM se izvodi odabirom adresa reda i kolone DRAM-a kao ulaznu vrednost multiplekserskog kola, gde demultiplekser na DRAM memoriji koristi konvertovane ulaze da odabere ispravnu memorijsku lokaciju i dostavi podatke, koji se dalje prosleđuju nazad kroz multiplekser da bi se konsolidovali, te zahtevali užu magistralu za izvedenu operaciju.

Širina magistrale predstavlja broj paralelnih linija dostupnih za komunikaciju sa memorijskom ćelijom. Širine magistrala memorijskih kontrolera se kreću u rasponu od 8-bitnih u starijim sistemima, do 512-bitnih u komplikovanijim sistemima i grafičkim karticama (tipično implementiranih kao četiri 64-bitna simultana memorijska kontrolera koji rade paralelno, s tim da su neki dizajnirani da rade i u "grupnom modu" gde dva 64-bitna memorijska kontrolera mogu biti korišćena za pristum 128-bitnoj memoriji).

Neki memorijski kontroleri, kao onaj integrisan u PowerQUICC II procesor, mogu biti istevremeno povezani na više različitih tipova uređaja -- SDRAM, SRAM, ROM, i memorijski-mapirani ulaz/izlaz -- od kojih svaki zahteva malo drugačiju kontrolnu magistralu -- i postojeću sistemsku magistralu ka procesoru. Neki memorijski kontroleri, kao onaj integrisan u PowerQUICC II procesor, sadrže hardver za detekciju i ispravljanje grešaka. [2]

Nekoliko eksperimentalnih memorijskih kontrolera sadržnj i drugi nivo prevođenja adrese -- kao dodatak prvom nivou prevođenja adrese koji se izvodi od strane jedinice za upravljanje memorijom.[3]

Memorija sa dvostrukom brzinom prenosa podataka uredi

Kontroleri memorije sa dvostrukom brzinom prenosa podataka (DDR) se koriste da kontrolišu DDR SDRAM, gde se podatci prenose i na uzlaznoj i na silaznoj ivici memorijskog radnog takta sistema. DDR memorijski kontroleri su značajno komplikovaniji od kontrolera za memoriju sa jednostrukim prenosom podataka, ali omogućuju prenos i do duplo više podataka bez povećanja radnog takta ili širine magistrale ka memorijskoj ćeliji.

Dvokanalna memorija uredi

Dvokanalni memorijski kontroleri su kontroleri gde su DRAM uređaji razdvojeni na dve različite magistrale da bi dva memorijska kontrolera mogla da im pristupaju paralelno. Ovo duplira teoretsku propusnu moć magistrale. U teoriji, više kanala moše biti napravljeno (po jedan za svaku memorijsku ćeliju u idealnom slučaju), ali zbog broja žica, kapacitivnosti linija, i potrebe da paralelne pristupne linije imaju identične dužine, više kanala je jako teško dodati.

Potpuno baferisana memorija uredi

Sistemi sa potpuno baferisanom memorijom imaju memorijski bafer na svakom memorijskom modulu (koji se naziva FB-DIMM kada se potpuno baferisana RAM memorija korist), koji za razliku od tradicionalnih memorijskih uređaja, koristi serijsku vezu podataka ka memorijskom kontroleru umesto paralelne veze korišćene kod ranijih RAM implementacija. Ovo smanjuje broj žica potrebnih da se memorijski uređaj smesti na ploču (pa se koristi manje slojeva, što znači da više memorijskih uređaja može biti smešteno na jednu ploču), po ceni većeg kašnjenja (vremena potrebnog da se pristupi memorijskoj lokaciji). To povećanje je usled vremena potrebnog da se konvertuje paralelna informacija pročitana iz DRAM ćelije u serijski format korišćen od strane FB-DIMM kontrolera, i nazad u paralelni format u memorijskom kontroleru na matičnoj ploči. U teoriji, memorijski bafer kod FB-DIMM modula može biti napravljen tako da pristupi bilo kojoj DRAM ćeliji, što omogućava dizajn memorijskog kontrolera koji je potpuno nezavisan od memorijske ćelije, ali ovo nije demonstrirano, jer je tehnologija još u ranoj fazi razvoja.

Kontroleri fleš memorije uredi

Puno fleš memorijskih uređaja uključuje i memorijski kontroler fleš memorija.

Reference uredi

  1. ^ Comptia A+ Certification Exam Guide, Seventh Edition, by Mike Meyers, in the glossary, bottom of page 1278: "Chip that handles memory requests from the CPU."
  2. ^ "Memory Controller"
  3. ^ John Carter, Wilson Hsieh, Leigh Stoller, Mark Swansony, Lixin Zhang, et. al.

Spoljašnje veze uredi

  • Selecting Memory Controllers for DSP Systems A how-to article on evaluating memory controllers using the VisualSim virtual prototyping tool.
  • [1] Infineon/Kingston (a memory vendor) Dual Channel DDR Memory Whitepaper. Explains dual channel memory controllers, and how to best use use them.