Számítógép memóriák összehasonlító szimulációs vizsgálata
Diplomaterv sorszáma: 550/2015
Szandtner Zoltán Budapest 2015
2
Tartalomjegyzék Bevezetés ....................................................................................................................... 5
1
1.1
A kutatási téma és a megoldandó probléma ....................................................... 6
1.2
Modern memóriahierarchia és a felvetett problémái ...................................... 10
1.3
Módszertani összefoglaló .................................................................................... 16
Számítógépekben használt memória típusok és technológiák ............................... 17
2
2.1
Hagyományos memóriatípusok áttekintése ...................................................... 17
2.2
Új típusok és technológiák ................................................................................. 37
Szimulációs vizsgálatra használt eszközök (szoftverek) ......................................... 47
3
3.1
Szimulációs és tervező eszközök osztályzása .................................................... 48
3.2
Szimulációs eszközök áttekintése ...................................................................... 50
3.3
Használt szoftverek ismertetése ......................................................................... 53
Memória áramkörök gyakorlati vizsgálata ............................................................. 55
4
4.1
Céláramkörök kiválasztása ................................................................................ 55
4.2
STT-RAM cella szimulációs mérések NVMSpice-szal ...................................... 56
4.3
Memóriamodul szintű mérések NVSim-el ........................................................ 63
4.4
Összesített mérési eredmények .......................................................................... 65
4.5
Következtetések ................................................................................................... 70
Összefoglalás ............................................................................................................... 71
5
5.1
Célok és elért eredmények ................................................................................. 71
5.2
Önálló munka összefoglalása ............................................................................. 71
5.3
Felhasználási lehetőség. ...................................................................................... 71
5.4
Továbbfejlesztési lehetőségek ............................................................................ 72
6
Irodalomjegyzék ......................................................................................................... 73
7
Ábrajegyzék ................................................................................................................ 78
8
Táblázatjegyzék .......................................................................................................... 80
Melléklet
Mágnesezettség alapú mágneses ellenállás jelenségek ............................. 81
1.
Anizotrop mágneses ellenállás (AMR = Anisotropic Magnetic Resistance) .... 81
2.
Óriás mágneses ellenállás (GMR = Giant Magneto Resistance) ...................... 81
3.
Alagutazó mágneses ellenállás (TMR) .............................................................. 82
3
4
1 Bevezetés Napjainkban a félvezető eszközök tranzisztor száma közelítőleg ugyan a Moore törvény [1] szerint növekszik, de a szálankénti tényleges számítási teljesítmény már nem követi az exponenciális trendet. David A. Patterson 2006-os, „A számítógép architektúrák jövője” c. [2] előadásában a jelenséget a Dennard-skálázás [3] megszűntére vezette vissza. Az eredetileg MOSFET (Metal– Oxide–Semiconductor Field-Effect Transistor) tranzisztorokkal kapcsolatos megfigyelés a tranzisztorok teljesítménysűrűségét állandónak mondja ki, azaz energiafogyasztásuk a mérettel arányosan csökken. 2004-re a 90 nm-es csíkszélességű gyártástechnológia bevezetésekor, a növekvő szivárgási áramok következtében ez már nem volt igaz, s a processzorok addigi órajel emelkedése megtorpant [4] [5] (1-1. ábra).
1-1. ábra - Intel Processzor trendek [4] Patterson három új alapvető korlátot fogalmazott meg a számítási teljesítmény további növelésével szemben: a hőteljesítmény-, a memória- és az ILP-falat. Előadásakor [2] az első, a teljesítmény-falat az ipar már elérte. Ezért a továbbiakban a mind nagyobb párhuzamosítást tartotta a teljesítmény további növelése legvalószínűbb módjának. Az eltelt tíz év során – az 5
általános számítási feladatkörben –, a többmagos processzorok széleskörű elterjedése őt igazolta. 1.1 A kutatási téma és a megoldandó probléma Ugyan az iparban a főtár gyártáshoz használt DRAM (Dynamic Random–Access–Memory) és a processzor gyártáshoz használt CMOS (Complementary Metal–Oxide–Semiconductor) technológiák nagymértékben különböznek (1-1. táblázat), a processzortervezés új paradigmái a főtár memóriák számára is új kihívást jelentenek, mivel a szálszintű párhuzamosítás a memóriafal problémáját erősíti. Tech.
Alapkristály feszültség
Szivárgási áram
Küszöb feszültség
Layout komplexitás
Vezető rétegek (db)
DRAM
előfeszített
alacsony
magas
egyszerű
3-4
CMOS
0 V közeli
jelentős
alacsony
összetett
7-8 (tipikus) 13-14 (csúcstech.)
1-1. táblázat - DRAM és CMOS technológiák A memóriafal problémaköre A memóriafal probléma alatt azt a számítási korlátot értjük, amit a memória-rendszer processzorhoz képest lassabb működése okoz. A processzor hiába lenne képes hasznos munkára, ha a szükséges adat még nem áll rendelkezésre. A problémát ma több tényezőre is visszavezethetjük. Egyrészt maga a főtár DRAM chipjeinek órajele nem tartott lépést a processzorokban használt SRAM (Static Random–Access–Memory) memóriáéval (1-2. ábra).
1-2. ábra - CPU/DRAM átlagos memória kérések/kiszolgálások másodpercenként [6] 6
A kommersz informatikai sajtó naiv olvasóját ez az állítás bizonyosan meglepi, hisz a memória gyártók évről évre egyre nagyobb órajelű memóriamodulokat dobnak piacra. Ritkán hangzik el azonban, hogy az órajel a buszfrekvenciát jelenti, nem a chipét (1-3. ábra).
1200 MHz
2500 MB/s
1000 MHz
2000 MB/s
800 MHz 1500 MB/s 600 MHz 1000 MB/s 400 MHz 500 MB/s
200 MHz 0 MHz
0 MB/s
Chip órajel (MHz)
Busz órajel (MHz)
Átviteli sebesség (MByte/s)
1-3. ábra - SDRAM generációk órajelei (a világosabb oszlopok a chip-, a sötétebbek a buszfrekvenciát jelölik) Ennek a buszsebességnek a kiszolgálásához a modulon belül és a memóriarendszer egészében egyre nagyobb és nagyobb párhuzamosításra van szükség. Ez ugyan nagyobb adatátviteli sávszélességet hozott, de nem oldotta meg a DRAM chipek SRAM-hoz képesti sokkal nagyobb késletetése okozta problémát. Az egyre nagyobb „adatéhű” processzorok ezért mára fokozottan a gyorsítótár architektúra segítségére hagyatkoznak a gyors működéshez. Paradox módon – bizonyos esetekben – ez akár újabb késleltetéseket is vihet a memóriarendszerbe. A problémák másik része jellegüket tekintve sokkal alattomosabb. A memóriarendszer moduláris, hierarchikus szervezése – ahol a részegységek csak jól leírt, funkcionális interfészeken át kommunikálnak egymással – sokáig lehetővé tette, hogy a tervező csak a rendszer egy-egy izolált részegységére koncentráljon, s azt önmagában optimalizálva javítsa a rendszer teljesítményét. Mára ez már nem járható út, mivel a rendszerszintű jelenségek a működést alapvetően kezdték el befolyásolni. A jelenségek nem az egyes egységek jellemzőiből származnak, hanem
7
azok rendszeren belüli összjátékának következményei. Ezen problémák csak az egész rendszer kellő pontosságú modellezésével deríthetők fel és kezelésük a rendszer egészének öszszehangolt tervezését igényli. Ilyen jelenség például, hogy a főtárat a processzorral összekötő sínrendszer sávszélessége is szűk keresztmetszetnek bizonyult. Ezt az informatikai tudományos élet is csak későn kezelte megfelelően. Bruce Jacob munkájában arra mutatott rá, hogy az izolált részegység tervezéshez használt modellező eszközök nem vették figyelembe azokat az összetett folyamatokat, amik csak a rendszer egészének vizsgálatakor jelentkeznek [7]. A tartósan nagy sávszélességet használó rendszereknél az egyszerűbb modellek késletetés jóslatai már igen jelentős eltérést mutathatnak a rendszer egészét szimuláló modellhez képest (1-4. ábra).
1-4. ábra - Memória szimulációs modellek összehasonlítása [7] A jelenség magyarázata, hogy a több processzoros, többszálú környezetben a processzorok már akkor is kiéheztetett állapotba kerülhetnek, ha a rendszer még nem érte el a főtár teljesítménykorlátait. Az egymással a memória hozzáférésért versengő processzorok kérései ugyanis már korábban telíthetik a főtárat a processzorral összekötő sínrendszert. Az új memóriatechnológiák lehetőségei Az új memóriatechnológiák alkalmazása minőségi javulást hozhat, mert a probléma egyik gyökerét, az elérési idő különbséget enyhítheti. Ez, ha a problémákat nem is oldja meg egy csapásra, de mindenképp nagymértékben csökkentheti azok súlyosságát. A memóriafal visz-
8
szaszorításához olyan memóriára van szükség, amely ötvözi a DRAM és SRAM kedvező tulajdonságait. Így gyorsabb főtár, vagy nagyobb kapacitású – tehát jobb találati arányú, ezért hatékonyabb – gyorsítótár készíthető. Jelenleg ilyen új memóriák és gyártástechnológiák sokaságát fejlesztik (1-5. ábra). Ezek eltérő előnyökkel és hátrányokkal rendelkeznek a hagyományos memóriákhoz képest. Jelentős részük – például a PRAM (Phase Change Random-Access Memory), RRAM (Resistive Random-Access-Memory) – az ún. “tároló” memória szerepet célozzák, azaz akárcsak a Flash memória, az adat tartós, nagy kapacitású tárolására szolgálnak. Mivel e technológiák tipikusan a DRAM-nál nagyobb elérési idővel rendelkeznek, ezért többségük jelen dolgozat témakörén kívül esik.
1-5. ábra - MOSFET trendek és új memória technológiák [8] Dolgozatom célja a jelenleg fejlesztés alatt álló új, gyors memória technológiák vizsgálata, architekturális és felhasználói szempontokból, a memóriafal probléma jegyében. Szimulációs eszközökkel, a már rendelkezésre álló modelleket felhasználva, összehasonlító vizsgálatot végzek a legígéretesebb új technológia és hagyományos DRAM, SRAM között. Meg kívánom állapítani, hogy a memória hierarchia mely szintjein érdemes új technológiát használni, és hogy milyen előnyökkel-hátrányokkal jár az új technológia A kutatás hosszabb távú célja olyan szimulációs mérési adatok kinyerése, amelyek segítségével az új memóriatechnológia teljes, cikluspontosságú rendszerszimulátorban is vizsgálható.
9
1.2 Modern memóriahierarchia és a felvetett problémái Az ideális memória gyors, nagy kapacitású, olcsó. Univerzális. Különösen új memóriatechnológiáknál időről-időre fölmerül az „univerzális memória” lehetősége, amely önmagában, egyszerre képes lenne a ma használt gyors és lassú tárak feladatainak ellátására. (A szakirodalomban a fogalom jelentése nem egységes, mivel mind a főtár és regiszterek, mind a háttértár és a főtár közti szakadék áthidalására hivatott memóriát szokás így hívni). A mai hagyományos és érett új technológiák „sajnos” egyike sem alkalmas a feladatra. Föl kell tegyük azonban a kérdést, hogy ha lenne is ilyen technológia, – például ha a korai kísérleti fázisban lévő MeRAM (Magnetoelectric Random-Access-Memory) beváltja a hozzá fűzött reményeket [9] – tényleg ez a „lapos” – azaz egyrétegű, nem hierarchikus –, homogén memória-rendszer lenne az ideális? Bruce Jacob, a memória-rendszerek egyik közismert szakértője szerint több érv is ez ellen szól: „Ugyan az egyetlen technologiabol allo, ‘lapos’ memoria-rendszer egyszerűsege vonzo, de egy jol megvalosított hierarchia lehetove teszi, hogy a memoriarendszer egyszerre kozelítse a leggyorsabb komponens teljesítmenyet, a legolcsobb komponense bitenkenti tarolasi koltseget es a legenergiatakarekosabb komponens fogyasztasat.” – Brűce Jacob [10]
1-6. ábra - Northbridge/Southbridge PC architektúra [11] a sötétszürke elemek tekinthetők a memóriarendszer részeinek 10
A gyártásban emiatt heterogén, hierarchikus memória architektúrákat használnak, amelyek igyekeznek az alkalmazható technológiák előnyeit ötvözni (1-6. ábra). Lokalitás elvek Hogy lehet ezt a gyakorlatban is megvalósítani? Hogy lehet a rendszer gyors működését a gyors és lassú komponensek együttes használata mellett is szavatolni? A jelenségeket, amelyek a memóriahierarchia hatékony működését lehetővé teszik lokalitási elveknek szokás hívni. Az elvek abból következnek, hogy a memória hozzáférések nem véletlenszerűek, hanem meghatározott mintákat követnek:
Ha egy adatot egyszer már fölhasználtunk, nagy valószínűséggel ismét föl fogjuk használni. Ez az időbeli lokalitás, azaz a futó programok egy memória címre a futás során többször is hivatkoznak.
Ha egy adatot fölhasználunk, a memóriában a mellette lévő adatot is nagy valószínűséggel használni fogjuk. Ez a térbeli lokalitás.
Az elvekből az következik, hogy egy a program futása során, nem fogja a memória rendszer teljes tartalmát fölhasználni, hanem hivatkozásainak jelentős része annak csak egy kis, körülhatárolható területére fog mutatni. Azaz, elegendő, hogy az adatoknak mindig csak egy szükséges töredékét tartsuk egy gyorsabb tárban. A hierarchia minden szintje a memóriával szembeni követelmények közül mindig egy meghatározott feladatkör végrehajtására optimalizálható. A hiányosságait az esetek jelentős hányadában – amikor a lokalitási elvek érvényesülnek –, majd a felette levő réteg eltakarja. Háttértár Minden számítógép rendszernek szüksége van tartós háttértárra, hogy a rendszer működéséhez szükséges programok, adatok a rendszer áramtalanítsa után is rendelkezésre álljanak. A PC-kben, mivel a felhasználási cél szerint akár több TByte tárhelyre is szükség lehet, a tartós tárolást nagyon nagy kapacitású – ezért tárolt bitenként rendkívül kis költségű – háttértárak (például HDD »Hard Disk Drive«, SDD »Solid State Drive«) végzik. Beágyazott rendszereknél erre elegendő lehet akár egy korlátozott kapacitású, de jó olvasási elérési idejű perzisztens memóriachip is. Számos fajtájuk van, de széles körben a gyártás során kialakított tartalmú, csak olvasható ROM (Read Only Memory), és az elektromosan, 11
korlátozott alkalommal újraírható tartalmú EEPROM (Electrically Erasable Programmable Read-Only Memory) chipeket használják. (Ez utóbbi egy változata az SSD-kben is használt, nagyobb kapacitású, csak blokk szinten írható flash memória). Főtár / Műveleti-tár A háttértárak elérési ideje, illetve a perzisztens chipek írási ideje a memória rendszer többi részéhez képest óriási, akár több ms (1-7. ábra). Ezért a programok által aktuálisan használt, vagy hamarosan használni szándékozott adatokat a sokkal gyorsabb, de illékony és kisebb kapacitású főtárban, tipikusan DRAM chipekben tároljuk. A memória vezérlő segítségével innen olvassa ki az adatokat a processzor és a DMA (Direct Memory Access) hozzáféréssel rendelkező perifériák.
1-7. ábra - SSD és hibrid (SSD+HDD) háttértárak átlagos írás késleltetései [12] Gyorsítótár Egyes beágyazott rendszereknél a DRAM alapú főtár nyújtotta elérés idő is elegendő. A nagy számítási teljesítményű rendszereknél azonban, a főtárban használt DRAM chipek már nem elég gyorsak. A nagy teljesítményű processzorok sokkal nagyobb órajelen működnek. Ezért ilyen rendszerekben, ahogy a háttértár adatainak elérését a főtárral, úgy a főtár elérését gyorsítótárak (cache) segítségével javítjuk. 12
A gyorsítótárak alkalmazásának másik fő oka – például beágyazott rendszereknél –, a fogyasztás csökkentése. A gyorsítótár közbeiktatásával csökkenthető a főtárhoz intézett kérések száma, így a főtár fogyasztása is. Alapvető a különbség ugyanakkor a PC-kben alkalmazott főtár és a gyorsítótárak működésében. Míg a főtár tartalmát a programozó kezeli, a gyorsítótárnál ez a szoftveres megoldás túl lassú lenne. A gyorsítótárat a hardver automatikusan, a programozó számára láthatatlan módon menedzseli. Regiszterek A rendszer leggyorsabb memóriáját a processzor regiszterei adják. Ezek működési sebessége alapvetően befolyásolja a processzor sebességét is, így e memória típusnál a gyors működés elsődleges fontosságú. Innen az adat már a tényleges számítási műveleteket végrehajtó egységekhez, például ALU-khoz (Arithmetic Logic Unit), FPU-khoz (Floating Point Unit) juthat, s a művelet eredménye is gyakran ide, a regiszterekbe íródik vissza. A regiszterek tartalmát a futó programok utasításai közvetlenül kezelik. A mindennapi programozásban ezt gyakran elfedi, hogy a programok többsége magas szintű nyelven íródik. Ilyenkor a regisztereket címző utasítások az írt kódnak csak a compiler által már lefordított, gépi kódra fordított változatában, vagy a gépi kód ember által olvasható, mnenomic-okkal leírt változatában, az assembly programban jelennek meg. A memóriahierarchia szerkezete
Regiszterek
Költség / bit
L2 cache . L3 cache .
Sebesség
Kapacitás
L1 cache
Főtár
Háttértár
1-8. ábra - Memóriahierachia 13
A regiszterekkel a csúcson, a felsorolt tárak egy memória hierarchiát alkotnak, amit egy piramissal szokás ábrázolni. Ennek szintjein lefelé haladva a nagy gyorsasságtól és bitenkénti tárolási költségtől, a nagy kapacitás és olcsó tárolási költség felé jutunk (1-8. ábra). Az alkalmazott két fő technológia A háttértáraktól eltekintve a memóriahierarchia felépítését, az alkalmazott két fő technológia, az SRAM és a DRAM közti különbségekre vezethetjük vissza (1-9. ábra).
SRAM
DRAM
Vdd WL T3
elérési t ranziszt or
T4
T5
T6 addat t ároló kondenzát or
T2
T1
BL
BL
WL
BL
1-9. ábra – 1 bit tárolását végző SRAM és DRAM elemi cellák. A processzor regisztereiben és a gyorsítótárakban alkalmazott, CMOS technológiával gyártott (1-1. táblázat) SRAM akár 3–4 GHz-es órajelen is üzemeltethető és emiatt gyors. A memóriacella nagy alkatrész száma – 4-6 tranzisztor – miatt kis felületi bitsűrűségű, ezért a bitenkénti tároló kapacitása korlátozott. A főtárban használt DRAM gyártástechnológiája (1-1. táblázat) olcsóbb. A cella egyszerűbb felépítése és kis alkatrész száma – mindössze 1 tranzisztor és 1 kondenzátor – miatt nagy felületi bitsűrűségű, ami nagy tároló kapacitást tesz lehetővé. Ugyanakkor a DRAM működése az SRAM-hoz képest lassú, az áramkörök maximális órajele típustól függően mindössze 100–400 MHz közé esik.
14
A memóriahierarchia jellemzői A két fő tároló, a processzor gyors regiszterei és a nagy kapacitású főtár közti szakadékot a köztes elérési idejű és kapacitású gyorsító tárak (cache) hidalják át (1-2. táblázat). Tároló
Regiszterek
L1 cache
L2 cache
L3 cache
Főtár
Hozzáférés
<1 ns
1 ns
4 ns
5 ns
10-20 ns
SRAM
SRAM
SRAM
DRAM
statikus
statikus
statikus
dinamikus
SRAM
Technológia
(több portos)
Üzemmód
statikus
Alkatrész/cella ≥6 tranzisztor 6 tranzisztor 4–6 tranzisztor 4–6 tranzisztor
1 tranzisztor + 1 kondenzátor
Maximum kapacitás/chip
~1 KB
64 KB
256 KB
3–12 MB
4–8 GB
1-2. táblázat - Memóriahierarchia szintek jellemző paraméterei Felmerülhet a kérdés, hogy ha ugyanolyan – vagy közel azonos – SRAM technológiát használnak a regiszterek és a gyorsítótárak, akkor miért van különbség az elérési idejükben? A processzorban használt órajelek diktálta rendkívül kicsi ciklusidők esetén már az elektromos áram jelterjedési ideje is korlátot jelent. A nagyobb kapacitású SRAM memória fizikailag is nagyobb, így pusztán a jelterjedési idő folytán nagyobb elérési ideje lesz. A többlépcsős cache hierarchia az SRAM-mal megvalósítható kapacitás és sebesség kombinációk eredménye. Az elérési idő javításához, a gyorsítótárak használatán kívül, a gyorsító- és főtáron belül is különféle megoldásokat alkalmaznak. Az olvasási műveleteket párhuzamosan több eszközben végrehajtva, illetve a kiolvasás lépéseit több eszköz közt futószalagos rendszerben elosztva, a tár átlagos elérési ideje javítható. Ezek a megoldások a chipek késleltetési idejét nem befolyásolják, hiszen az első, adott memóriaterületre mutató kérés késleltetési ideje nem javul. A tár egésze azonban gyorsabban tudja a processzor rendelkezésére bocsátani az adatokat, feltéve, hogy a lokalitás az adott programszakaszban érvényesül. A modern memóriahierarchia fő problémája éppen ezekből a sokasodó párhuzamosító, öszszefésülő (interleaving) megoldásokból származik. A rendszer már-már túlontúl nagy komplexitású. Modellezése, optimalizálása igen összetett probléma, amihez csak most készülnek kellő finomságú eszközök.
15
1.3 Módszertani összefoglaló Szakdolgozatom nem előzmény nélküli. A témára először tanárom – később mentorom és konzulensem – Dr. Vári-Kakas István Professzor Úr hívta fel a figyelmem. Az Ő ajánlására kezdtem a Gábor Dénes Főiskola TDK műhelyében a kutatásba. Eredményeimről a 2013-as és 2014-es intézményi konferenciákon tartottam prezentációt. Utóbbi dolgozatomat lehetőségem volt a 2015-ös Országos Tudományos Diákköri Konferencia Műszaki Tudományi Szekciójában is bemutatni. A tudományos diákköri munka során a modern memória technológiák mélyebb megismeréséhez először irodalomkutatást végeztem. A különféle technológiákhoz köthető IEEE (Institute of Electrical and Electronics Engineers) és ACM (Association for Computing Machinery) cikkeken felül ebben nagy segítségemre volt több, a területről készült áttekintő tanulmány. Ezek közül kiemelném a Nanyangi Műszaki Egyetem kutatóinak, Hao Yu és Yuhao Wang professzoroknak a kötetét, amelynek címe: „Feltörekvő nano-léptékű perzisztens memóriák tervezési vizsgálata” [13]. Továbbá az Avalanche Technology intézményvezetője, Xiaobin Wang által szerkesztett gyűjteményt, a „Fémes Spintronikai Eszközök” címűt [14]. A kigyűjtött adatokat értékelve kiválasztottam a legígéretesebb technológiát a részletesebb vizsgálathoz. Ezt követően a technológia fizikai hátterét tekintettem át, a szimulációs modellek jobb megértéséhez. Mivel a magasabb – RTL (Register-Transfer Level), ESL (Electronic System Level) – modellezési szintű vizsgálatokhoz az alacsonyabb, áramkör szintű mérési eredményekre – mint bemenő paraméterre – van szükség, először a memória cella szimulációs méréseit végeztem el. Az áramkör szintű méréshez a SPICE (Simulation Program with Integrated Circuit Emphasis) egy új változatát, az NVMSpice-t használtam, mivel ez a szoftver képes a perzisztens memória eszközök belső állapotát is figyelembe venni [15]. Az áramkör szintű méréseket RTL szintű mérésekkel folytattam. Erre egy memória-architektúra szimulációs eszközt, az NVSim-et használtam. Az eszköz a Hewlett Packard CACTI [16] programcsalád funkcióit viszi tovább, így a memóriachip kapcsolóhálózatának automatikus optimalizácíóval egybekötött modellezését teszi lehetővé. A modellezett chip alkalmazásához szükséges főbb paramétereket is meghatározza. Akárcsak az NVMSpice-nál, itt is a szoftver perzisztens memóriák támogatása miatt esett erre a választás.
16
2 Számítógépekben használt memória típusok és technológiák A memória-rendszerek egyik legfrissebb, részletes és mélyreható tanulmánya, a Bruce Jacob, Spencer W. Ng, David T. Wang szerzőhármas 2007-es „Memória-rendszerek: Cache, DRAM, Diszk” című könyve [17]. A kötet mérföldkő a memória szakirodalomban, mivel addig példátlan mélységben és részletességgel tárgyalja a memória-rendszerek elemeit, a háttértártól a gyorsítótárig és a rendszerszintű összefüggésekre, jelenségekre is rávilágít. Összefoglalómban elsősorban az ő munkájukra támaszkodom, amit helyenként a kaliforniai Számítógép Történeti Múzeum weblapján [18] található képekkel, illusztrációkkal, történeti adatokkal egészítettem ki. 2.1 Hagyományos memóriatípusok áttekintése SRAM Az statikus közvetlen hozzáférésű memória (SRAM) története szorosan kapcsolódik az integrált áramkörök (IC = Integrated Circuit) és félvezető eszközök fejlődéséhez, mivel ez volt az első IC-vel megvalósított memória típus. Az ötlet már az iparág kezdetén, a 60-as évek elején fölmerült. Egy interjúban Gordon Moore úgy nyilatkozott a Fairchild Semiconductor-nál töltött időszakáról, hogy Bob Norman már 1961-ben fölvetette az integrált memória ötletét, több flip-flop egy chipre integrálását. A cég a technológia akkori szintvonalán még nem tartotta praktikusnak az ötletet [19]. Az első modern SRAM – akkor még csak „RAM” – memória cellát 1969-ben, John Schmidt tervezte, szintén a Fairchild Semiconductor-nál. Ez már a cég MOSFET (Metal–Oxide–Semiconductor
Field-Ef-
fect Transistor) tranzisztorát használta és 64-bit kapacitású volt. Az első bipoláris tranzisztort használó memóriát, a Schottky TTL 2-1. ábra - Az első dedikált félvezető
(Schottky
Transistor–Transistor
Logic) alapú 3101-est az Intel hozta forgalomba, ugyanúgy 1969-ben.
memória az Electronics magazin címlapján 1966-ban [20] 17
IC eszköz révén, az addigi memóriáknál sokkal gyorsabb volt. Megjelenését követően az SRAM elengedhetetlen lett a gyors számítógép rendszerek építéséhez. Kezdetben, azért is hogy egy – közvetlenül szoftverből vezérelt –, ún. „scratch-pad”, (jegyzettömb) memóriát biztosítson, ami a háttértárral ellentétben, a processzorhoz hasonló szó szemcsézettségű címteret használ és azzal összevethető sebességű. A DRAM megjelenését követően főtárnak inkább ez utóbbi, olcsóbb technológiát alkalmazták. Az SRAM is ekkor kapta meg a mai nevét adó statikus jelzőt, mivel meg kellett különböztetni, az újabb, dinamikus memóriától. A később tárgyalt DRAM memóriával ellentétben, a modern SRAM memóriák fejlődése, különösen a PC-knél, nehezebben nyomon követhető, mivel az SRAM elsődleges alkalmazási területe a gyorsítótár lett, s ezt vagy a processzorba, vagy az alaplapra integrálták. Előbbire az SRAM különösen alkalmas, mivel ugyanúgy CMOS gyártás technológiával készül, mint a processzor, így könnyen integrálható a chipbe. Az SRAM memória fejlődése ezért szorosan összefonódott a processzoréval. Az SRAM mikrostruktúrája – az elemi SRAM cella Az elemi SRAM cella lelke, a két keresztbe kötött inverter alkotta flip-flop, egy bistabil billenőkör (2-2. ábra). Az áramkör két stabil állapottal rendelkezik. Az egyik inverter beme̅̅̅̅), mindaddig, amíg az áramkört tápfenete a bitet (𝐵𝐿), a másik ennek inverzét tárolja (𝐵𝐿 szültséggel látjuk el. Az áramkör visszacsatolása ugyanis folyamatosan regenerálja a feszültségszinteket.
BL
WL
BL
2-2. ábra - SRAM elemi cella inverterekkel ábrázolva Sajnos ez az önszabályozás a mai SRAM memóriáknál már nem elegendő a cella adattartalmának védelmére a környezeti hatásokkal szemben. Az egyre kisebb csíkszélességű gyártás, egyre kisebb tárolt töltést és egyre nagyobb szivárgási áramokat hozott magával. 18
Mára az SRAM az egyik legérzékenyebb memória típus a háttérsugárzás, vagy EM interferencia szempontjából. Gyakran – különösen szerver környezetben – a memóriát hibaellenőrző és –javító, ECC (Error-Correcting Code) áramkörökkel egészítik ki. Ez az érzékenység az egyik oka, hogy a mindössze négy tranzisztor igénylő LL4T (Loadless Four Transistor) cella helyett a kevésbé érzékeny, de nagyobb, teljes, hat tranzisztoros CMOS cella használata az általános (2-3. ábra).
Vdd WL
T3
T4
T5
T6
T2
T1
BL
BL
BL
WL
BL
2-3. ábra - LL4T és teljes CMOS SRAM cellák [21] Az SRAM makrostruktúrája A kapcsoló hálózat egyszerűsítése és a felhasznált logikai kapuk számának minimalizálása érdekében a cellák mátrix szervezésben vannak, amit bitmezőnek is hívunk. Kis kapacitású SRAM memória esetén az ún. „szószervezés” használatos (2-4. ábra). Nagyobb kapacitású memóriáknál módosított bitszervezés a jellemző, amit később fogok bemutatni. Szószervezésnél a mátrix n darab vízszintes szóvezetékekből (WL = Word Line) és m darab függőleges bitvezeték párból (𝐵𝐿 = Bitline és ̅̅̅̅ 𝐵𝐿 avagy 𝐵𝐿𝐵 = Bitline Complement) áll. Minden szóvezeték és bitvezeték pár metszéspontjaiban egy elemi SRAM cella van bekötve. Ennél a szervezésnél csak a mátrix sorai címezhetők. Minden sor adott szóhossznyi (8, 16, 32, …) oszlopból áll. Mindig egy szóhossznyi adatot olvasunk ki, vagy írunk be. A 2-4. ábra 128 bites memóriájánál n=8, m=16. A sorok címzéséhez 𝑙𝑜𝑔2 (𝑛), azaz 3 darab címvezeték (A0–A2), és n-nyi, azaz 8 darab sorvezeték (WL0–WL7) szükséges. Az egyszerre kiolvasott és beírt szóhossz m-nyi, azaz16 bit (BIT0–BIT15). 19
2-4. ábra - Szószervezésű SRAM makro- és mikrostruktúrája [21] Az SRAM működése A cellák írását és kiolvasását a vízszintesen szóvezetékre kötött két hozzáférési tranzisztorral (access transistor) valósítják meg. Az előfeszítő (precharge) áramkörök a ponált (𝐵𝐿) és ̅̅̅̅ vagy 𝐵𝐿𝐵) bitvezetékeket az 1-es logikai szint feszültségére húzzák fel, majd negált (𝐵𝐿 lekapcsolódnak (2-5. ábra). A bitvezetékek a saját kapacitásuk segítségével a feszültségszintet megtartják. Az 1-es szintre húzás azért hasznos mivel a celláknak könnyebb és gyorsabb a bitvezetéket 1-ről 0-ra lehúzni, mint fordítva.
2-5. ábra - SRAM elemi cella írás és olvasás idődiagramja [21] A sordekóder áramkör (a 2-4. ábran nyolc darab ÉS kapuval megvalósítva) a címvezetékek értékeit dekódolva, az adott, i-edik szóvezetékre logikai 1-es értéket visz. Ekkor az adott sor összes cellája „kinyit”, s a cellák invertereiben őrzött értékek a ponált és negált bitvezetékekre kerülnek. Az érzékelő erősítők (SA = Sense Amplifier) érzékelik a ponált és negált bitvezeték feszültség különbségét, s a kimenetükön megjelenik a cella tartalma (BIT0– BIT15). 20
Íráskor a bitvezetékek meghajtó áramkörei nem kapcsolódnak le a vezetékekről. A ponált és negált bitvezetékekre ráadjuk a beírandó logikai értékeket:
j-edik Bit = 1 𝐵𝐿𝑗 = 1, ̅̅̅̅ 𝐵𝐿𝑗 = 0
j-edik Bit = 0 𝐵𝐿𝑗 = 0, ̅̅̅̅ 𝐵𝐿𝑗 = 1)
Az i-edik sor összes cellája a hozzáférési tranzisztorain keresztül felveszi a bitvezetékek által rákényszerített értéket, mivel a bitvezetékek meghajtó tranzisztorai erősebbek, mint a cellák tranzisztorai. Az elődekódolás Nagyobb memóriáknál probléma, hogy a sordekóderben szám szerint sok, és sok bemenettel rendelkező – azaz nagy Fan-in értékű – kaput kell használni. Ezek kevésbé hatékonyak, mint a kevesebb bemenetű – így kisebb Fan-in értékű – kapuk. Erre egy jó megoldás az elődekódolás, amikor a dekódolást több lépésre bontva, nagyobb „mélységű”, de hatékonyabb dekódoló áramkört kapunk. Bruce Jacob a következő példával illusztrálja könyvében az elgondolást (2-6. ábra). 8 bit nem-invertált cím
256 szóvezeték
8 bit invertált cím
Elődekódolók
2-6. ábra - Egyszerű (a) és elődekodólásos dekóder (b) [21] Vegyünk egy i = 8, m = 32, 256x32-es, szószervezésű memóriát! Egy egyszerű dekóder 256 db, 8-bemenetű ÉS kapuval dekódolja a címet. Ha a címet két 4-bites részre bontjuk, akkor azokat 16-16 db 4-bemenetű ÉS kapuval elődekódolhatjuk, majd 256 db, 2-bemenetű ÉS kapuval fejezzük be a dekódolást. Az elődekódolás ugyan több kaput használ és hosszabb jelutakhoz vezet, de darabra sokkal kevesebb – csak 32 db – sok bemenetes kaput használtunk, amik ráadásul kevesebb bemenettel rendelkeznek. A gyakorlatban az elődekódolás haszna SRAM-nál szinte mindig indokolttá teszi a használatát. 21
A módosított bitszervezés A még nagyobb memóriáknál már maga a szószervezés sem praktikus, mivel a címbitekből dekódolt sorválasztó vezetékek száma túlontúl nagy lenne. Például i = 12 bit esetén 212 = 4096 sorból állna a mátrix, ami még 64-bites szóhossz mellett is aránytalan lenne. A nagyobb memóriáknál ezért bitszervezést szokás alkalmazni, ahol a címbitek egyik fele (n-bit) a sort, a másik fele (m-bit) az oszlopokat azonosítja. A „közönséges” bitszervezés esetén miden sor-oszlop metszéspontban egy-egy ÉS kapuval engedélyezzük a cellát. Mivel ez még több kaput vinne a mátrixba, ezért az elterjedtebb megoldás ennek egy módosított változata. A kiválasztás helyett inkább a kimeneteket „szűrjük” multiplexerrel, amit az oszlopok címbitjeivel vezérlünk (2-7. ábra).
2-7. ábra - Módosított bitszervezésű SRAM [21] A multiplexerek azt is lehetővé teszik, hogy több oszlop osztozzon ugyanazon az érzékelő erősítőn, így helyet és energiát spórolhatunk. Az osztott szóvezeték (DWL = Divided Wordline) Adott méret felett azonban nem egyetlen bitmezőt, hanem hierarchikus felépítésű struktúrát használunk. Ennek oka, hogy az osztatlan SRAM mátrixban a szóvezetéknek a sor összes
22
celláját meg kell hajtani. Minden oszlopban lesz egy-egy aktív cella, amelynek a tranzisztorai fölöslegesen dolgoznak, mivel az oszlopok csak egy részét használjuk. A hosszú szóvezetékek parazitív kapacitása és ellenállása is egyre jelentősebb lesz. Ezen problémák enyhítéséhez vezették be az osztott szóvezetéket (2-8. ábra). Ekkor a bitmezőt blokkokra osztjuk. A globális szóvezeték (GWL = Global Wordline) egy blokkválasztó jellel (BS = Block Select) ÉS kapukon át, csak a cellák adott blokkba eső részét nyitja meg. Ezeket egy rövidebb, helyi szóvezetékre (LWL = Local Wordline) kapcsoljuk. A blokkválasztó jel generálásához a cím egyes bitjeit használjuk.
2-8. ábra - Osztott szóvezetékes dekódolású SRAM [21] A hierarchikus sordekódolás (HWD = Hierarchical Word Decoding) Ahogy a szóvezeték hossza adott méret felett probléma, úgy ugyanez a GWL vezetékre is áll. A HWD szervezés a problémát egyszerűen úgy oldja meg, hogy újabb szinteket visz a sordekódolási sémába (2-9. ábra).
2-9. ábra - Hierarchikus sordekódolás [21]
23
Az SRAM interfésze A vezérlése függhet közvetlenül a bemenetek megváltozásától, ilyenkor az SRAM-ot aszinkronnak szokás tekinteni (2-10. ábra - Aszinkron SRAM blokk és idődiagramaj 2-10. ábra). Ezt a megoldást elsősorban akkor alkalmazzuk, ha az SRAM-hoz közvetlenül processzort, mikrokontrollert kapcsolunk és főtárként használjuk.
2-10. ábra - Aszinkron SRAM blokk és idődiagramaj [21] Ha a vezérlés egy külső órajelhez kötött, akkor szinkron SRAM-ról beszélünk, dacára, hogy az órajellel csak az memória interfésze van szinkronban. A belső működése továbbra is aszinkron módon zajlik, s a külső órajel csak a folyamat elejét/végét jelöli ki. Ez a megoldás a gyorsítótár alkalmazásoknál elterjedt, s ekkor a minél gyorsabb hozzáférés a legfontosabb paraméter. Az SRAM ciklusidejét azonban nehéz tovább csökkenteni. (Vagy nincs már gyorsabb IC alkatrész, vagy azt beágyazott/integrált környezetben túl drága lenne alkalmazni). Ezekben az esetekben elterjedt a futószalagos burst üzemmód (pipelined burst mode) használata (2-11. ábra)
2-11. ábra - Pipelined Burst Mode SRAM blokkdiagramja [21]
24
A megoldás lényege, hogy interfész áramkörökkel „becsomagoljuk” a memóriát. Ezek a környezettel egy nagyobb, a memóriával kisebb órajelen kommunikálnak. Az SRAM szóhosszát a burst üzemmódú adatátvitel számsorosára (PBnum) növeljük. (2-12. ábra). Ez ugyan lehetővé teszi az SRAM használatát egy sokkal gyorsabb környezetben, de a késleltetés növeltük a nagyobb átviteli sebesség eléréséhez. A 2-12. ábra példájánál maradva, az N-1-es ciklusban indított olvasás eredménye, csak a N+ PBnum ciklusban lesz elérhető.
2-12. ábra - Pipelined Burst Mode SRAM idődiagramja [21] DRAM Az első dinamikus közvetlen hozzáférésű memóriachipet az IBM kutatója, az a Robert H. Dennard találta fel 1966-ban, akiről később a Dennard skálázást is elnevezték. Az első kereskedelmi forgalomban kapható eszközt, a 1103-as memóriachipet az Intel hozta ki 1970-ben (2-13. ábra). A következő évtizedekben a DRAM eszközök architektúrája folyamatos, fokozatos fejlődésen ment keresztül. Egészen a 1990-es évek közepéig, ez egyetlen irányba, a nagy kapacitású, olcsó, általános felhasználású eszközökre összpontosult [22]. A 2000-es évek végére a memória-rendszerekkel szembeni sokféle követelmény a fejlődés több ágra bomlásához vezetett. A DRAM családfa egyes ágai a 2-13. ábra - Tokozatlan DRAM chip a
különböző, az adott terület szempontjából
régebbi ferritgyűrűs memória rácsán [20]
kritikus jellemzőket helyezik előtérbe. (2-14. ábra). 25
2-14. ábra - A DRAM technológiák családfája [22] A DRAM mikro- és makrostruktúrája A dinamikus közvetlen hozzáférésű memória (DRAM) elemi cellája egy elérési tranzisztorból és egy adattároló kondenzátorból áll (2-15. ábra). A memóriát dinamikus mondjuk, mert a tárolt töltés idővel elszivárog, így a cella tartalmát időnként frissíteni kell. (A cella tartalmát ki kell olvasni, majd visszaírva, helyreállítani a kondenzátor töltését). Ennek oka, hogy a töltést tároló kondenzátor szigetelése nem tökéletes és az elérési tranzisztor zárt állapotában is van még szivárgási áram.
2-15. ábra - DRAM makro- és mikrostruktúrája [23] 26
A kapcsoló hálózat egyszerűsítése és a felhasznált logikai kapuk számának minimalizálása érdekében a cellákat módosított bitszervezésbe helyezik (2-15. ábra). Vízszintesen – soronként – szóvezetékek (WL), függőlegesen – oszloponként – bitvezetékek (BL) futnak. Minden szó- és bitvezeték keresztezési pontjába egy-egy elemi DRAM cella van bekötve. A DRAM működése Egy szóvezetékre feszültséget adva, a sor összes cellája „kinyit” és a kondenzátorok töltése a bitvezetékekre jut. Ez a töltés a bitvezetékek parazitív kapacitásához képest rendkívül kicsi, gyakran csak ~1/10-e a vezetékének, ezért a sor megnyitása előtt, a bitvezetékeket „előfeszítjük” (precharge) a logikai magas (1-es) és alacsony (0-s) szintek közti feszültségre (2-16. ábra).
2-16. ábra - Érzékelő erősítő feszültség diagramja [23] A kondenzátorok ezt a feszültséget húzzák el a magas, vagy alacsony feszültségszint felé. Az előtöltött feszültséggel összehasonlítva, az érzékelő erősítők már képesek ezt a változást érzékelni. Ezt követően az erősítő a feszültség elmozdulásának megfelelően a bitvezeték feszültségét a magas, vagy alacsony feszültségszintre húzza. Mivel a kondenzátor még a bitvezetékre van kapcsolva, evvel a cella tartalmát is visszaírja. A hozzáférés lépései Az erősítők tartalmából az oszlop multiplexer választja ki, s továbbítja a chip kimenetére az oszlopcímnek megfelelő biteket. A sor- és oszlop dekóderek illetve az oszlopok kimeneti multiplexereinek feladatai megegyeznek a módosított bitszervezésű SRAM-nál leírtakkal, de működésük rendje eltérő (2-17. ábra). 27
A korai DRAM-oknál fontos volt a chip lábainak számát minimalizni, mivel a gyártási költségekben ez meghatározó volt. Ennek máig tartó következménye, hogy a sor és oszlop címet két lépésben – idő multiplexeléssel – visszük át a cím buszon. Ezért a hozzáférés lépései is szétváltak sor- és oszlophozzáférésre.
2-17. ábra - A többfázisú DRAM hozzáférési protokoll [23] Az előfeszítést követően először mindig egy-egy lapnak (page) is hívott sort nyitunk meg. A DRAM típusától függően ezután egy, vagy több oszloplekérdezés történhet a lapból, majd a lap lezárása után ismét megkezdődhet a bitvonalak előfeszítése az új sornyitáshoz. A DRAM chipen belüli szervezése Egy DRAM chipen belül több bitmező is lehet, a mezőkhöz tartozó saját érzékelő erősítőkkel és adatpufferekkel együtt (2-18. ábra).
2-18. ábra - Többites kimenetű DRAM-ok szervezése [23] 28
Ha a mezőket együttesen, egyszerre vezéreljük, akkor ezek egy „bankot” alkotnak. Ekkor a bank a bitmezők számától függően több (2, 4, 8, …) bitet fog egyszerre kiolvasni vagy beírni, a bitmezők párhuzamos működése folytán. Egy DRAM-on belül több bank is lehet, és a bankok egymástól függetlenül üzemelnek. Az egyik bank végrehajthat éppen frissítést, míg a másik sornyitást végez, egy harmadik meg adatkivitelt. A DRAM a műveleteket időben „összefésülheti” (interleaving). Például ha egy bank minden 10 ns-onként tud új adatot kibocsátani, akkor két bank váltott üzemeltetésével a DRAM egésze erre már minden 5 ns-onként képes. Aszinkron DRAM – 1970’ A’70-es években, az Intel 1103-as DRAM eszközének megjelenése után, a gyártók számos DRAM chipet dobtak piacra. Az eszközök nem voltak szabványosítva, s mindegyik új eszköz tartalmazott valami egyedi újítást, ami javított az elődök teljesítményén. A korai eszközöket még órajel vezérelte, de az évtized közepére az aszinkron interfészek lettek általánosak. Ez a megoldás elméletileg jobb teljesítményt tett lehetővé (2-19. ábra). Az aszinkron DRAM-ok egy cím- és egy adatbusszal rendelkeznek. A memória irányítása vezérlőjelekkel történik (WE = Write Enable, CAS = Column Address Strobe, RAS = Row Address Strobe), melyek fel- és lelépő élei váltják ki és időzítik a hozzáférés műveleteit.
2-19. ábra - FPM DRAM blokkdiagramja [22] 29
Akárcsak a korábbi szinkron eszközöknél, ezeknél az aszinkron DRAM chipeknél is minden adathozzáférés alkalmával újra végre kellett hajtani a sor aktiválás és oszlop választó lépéseket (2-20. ábra). Még akkor is, ha a processzor ugyanabból a sorból akart olvasni, amit az előző művelet már megnyitott.
2-20. ábra - Aszinkron RAM - Olvasás időzitési diagramja [24] FPM DRAM (Fast Page Mode DRAM) – 1980’ Az FPM DRAM ezt a hátrányos tulajdonságot igyekezett orvosolni, a (gyors) lapolvasás (fast page mode) bevezetésével. Ha két oszlop olvasás közt a sorcímet tartanánk, akkor azonos sorcímzés mellett több, más-más oszlopcímzésű hozzáférés is végrehajtható lenne az ismételt sornyitási késleltetés nélkül (2-21. ábra)
2-21. ábra - FMP RAM - Olvasás időzitési diagramja [24] 30
Ezt a megnyitott, azaz a DRAM cellákból az érzékelő erősítőkbe (sense amplifiers) olvasott sort hívjuk lapnak, innen az üzemmód neve. A teljesítményt a page mode azért javítja, mert az érzékelő erősítők így gyakorlatilag gyorsítótárként működnek, kihasználva az adat lokalitását. A tipikus hozzáférés során ugyanis a kért adatok többnyire egymás melletti címeken érhetők el. A korábbi chipekben erre a működésre még nem volt mód, mivel az érzékelő erősítők a chipen kívül voltak. Az FPM RAM-ok egészen a 1990-es évek elejéig népszerűek voltak EDO DRAM (Enhanced Data Out DRAM) – 1990’ Az EDO DRAM az FPM RAM lapolvasó módját tovább finomítja, ezért az irodalomban hyper-page mode DRAM-ként is hivatkoznak rá. A kimeneti meghajtókhoz még néhány tranzisztort adva, egy latch-et hoztak létre az érzékelő erősítők és a DRAM kimenete közt. Ez a puffer lehetővé teszi, hogy a következő oszlophozzáférés művelet már az adatátvitel közben megkezdődhessen (2-22. ábra). A megoldás a sornyitást is gyorsítja, mivel a sor zárása és a bitvezetékek előfeszítése is korábban megkezdődhet. Az EDO 10-15%-al gyorsabb hozzáférést biztosított az FPM-hez képest.
2-22. ábra - EDO RAM - Olvasás időzitési diagramja [24] BEDO RAM (Burst EDO DRAM) – 1990’ A BEDO DRAM egy újabb finomítása a lapolvasásnak. Mivel az oszlophozzáférések többsége sorfolytonos, ezért az Burst („robbanó”) módban csak a kezdő oszlopcímet küldjük el 31
a memóriának, ami egy beépített számláló segítségével önállóan állítja elő a burst hosszának megfelelő számú, rákövetkező oszlopcímeket (2-23. ábra). A következő oszlophozzáférést még a vezérlő váltja ki.
2-23. ábra - BEDO RAM - Olvasás időzitési diagramja [24] Ez a belső címgenerálás gyorsabb, mint a címátvitel, mivel a jel fizikailag kisebb utat kell megtegyen. A gyakorlatban ez az EDO DRAM-hoz képest 30%-al rövidebb kiszolgálási ciklusidőhöz vezetett. Maga a BEDO DRAM széles körben nem terjedt el, de a bevezetett burst módot minden későbbi DRAM típus használja. SDRAM (Synchronous DRAM) – 1990’ Az eddig tárgyalt DRAM típusok mind aszinkron eszközök és fejlődésük fokozatos, apró változtatások sorozatán át zajlott. Az SDRAM szakított evvel a trenddel. Apró fejlesztések helyett éles váltást jelent a DRAM memóriák történetében, s az első modern, általános memóriának számít a Bruce Jacob féle DRAM családfában (2-14. ábra). A régebbi eszközökhöz képest három pontban lehet a SDRAM újdonságait összefoglalni: a memória szinkron eszköz, minden SDRAM több bankkal rendelkezik és maga az eszköz is programozható (pl. állítható a burst hossz). Ehhez természetesen saját, az eszközbe épített vezérlésre volt szükség (2-24. ábra). A vezérlő jelek már nem irányítják közvetlenül a memóriát, hanem egy beépített memóriavezérlőnek adnák parancsokat. A burst módban ezért nem kell minden kiolvasáshoz a vezérlőjelet is változtatni (2-25. ábra). 32
2-24. ábra - SDRAM blokkdiagramja [22]
2-25. ábra - SDRAM - Olvasás időzitési diagramja [24]
33
Az éles váltás miatt az új memóriák kompatibilitása a különféle rendszerekkel, csak a gyártók együttműködése és egy szabvány lefektetése által volt garantálható. A JEDEC (Joint Electron Device Engineering Council) lett az a szervezet, ahol a továbbiakban meghatározták az SDRAM eszközök szabványait. Törekvéseik sikerét jól mutatja, hogy az SDRAM szinte minden ma használatos modern DRAM család (DDRx, GDDRx, MobileRAM) ősének tekinthető. Az SDRAM gyártása a chipbe integrált nagyszámú logikai áramkör miatt ugyan sokkal drágább volt, mint a korábbi aszinkron memóriáké. Ez a költség azonban a memória kapacitásától független, így a nagyobb kapacitású chipnél már nem volt jelentős kiadás. A kiszámíthatóbb időzítések egyúttal sokkal skálázhatóbb memóriává tették, így a típus és változatai nagy órajeleket használtak és a PC-k legelterjedtebb memória fajtái lettek. DDR SDRAM (Dual Data-Rate SDRAM) – 2000’ A DDR SDRAM azt használja ki, hogy az SDRAM topológiáját követő DRAM-okban az adatvezetékek terhelése sokkal kisebb, mint a parancs és címvezetékeké, így azok nagyobb órajelen is üzemelhetnek (2-26. ábra).
2-26. ábra - SDRAM topológia [24]
34
A DDR memóriák a busz órajelük felfutó és lefutó élén is adatátvitelt hajtanak végre (2-27. ábra). Az átvitel szinkronizácíójához a központi órajelhez képest 90°-al eltérő fázisú második órajel szolgál (DQS = Data Strobe Signal). Ezt olvasáskor a beépített-, íráskor pedig a központi memóriavezérlő szolgáltatja.
2-27. ábra - DDR SDRAM - Olvasás időzitési diagramja [23] Az I/O interfészt leszámítva (2-28. ábra) a DDR SDRAM belső felépítése gyakorlatilag megegyezik a megkülönböztetéshez ma SDR-nek (Single Data-Rate) hívott régi SDRAM-éval. A lényeges különbség a működésben van. A nagyobb órajelű átvitel kiszolgálásához a DDR SDRAM párhuzamosan mindig kétszer annyi bitet visz át a bitmezőktől a kimenetekre. Ennek jelölésére a DDR gyártók az „M-bit prefetch” kifejezést használják, ami a DRAM belső adatszélességének és a külső busz adatszélességének arányát fejezi ki.
2-28. ábra - DDR SDRAM I/O interfész [22] 35
DDR2 & DDR3 SDRAM – 2003-2015 (napjainkig) A DDR2-es és DDR3-as DRAM típusok a memória gyártásköltségének jelentős növelése nélkül kívánnak nagyobb teljesítményt nyújtani. Ehhez 4 illetve 8-bitre növelték a prefetch szélességét (2-29. ábra). Evvel párhuzamosan a memóriamodulok buszfrekvenciáját is megduplázták az előző típushoz képest (1-3. ábra).
2-29. ábra - DDR2 SDRAM I/O interfész [22]] A disszipáció csökkentése érdekében egyre kisebb feszültségszinteket használtak. A DDR2 és DDR3 memóriáknál a lezáró ellenállások az alaplapról a chipbe kerültek és programozhatóvá váltak, így javultak a memóriák jel/zaj viszonyai.
36
2.2 Új típusok és technológiák Technológiai és működési elvüket tekintve, három fő ágra bonthatjuk a friss fejlesztéseket:
Hagyományos, töltés alapú eszközök
Más tárolási elvet használó eszközök
Új alapanyagú eszközök (nem szilícium)
Hagyományos, töltés alapú eszközök Ezek az eszközök – akárcsak a DRAM – tárolt töltés formájában hordozzák az adatot. Közös jellemzőjük, hogy a DRAM lassú működését okozó kondenzátort más, gyorsabb alkatrésszel kívánják kiváltani. Nagy előnyük, hogy előállításukhoz a hagyományos félvezető gyártástechnológiákat csak minimális mértékben kell módosítani. TTRAM (Twin Transistor RAM) – 2005-2007 A TTRAM két, SOI-n (Silicone On Insulator) létrehozott sorba kapcsolt tranzisztorból áll (2-30. ábra).
2-30. ábra - TTRAM cella [25] 2-31. ábra - TTRAM írások idődiagramja [25] A második tranzisztor a kondenzátor szerepét tölti be, a lebegő test (floating body) effektust kihasználva. Ez a SOI gyártástechnológia egy káros mellékterméke volt, amikor töltés szorult a tranzisztor és a szigetelő réteg közé (SN). Az eszköz előnyt kovácsol ebből és adattárolásra használja. (2-31. ábra). Alacsony (~101) jelszint-különbsége miatt érzékeny a zavarokra, ami kis csíkszélességnél hatványozottan jelentkezik, s ekkor ellenőrző (például ECC) technológiával kell kiegészíteni. 37
Z-RAM (Zero-capacitor RAM) – 2006-2010 A Z-RAM egy későbbi fejlesztés 2006-ból, az Innovative Silicon cég által [26]. Ebben az eszközben már a cella kiválasztását és az adattárolást is ugyanaz az egy tranzisztor végzi. Akárcsak a TTRAM-nál, a töltést itt is a lebegő-test effektus hordozza (2-32. ábra).
2-32. ábra - 2. generációs Z-RAM [27] A legfőbb probléma ennél az eszköznél is a túl kicsi jelszint különbség volt. Az első generációs chipnél csak csekély jelszint különbséget tudtak elérni. A második generációnál ezt egy nagyságrenddel tudták növelni (2-33. ábra). Az eszköz ígéretes memóriának számított, rendkívül nagy felületi bitsűrűséget biztosíthatott volna, de jó tulajdonságai dacára mégse terjedt el.
2-33. ábra - 2. generációs Z-RAM kiolvásási áram idődiagramja [26]
38
Az AMD és a Hynix a memóriát licenszelte, de sosem használta. (A T-RAM megjelenését követően az AMD inkább ez utóbbi, perspektivikusabb technológiára koncentrált.) 2010 márciusában az Innovative Silicon még belekezdett, hogy a drágább SOI technológia helyett az olcsóbb és elterjedtebb CMOS technológiával is megvalósítsa a chipet, de a fejlesztés félbeszakadt. A cég 2010 júniusában megszűnt, szabadalmait a Micron Technology kapta meg. A lebegő-test memóriáknak a kegyelemdöfést a SOI technológia fejlődése adta meg, ugyanis az egyre kisebb csíkszélességű gyártástechnológiáknál a lebegő-test töltés is egyre csökkent, így az effektust egyre nehezebb használni. T-RAM (Thyristor Random-Access-Memory) – 2004-2015 (napjainkig) A T-RAM a tirisztor természetes NDR (Negative Differential Resistance) karakterisztikáját használja [28] (2-36. ábra). A gyors „programozhatóságot” a kapura kötött parazitív-kon-
2-34. ábra - T-RAM cella [31]
IThyristor (Log Scale)
denzátor teszi lehetővé [29] [30] (2-34. ábra).
On State≈40A/Cell
Off State≈10pA/Cell
VThyristor 2-36. ábra - Thyristor I-V 2-35. ábra - T-RAM idődiagramja [31]
karakterisztikája [29]
Jelszint-különbsége különösen magas (2-35. ábra). Három terminálos eszközként a makrostruktúrája az SRAM-ra hasonlít, de működését tekintve inkább a DRAM-hoz áll közelebb. Az olvasás nem destruktív, és frissíti a cellát, de kellően gyakori hozzáférés nélkül az alacsony jelszintről a cella „felszivárog”, ezért frissíteni is kell [31].
39
A T-RAM nem igényel új gyártástechnológiát, jó paraméterekkel rendelkezik és 2007-ben 130 nm-es SOI technológiával már rövid tesztsorozatot, – több mint 2500 szeletet– készítettek belőle (2-37. ábra). Ezért meglátásom szerint a T-RAM az egyik legígéretesebb új memória technológia.
2-37. ábra – 130 nm-es SOI technológiával készült T-RAM [32] A szabadalom a T-RAM Semiconductors kizárólagos tulajdona. 2009-ben az AMD még arról nyilatkozott, hogy 32 és 22 nm csíkszélességű processzoraiban kívánja gyorsítótárként felhasználni, de ez nem valósult meg. Kutatásom kezdetén, 2013-ban a technológiáról már több éve nem született új IEEE vagy ACM publikáció, így megfelelő áramkör vagy chip modell hiányában nem volt lehetőségem részletesebb vizsgálatára. A dolgozat összeállításakor – 2015 nyarán – már megjelent néhány új IEEE cikk, de a további vizsgálatokhoz megfelelő modell sajnos még mindig nem elérhető. Más tárolási elvet használó eszközök Ezek az eszközök az adatot mind ellenállás értékként tárolják. A változtatható ellenállású alkatrészeik működési elve azonban merőben eltérő. A hagyományos, töltés alapú eszközökhöz képest komoly gyártástechnológiai fejlesztéseket igényelnek, mivel új anyagokat és nanoszerkezeteket használnak. MRAM (Magnetoresistive Random-Access-Memory) – 1995-2015 (napjainkig) Az MRAM elemi cellájában az adatot egy mágneses alagútkontaktus (MTJ = Magnetic Tunneling Junction) mágneses rétegeinek polarizációja hordozza. Az MTJ egy rögzített és egy vékonyabb szabad mágnesezettségű rétegből áll, amelyeket egy néhány nanométer vastag szigetelő réteg, az alagút gát választ el egymástól (2-38. ábra). Az eszköz alagutazó mágneses ellenállása 40
(TMR = Tunnel magnetoresistance) a rétegek mágnesezettségeinek egymáshoz képesti irányától függ (2-39. ábra).
2-38. ábra - MTJ szerkezete
2-39. ábra - MTJ ellenállása [33]]
Az MTJ gyártásánál a kihívást a hagyományos félvezető eszközökhöz képest a szokatlan ferromágneses és szigetelő anyagok alkalmazása, valamint a nanorétegszerkezet kialakítása jelenti. A HKMG (High-K, Metal Gate) MOSFET-ekkel szerzett tapasztalatokkal van átfedés, de az MTJ és egyéb spintronikai eszközök további gyártástechnológiai fejlesztéseket igényelnek. 1995-től kezdve számos cég kezdett MRAM fejlesztésekbe, köztük a Motorola, az IBM és számos kifejezetten a magnetorezisztens memóriafejlesztésre létrejött start-up, mint pl. a Motorola-ból kiváló Freescale, a Crocus Technology vagy nemrég a Freescale-ből kiváló Everspin. Szabadalmak tekintetében a technológia a sok párhuzamos fejlesztés miatt meglehetősen hányattatott sorsú. A szabadalmak számos cég közt oszlanak meg, s a megengedő amerikai szabadalmi rendszer miatt nehéz átlátni vagy bizonyítani, hogy ki mire jogosult. A kereskedelmi forgalomban kapható első MRAM chipeket a Freescale dobta piacra 2004 júniusában. Az elemi cella felépítése szinte megegyezik a DRAM-éval, a kiolvasás is hasonló módon zaj-
2-40. ábra - MRAM cella
lik (2-40. ábra). Írás során a szabad réteg mágnesezettségének beállítása, a régi ferritgyűrűs memóriához hasonlóan, közvetlen indukció útján történik. 41
Az írási mód a további fejlesztésnek gátat szab. 90 nm-es csíkszélesség alatt már nem volt megoldható, hogy az írásra használt mágneses indukció az írt cella környezetében ne befolyásolja a többi cellát is. Emiatt a technológia evvel a megoldással nem miniatürizálható tovább. Azonban beágyazott rendszerekben flash és nvSRAM helyett ma
2-41. ábra - Honeywell sugárzés
is alkalmazzák, mivel az MRAM sokkal ellenállóbb a háttérsugárzással szemben
ellenálló MRAM chip [34]
(2-41. ábra). STT-RAM (Spin-Transfer Torque RAM) – 2005-2015 (napjainkig) Az STT-RAM az MRAM második generációja. A további miniatürizáláshoz új, megbízható írási mechanizmus használatára volt szükség. Ez a spinnyomaték-átvitel (STT = Spin-Transfer Torque) jelenség lett, ami az új memóriatípus nevét is adta. Az erősen mágneses rögzített rétegen áthaladó áram elektronjai spin polarizálttá válnak és ez képes a vékony, szabad réteg mágnesezettségének kilendítésére, irányváltására (2-42. ábra).
2-42. ábra - STT kapcsolás egyszerűsített illusztrációja [14, p. 29] a) RapRp kapcsolás (10), b) RpRap kapcsolás (01)
42
A jobb skálázhatóságon túl az STT írás további előnye, hogy az indukciónál alacsonyabb feszültség és áramerősség értékeket használ. STT szabadalmakat már 2000-ben bejegyezték, de az első kísérleti eszközt csak 2005 decemberében jelentette be a Sony. 2007-től kezdve szinte az összes MRAM fejlesztés az STT mechanizmus alkalmazására koncentrál. Akárcsak a merevlemezeknél, az MRAMnál is kívánatos a felületre merőleges mágnesezettség használata, mert így kisebb felületet foglal el egy-egy bit (2-43. ábra). E mechanizmust még csak kísérleti eszközben
2-43. ábra - Eszközsíkbeli és merőleges anizotrópiájú MTJ-k [14, p. 72]
alkalmazzák. Az első ilyet a Toshiba mutatta be 2007-ben. A kereskedelmi forgalomban is kapható STT-RAM modulokat az Everspin dobta piacra 2013ban. A memória 64 MBbyte-os kapacitású, DDR3 kompatibilis és 90 nm-es csíkszélességű technológiával készült. Az STT-RAM-ok az egyik legintenzívebb fejlesztés alatt álló memóriacsaládnak számítanak. A fent felsorolt cégek mellett, komoly akadémiai érdeklődés is mutatkozik iránta. Rendszeresen születnek új IEEE, ACM cikkek a technológiával kapcsolatban. RRAM (Resistive RAM) és CBRAM (Conductive Bridging RAM)– 1960–2015 (napjainkig) Az RRAM és a CBRAM rendkívül hasonló eszközök. Két elektróda közti szigetelőben vezetés létrehozásával és megszüntetetésével, mint egy kapcsolóval tárolnak adatot. A különbség a két eszköz közt a vezetés létrehozásának mechanizmusában van. Bitenkénti írhatóságuk korlátozott, ezért elsősorban tároló osztályú memóriák fejlesztése zajlik a két alkatrésszel. Azért is oly jellemző rájuk a cross-bar architektúra használata esetükben, mert akkor a cellák területe mindössze 4F2 (F = csíkszélesség). A RRAM-nál egy vékony oxid rétegben hibákat, úgynevezett „oxigén lyukakat” hozunk létre. Az oxigén ionok és lyukak az elektromos mező hatására a félvezetőkben zajló elektron és lyuk folyamatokhoz hasonlóan mozognak. A szálvezetés létrehozásához először nagyobb feszültséggel formázást kell végrehajtani, amit egy uni- vagy bipoláris RESET-tel részben megszüntetünk (2-44. ábra) 43
2-44. ábra - RRAM működése [35] A formázás után kisebb SET, RESET feszültségekkel lehet a az eszközt vezérelni (2-45. ábra)
2-45. ábra – Unipoláris és bipoláris RRAM műveleteinek I-V karakterisztikája A CBRAM-nál a vezetést az egyik elektródáról a szigetelőbe „oldódó” fém ionok hozzák létre (2-46. ábra). Az elektróda megfelelő anyagból (pl. ezüst, réz) kell legyen és nincs szükség formázásra.
2-46. ábra - RRAM és CBRAM vezetési mechanizmusai [13] CBRAM-ból eddig csak egy kereskedelmi termék jelent meg, az Adesto Technologies 1 MBites, EEPROM-ot kiváltani hivatott chipje. RRAM-ból még csak teszt eszközök elérhetők, de a Crossbar-inc 2015-re ígérte a chipenként akár 1 TByte kapacitású memóriájának megjelenését. 44
A rezisztív memóriák elsősorban tároló osztályú eszközök, de jó kapcsolási idejük miatt, ha a bitenkénti írhatóság javul, más alkalmazásuk is perspektívikus. Mivel a tisztán félvezető háttértárak óriási piaci potenciállal rendelkeznek, ezért a rezisztív memóriákat is intenzíven fejlesztik. PCRAM (Phase-Change RAM) – 1960-2015 (napjainkig) A PCRAM az újraírható optikai lemezekben (CD-RW, DVD-RW) is használt kalkogenid üveg fázisváltozását használja adat tárolására. Az anyag kristályos formában alacsony, amorf állapotában magas ellenállással rendelkezik. Akárcsak az RRAM és CBRAM, ez a memória is használhat cross-bar makrostruktúrát, így nagyon nagy felületi bitsűrűség érhető el vele. Az eszközök első generációja az anyag fázisát a megfelelő profilú fűtéssel változtatta (2-47. ábra).
2-47. ábra - PCRAM cella (a) és műveletek hőmérsékletigénye (b) [36] Ez lassú és energia igényes volt, így írási ideje 50–120 ns közé esett és az új perzisztens memóriák közt a legrosszabb, mindössze 109-en írást visel el [37]. Ebből a generációból számos kísérleti, tároló osztályú eszköz készült és a flash memóriát kívánják kiváltani vele. Közülük a legkisebb csíkszélességű eszköz a Samsung által 2012-ben bemutatott, 8 GByte-os, 20 nm-es technológiával készült memória. Ez évben (2015) publikáltak híreket az eszköz egy új generációjáról, ami fűtés helyett az elektromos térerősség segítségével váltja ki a az anyag kristályosodását és amorfizálódását [36, pp. 156-163]. Az új eljárással az írási időt sikerült az SRAM-mal összemérhető pikoszekundumokra csökkenteni. A módszer sokkal kisebb energia igénye a bitenkénti írhatóságra is rendkívül kedvezően hat. Ezek az eszközök még korai kutatási fázisba vannak, így nagyon kevés adat áll rendelkezésre róluk. Mivel elegendő adat csak a régebbi, tároló osztályú változatáról érhető el a memóriának, a további vizsgálatra egyelőre nem volt módom. 45
Új alapanyagú eszközök (nem szilícium) Grafén eszközök A grafén az egyik legfelkapottabb kutatási terület a nanotechnológián belül, s az anyagból már építettek (unipoláris) tranzisztort (2-48. ábra). Ezek az eszközök rendkívül nagy, akár több THz-es órajeleken is képesek működni.
2-48. ábra - Grafén tranzisztor [38]
2-49. ábra - Grafén tranzisztor karakterisztikája [38]
Azonban felhasználásukat nagymértékben korlátozza, hogy a grafénnek nincs tiltott sávja, így a grafén tranzisztorok nem zárnak le. A Riverside Egyetem kutatóinak sikerült először megkerülniük a problémát, azáltal, hogy a grafén természetes NDR karakterisztikáját használták fel [38]. Ezt a tranzisztor két bemenetének (VDS, VTG) párhuzamos szabályozásával érték el (2-49. ábra). A szerzők fölvetették logikai kapuk építésének a lehetőségét is (2-50. ábra). Kutatásukból azonban még korai lenne a grafén széleskörű digitális alkalmazhatóságára következtetni.
2-50. ábra - Lehetséges grafén tranzisztoros XOR kapu [38]
A terület rendkívül új és gyorsan változó, ezért saját szimulációs vizsgálatok még koraiak lennének. 46
3 Szimulációs vizsgálatra használt eszközök (szoftverek) Az új eszközök litográfiás gyártása drága, ezért a szimulációs tervező eszközök használata a fejlesztéseknek is integrált része. A szimuláció jellegétől függően különböző mértékű absztrakció engedhető meg a használt modellben. Elengedhetetlen követelmény, hogy a modell kellő hibapontossággal kövesse a valós eszközökön mért eredményeket. További igény, hogy a modell számításigénye igazodjon a modellezett rendszer komplexitásához. Ez a komplexitás nemcsak a szimuláció, hanem tervezés során is komoly akadályt jelent. A VLSI (Very-Large-Scale Integration) eszközök már akkora összetettséggel rendelkeznek, amit az emberi értelem közvetlen módon nem lát át. Az egymásnak ellentmondó igények hierarchikus modellezéshez vezettek. A rendszertervezési problémákhoz hasonlóan, a hardvertervezésben is „top-down” és „bottom-up” módszerek terjedtek el, melyek közül az előbbi az általános (3-1. ábra).
3-1. ábra - Top-down módszer IC tervezésben [39] A rendszert az ember által még átlátható komplexitással modellezzük. Az IC tervezésben bevett szokás, hogy először a viselkedési modellt készítjük el. Ezt követően strukturális modell készül, és abban az egyes izolált elemeket ismét elemezzük, részekre bontjuk. Ezt addig folytatjuk, amíg alapvető, már önállóan megtervezethető, vagy már megtervezett elemekig nem jutunk. A rendszertervezés másik metodikája a „bottom-up”, vagyis az előbbi módszer fordítottja. Ekkor a kisebb, megtervezett, ismert paraméterekkel rendelkező egységekből lépcsőzetesen építjük fel a rendszert.
47
A két módszer kombinálható. A kísérleti memória tervezésnél ez használatos, mivel a részegységek paraméterei általában kemény korlátot jelentenek. 3.1 Szimulációs és tervező eszközök osztályzása Az IC tervezéshez használt EDA (Electronic Design Automation) eszközöket, modelleket és módszereket szokás az1983-ban Daniel Gajski and Robert Kuhn által alkotott Y-diagram szerint osztályozni (3-2. ábra).
3-2. ábra - Gajski-Kuhn avagy Y-diagram [40] A diagram három tartományra és négy absztrakciós szintre osztja a hardvert leíró modelleket. Fodor Attila és Vörösházi Zsolt, „Beágyazott rendszerek és programozható logikai eszközök” című könyvükben a következőket írják [40]: „A funkcionális tartományban a rendszer viselkedesenek leírasat adjűk meg, de nem foglalkozűnk annak reszleteivel, ahogyan a fűnkciot megvalosítottűk. A fűnkcionalis tartomany a ‘legabsztraktabb’ megkozelítest jelenti, mivel a teljes rendszer viselkedese megadhato az algoritmikűs szinten. A kovetkezo szint a regiszter-atviteli szint (Register-Transfer) vagyis a regiszter-memoria-processzor elemek kozotti transzformaciok megadasa. Az adatot egy regiszter, vagy egy memoria adott cellajanak erteke, míg a transzformaciokat az aritmetikai es logikai operatorok jellemezhetik. Az adat es vezerlesi informacio aramlasa definialhato akar a regiszter transzfer szintű nyelvi leírasokkal (RT Language) is, vagy hatekonyan szemleltethetok gra-
48
fikűs modon az adat-, es vezerlesi- folyam grafok segítsegevel (DFG, CFG). A harmadik szint a hagyomanyos logikai szint, ahol egy-egy fűnkcio megadhato a Boolealgebrai kifejezesek, igazsagtablazatok segítsegevel. Vegűl az űtolso szinten az aramkor műkodeset definialo differencial-egyenleteket kell definialni, amely a halozat feszűltsegeben, es aramaban torteno valtozasokat hivatott leírni. A strukturális tartományban viszont pontosan a rendszer belso elemeinek felepíteset es azok kozott levo osszekotteteseket vizsgaljűk. A strűktűralis tartomany legfelso szintjen kell a fo komponenseket es osszekotteteseit definialni, amelyet processzor-memoria kapcsolatnak (processor-memory switch) is hívnak. A masodik szint itt is a regiszter-atviteli szint, amely egyreszt az adatűtbol (data path), masreszt vezerlesi szakaszokbol (control path, sequence), szekvenciakbol all. A harmadik szint a logikai szint, amelyben a rendszer strűktűraja az alapkapűk es osszekotteteseik segítsegevel epítheto fel. A negyedik, legalacsonyabb szinten a tranzisztorok, mint az aramkori rajzolatok (layout) elemi egysegeit kell tekinteni. Vegűl a geometriai tartomány azt műtatja, ahogyan a rendszert elhelyezzűk, lekepezzűk a rendelkezesre allo fizikai eroforrasok felhasznalasaval (felűlet). Ebben a tartomanyban a legfelso hierarchia szinten, a szilíciűm felűleten elhelyezett vagy űn. „kiterített” VLSI aramkort kell tekinteni (floor-plan). A kovetkezo szintet a szabvanyos alapcellak (Standard Cell) konyvtarai kepezhetik, amelyeket, mint technologiai adatbazist hasznalhatűnk fel a regiszterek, memoriak, vagy akar aritmetikai-logikai egysegek megvalosítasahoz. A harmadik szinten az egyedi tervezesű integralt aramkorok (ASIC) geometriaja egy virtűalis racson adhato meg. Vegűl az űtolso, legalacsonyabb szinten a poligonokat kell megrajzolni, amelyek csoportjai az aramkor egyes maszk-retegeinek feleltethetok meg Manapsag a szamítogeppel segített elektronikűs tervezoi eszkozok segítsegevel egyegy tartomanyon belűl nem kell minden szintet kűlon-kűlon pontosan definialni, elegendo a tervezest a legfelsobb absztrakcios szinteken elvegezni, amelybol az alacsonyabb szintek aűtomatikűsan generalodnak (EDA).”
49
3.2 Szimulációs eszközök áttekintése A számítógép-architektúra tervező közösségében az SRAM és DRAM memória paraméterek (sebesség, teljesítmény, méret) becsléséhez két szoftver használata elterjedt, a Hewlett Packard CACTI [16] programcsaládja és a Marylandi Egyetem Memóriarendszer Kutatócsoportja által fejlesztett DRAMsim [41]. Ennek oka, hogy e két program hagyományos memóriák esetén a logikai szinttől egészen a rendszer szintig lefedi a „bottom up” modellezést (3-3. ábra).
3-3. ábra - Memória szimulációs eszközök [8] (BER = Bit-Error-Ratio, BFR = Base Frequency Range) SPICE (Simulation Program with Integrated Circuit Emphasis) Az alkatrész modellezése többnyire áramkör szinten zajlik. Az analóg áramkörszimulációban a SPICE szoftverek etalonnak számítanak. A SPICE első változata, a Berkeley Egyetem egy korábbi CANCER (Computer Analysis of Nonlinear Circuits, Excluding Radiation) nevű szoftverének az átirata volt, hogy a forráskód szabadon terjeszthető legyen. A szoftvert FORTRAN nyelvű 1.0-ás verziója óta többször újraírták a programot, a 3.0-as verziót már C-ben. Nyílt forráskódja miatt számos modern eszköz ősének tekinthetjük, köztük az EDA szinte minden területét lefedő Virtuoso programcsomag szimulátorát, a Spectre programot a Cadence Design Systems-től, vagy a Texas Instruments cég TINA nevű programját. A program egy kapcsolási rajz csomópontos leírásából – ez a netlist –, valamint az elemek paramétereiből és a komplex elemek modelljeiből dolgozik.
50
Ezek segítségével képes szinte minden analóg elektromos mérés szimulációs megfelelőjének végrehajtására (3-4. ábra).
3-4. ábra - SPICE működési vázlata A SPICE a kapcsolási rajz csomópontos leírásából lineáris egyenletrendszereket készít. Ehhez természetesen a nem lineáris elemeket linearizálni kell az aktuális működési pontban (3-5. ábra). 3-5. ábra - SPICE algoritmusai A szoftver a képes az idő (tranziens) és frekvencia (AC) tartományokban is szimulációt végezni (3-6. ábra). Az olyan komplex alkatrészeknél, mint például egy MOSFET tranzisztor, szükség van egy külső modellre is, amiből a szoftver kinyerheti az aktuális munkaponthoz tartozó paramétereket.
3-6. ábra - SPICE tranziens szimuláció 51
Hierarchikus memória eszköz modell A memória elemi cellájának analóg szimulációs méréséhez szükség van a cella komplex alkatrészeinek a modelljére. Zihan Xu az „STT-RAM kompakt modellezés SPICE-hoz” című cikkében egy hierarchikus modellezési eljárást javasol [8] (3-7. ábra). A szinteken fölfelé haladva egyre nagyobb absztrakciójú modelleket használunk, melyek bemeneti paraméterként az alsóbb szintek mérési eredményeire támaszkodnak. Viselkedési
Strukturális / Áramköri
Alkatrész
Technológia / Anyagok
Véges állapotú automata Helyettesítő áramkör
Kompakt modell
Gyártástechnológiai paraméterek szórása (variations)
Eszköz paraméterek változása az időben (temporal shift)
3-7. ábra - Hierarchikus memória eszköz modell [8] Az ábrán a két elterjedtebb SPICE modell típus sárga színnel van kiemelve. A fekete doboz kompakt modell. Ez vagy saját fizikai szimulációval, vagy adatpontok sokaságára görbeillesztéssel állítja elő a szükséges paramétereket. A helyettesítő áramkör az eszközt más elemi eszközök kapcsolási rajzával közelíti. CACTI (Cache Access and Cycle TIme) A CACTI eredetileg egy cache modellező eszköz volt, amivel a gyorsítótár elérési és ciklusideje számítható. Az évek során képességei bővültek és a memória chip területét, szivárgási áramait, dinamikus hőteljesítményét is megbecsüli, továbbá nemcsak gyorsító-, hanem főtár modellezésére is képessé tették. A CACTI áramkör szintű eszköznek is tekinthető, mivel jelterjedési jellemzőket is szimulál. Más megközelítésben ugyanakkor algoritmus, vagy RTL szintű eszköznek tekinthető. Az egész memóriamodul működését leképezi és bemenő adatként áramkör szintű mérési adatokra támaszkodik. Kimenő adatai már az elvont, rendszer szintű szimulációhoz szükséges paraméterek.
52
DRAMsim A DRAMsim egy memóriarendszer szimulátor. A szoftver ciklus pontossággal modellezi a memória rendszer működését és lehetőség van a trace alapú vizsgálatra. Tehát elemezhető hogy a különféle felhasználási esetekben hogyan teljesít a rendszer. Mivel szinte minden mozzanat modellezett, ezért a memória működésének számos statisztikája készíthető és a különféle memóriaparaméterek hatása a rendszer egészére vizsgálható. A DRAMsim önmagában is futtatható, de többnyire egy teljes rendszerszimulátorhoz kapcsolva szokás használni, amely a hagyományos processzor, szoftver, fájlrendszer, satöbbi szimulációért felel. Ezért a 3-3. ábra a rendszerszinten a GEM5 teljes rendszerszimulátor használatát jelöli. 3.3 Használt szoftverek ismertetése NVMSpice Az NVMSpice egy új SPICE változat, ami a Nanyangi Műszaki Egyetemen, a CMOS Emerging Technology munkacsoportjában készült Hao Yu és Yuhao Wang kutatók által [15]. A szoftverben kiterjesztették a csomópont analízist az egyes elemek belső állapotára is, új elemeket adva a SPICE csomóponti mátrixhoz. Az eszköz másik lényeges újdonsága, hogy számos új perzisztens memória fajta szimulációjához szükséges modellt tartalmazza. Köztük egy MTJ-ét (STT-RAM), egy memrisztorét (RRAM) és egy PCM celláét (PCRAM). NVSim Akárcsak a CACTI, az NVSim is egy statikus memóriamodul modellező eszköz [42]. A Penn State University munkatársai által fejlesztett program képes olyan paraméterek finomhangolására is, amire a CACTI csak az SRAM/DRAM rögzített ipari paramétereit használja. Az érzékelő erősítők a bitmezők helyett a bank szintjén lehetnek. A memória szabadabban partícionálható, többféle – feszültség, áramerősség – érzékelő mechanizmus és bankszervezés is használható. Késletetés mellett más paraméterek szerint is optimalizálhatók az adat pufferek. A cross-bar architektúra is támogatott.
53
54
4 Memória áramkörök gyakorlati vizsgálata 4.1 Céláramkörök kiválasztása A memória-technológiák összehasonlítását cella szinten érdemes elkezdeni, mivel tömb vagy bank szinten már a kapcsolóhálózat is nagymértékben befolyásolja a működést. Cella szinten az írási és olvasási műveletek közti időkülönbség már jelentős lehet, s tipikusan az utóbbi lassabb. Összehasonlító táblázatomban ezért elérési idő helyett a kapcsolási időket írtam. A kapcsolási idő az, ami alatt a cella tároló elemei állapotot váltanak, azaz a 01 és 10 írási műveletek ideje. A két művelet eltérő időigényű is lehet. (4-1. táblázat) Memória
SRAM [43]
DRAM [43]
TTRAM [44]
T-RAM [29] [30]
SST-RAM [33]
RRAM [35]
Kapcsolási idő
0,5 ns
2‒10 ns
2‒10 ns
0,7 ns
0,5–20 ns
5–10 ns
Üzemmód
statikus
dinamikus
dinamikus
dinamikus
perzisztens
perzisztens
Alkarész/ cella
4–6T
1T1C
1T1T
1Tir
1T1R
1T1R
Frissítési idő
-
≤64 ms
64‒ 2000 ms
266‒ 1500 ms
-
-
Írható/bit
∞
∞
∞
∞
>1013
106–1010
Kapactás/ chip
64 KB‒ 16 MB
4‒8 GB
nem ismert
nem ismert
4‒16 MB
1 TB
4-1. táblázat - Memória technológiák összehasonlítása Az összes vizsgált memóriánál kitétel volt, hogy kapcsolási ideje legalább összemérhető legyen a DRAM-mal. Mindegyik új technológia sajátja, hogy lényegesen nagyobb alkatrész-sűrűségűek, mint az SRAM. A kellően kicsi kapcsolási idejű technológiáknál ezért cache-ként alkalmazva jelentős kapacitás növelés érhető el.
55
Jelen kutatás kritériumai szerint a TTRM és utódja, a Z-RAM technológiák kis jelszint különbségük miatt meghaladottak, de egy esetleges energiafogyasztást is vizsgáló kutatásban még jól szerepelhetnek. Egyszerűsége, sűrűsége és sebessége folytán a T-RAM rendkívül ígéretes akár főtárként, akár gyorsítótárként alkalmazzuk. Sajnos a technológiáról nem áll rendelkezésre megfelelő szimulációs modell, így további vizsgálata most nem volt lehetséges. A másik két technológia perzisztens természete folytán további előnyökkel is járhat. Közülük az RRAM olcsóbb, várhatóan nagyobb kapacitású, de csak 106‒1010 írást visel el bitenként, szemben a drágább STT-RAM >1013 értékével, ezért az STT-RAM alkalmasabb DRAM alkalmazásokhoz, míg az RRAM háttértárként sokkal gazdaságosabb. A fenti okokból az STT-RAM volt a legígéretesebb technológia a részletesebb vizsgálatra.
4.2 STT-RAM cella szimulációs mérések NVMSpice-szal Az STT-RAM-on végzett cella méréseim elsősorban a University of Virginia, „The STeTSiMS: STT-RAM Simulation and Modeling System” (STeTSiMS) cikkében közölt alkatrész adatokra támaszkodnak [45]. Ennek oka, hogy a tanulmány rendszerezve és egymáshoz képest normalizálva tartalmazza a mérésekhez szükséges bemeneti paramétereket (4-2. táblázat). Az irodalom jelentős része ezeket csak hiányosan és modellezési sajátosságokból adódóan nem összehasonlítható formában közöl. A tanulmány háromféle eszközről közöl adatokat: egy eszközsíkbeli (in-plane), egy részben síkra merőleges (in-plane PPA »Partial Perpendicular Anisotropy«) és egy síkra merőleges anizotrópiájú MTJ-ről (perpendicular).
hk ms α rl rh Δ
In-plane 500 Oe 1050 emu/cm3 0.02 0.14 kΩ 0.36 kΩ 60
In-plane PPA 220 Oe 808 emu/cm3 0.015 0.57 kΩ 1.14 kΩ 60
Perpendicular 21 kOe 530 emu/cm3 0.005 14 kΩ 23 kΩ 61
4-2. táblázat - CGS STeTSiMS paraméreterek [45].
56
Az eszköz fizikai modellje A SPICE modell bemeneti paramétereinek magyarázatához célszerű az STT-RAM fizikai mo⃗⃗ ) a szakirodalomból ismert 3D Landau– delljét áttekinteni. A szabad réteg mágnesezettségét (𝑀 Lifshitz–Gilbert (LLG) egyenlet írja le [8]: Zeeman
Anizotróp
Csillapítás
STT
⃗⃗ ⃗⃗ 𝑑𝑀 2𝐾 𝛼 𝑑𝑀 𝜇𝐵 𝐼 ⃗⃗ × 𝐻 ⃗ 𝑒𝑓𝑓 − 𝛾 ⃗⃗ ∙ 𝑢 ⃗⃗ × 𝑢 ⃗⃗ × = −𝛾𝜇0 𝑀 (𝑀 ⃗ ) ∙ (𝑀 ⃗ ) + 𝑀 + 𝜂 𝑒𝑎 𝑒𝑎 𝑑𝑡 𝑀𝑠2 𝑀𝑠 𝑑𝑡 𝑒𝑉
(1)
A fenti egyenlet paraméterei a következők: 𝑀𝑠 = mágneses saturáció, eszközjellemző 𝛾 = 1.76 ∙ 1011
𝑟𝑎𝑑 𝑠𝑇
giromágneses állandó
𝐻
𝜇0 = 4𝜋 ∙ 10−7 𝑚 vákuum permeabilitás 𝜇𝐵 ≈ 9.27 ∙
𝐽 10−24 𝑇
= Bohr magneton
⃗ 𝑒𝑓𝑓 = effektív külső mágneses tér 𝐻 𝐾 = anizotrópia konstans, anyagjellemző 𝛼 = csillapítási konstans 𝜂 ≈ 1 = spin-átvitel hatásfoka 𝑒 ≈ 1,6 · 10−19 = elemi töltés
⃗ 𝑒𝑓𝑓 irányába fordítja a mágnesezettség teret (𝑀 ⃗⃗ ). Az STT-RAM ugyan A Zeeman energia (𝑍) a 𝐻 nem használ közvetlen indukciót az írásra, de maga az eszközön átfolyó áram által indukált mágneses tér sem elhanyagolható. Az eszköz stabil mágnesezettsége végett, a szabad mágneses réteg uniaxális anizotrópiájú szokott lenni, azaz a mágnesezettség egy ún. „könnyű” tengely mentén akar állni. Az anizotrópia hatását a mágnesezettségre (𝐴) úgy írjuk le, mintha az anyag könnyen mágnesezhető tengelyének (𝑢 ⃗ 𝑒𝑎 ) irányába hatna egy nyomaték. (Az eszköz síkjába eső, erre merőleges irányt szokás kemény tengelynek is hívni.) ⃗ ) a precesszió során elvesző energiaveszteség hatása. A spin átviteli nyomaték A csillapítás (𝐷 ⃗⃗⃗⃗⃗⃗⃗ ) az elektronok spinjének kölcsönhatása a térrel. (𝑆𝑇𝑇 Mivel a mágnesezettség nagysága nem, csak iránya változik, a fenti egyenletet felírhatjuk polárkordinátákkal is (4-1. ábra, 4-2. ábra).
57
4-1. ábra - In-plane MTJ precessziója kapcsolás során [45] ⃗ 𝐻 𝑧
⃗⃗ = mágnesezettség 𝑀 ⃗ 𝐷
⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ 𝑍+𝐴
⃗⃗⃗⃗⃗⃗⃗ 𝑆𝑇𝑇
𝑥 = anizotróp könnyű tengely 𝑦 = anizotróp kemény tengely 𝑧 = anizotróp síkra merőleges tengely ⃗ = külső mágneses tér 𝐻 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ 𝑍 + 𝐴 = Zeeman + anizotrópia
⃗⃗ 𝑀
⃗ = csillapítás 𝐷
𝜑
𝑦
𝜃
⃗⃗⃗⃗⃗⃗⃗ 𝑆𝑇𝑇 = spin-átviteli nyomaték ⃗⃗ és 𝑥 közti szög 𝜃= 𝑀 ⃗⃗ és 𝑧 közti szög 𝜑=𝑀
𝑥
4-2. ábra - LLG dekompozíció
58
Egyrészt a hasznos munkát végző, θ szöggel jellemzett kapcsoló komponensre 𝑀𝑠
𝑑𝜃 𝑑𝜑 𝜇𝐵 𝐼 = 𝛼𝑀𝑠 +𝜂 𝑑𝑡 𝑑𝑡 𝑒𝑉
(2)
másrészt a φ szöggel jellemzett forgató komponensre bontjuk az LLG egyenletet: 𝑀𝑠
𝑑𝜑 = −𝛾𝜇0 𝑀𝑠 𝐻𝑠𝑖𝑛𝜃 − 2𝛾𝐾𝑠𝑖𝑛𝜃𝑐𝑜𝑠𝜃 𝑑𝑡
(3)
A felbontás azért hasznos, mivel a SPICE szimulációs mérésekhez az eszköz belső állapotát is ismernünk kell, és 𝜃 szög a legjobb paraméter, amiből ezt megállapíthatjuk. Az állapotot azért kell ismerjük, mivel az írás csak akkor sikeres, ha a szabad réteg mágnesezettsége átbillent és stabilizálódott. Az MTJ ellenállása a rákapcsolt feszültségtől és a belső állapotától függ [15]: 𝑅(𝜃) = 𝑅𝑝 +
𝑅𝑎𝑝 − 𝑅𝑝 (1 − 𝑐𝑜𝑠𝜃) 2
𝑅𝑝 (𝑉) =
(4)
𝑅𝑝 0
1 + 𝑐𝑝 𝑉 2 𝑅𝑎𝑝 0
(5)
𝑅𝑎𝑝 (𝑉) = 1 + 𝑐𝑎𝑝 𝑉 2 { Az ellenállást leíró (4)-es és (5)-ös egyenletek paraméterei a következők: 𝑅𝑝 = párhuzamos állapot ellenállása. 𝑅𝑎𝑝 = ellentétes állapot ellenállása. 𝑅𝑝 0 = 𝑅𝑝 értéke 0 V-nál.
𝑐𝑝 = párhuzamos állapot nyossági tényezője.
feszültségará-
𝑐𝑎𝑝 = ellentétes állapot feszültségarányossági tényezője.
𝑅𝑎𝑝 0 = 𝑅𝑎𝑝 értéke 0 V-nál. Az (1)-es, (4)-es, (5)-ös egyenletek paraméterei a SPICE modellben is szerepelnek. Mérések menete Az NVMSpice kompakt fizikai modellt használ, s ténylegesen az LLG egyenletet oldja meg. Mint minden SPICE eszköznél, most is a mérést netlistával írjuk le, amely a komplex alkatrészek modelljeinek és paramétereinek definíciójából és a kapcsolási rajz csomópontos leírásából áll.
59
A mérésekhez használt netlistában egy elemi cella kapcsolási rajzát definiáltam (4-3. ábra). A használt MTJ alkatrész paraméterei következő módon feleltethetők meg a fizikai modell paramétereinek: ms=𝑀𝑠
2𝐾
hk = 𝐻𝑘 = 𝜇
damping = 𝛼
0 𝑀𝑠
rl = 𝑅𝑝 0
vcp = 𝑐𝑝
rh=𝑅𝑎𝑝 0
vcap = 𝑐𝑎𝑝
Mivel az NMVSpice SI mértékegységekkel dolgozik, ezért a STeTSiMS paraméterek át kell alakítani az eredeti CGS mértékegységekről SI megfelelőikre (4-3. táblázat). Mivel a paraméterek közt nem adtak meg 𝑐𝑝 , 𝑐𝑎𝑝 parmétereket, így a mérés során eltekintettem az MTJ ellenállásának feszültségfüggésétől. MTJ hk ms α rl rh Δ
In-plane 40 kA/m 1050 kA/m 0.02 0.14 kΩ 0.36 kΩ 60
In-plane PPA 17,5 kA/m 808 kA/m 0.015 0.57 kΩ 1.14 kΩ 60
Perpendicular 1671 kA/m 530 kA/m 0.005 14 kΩ 23 kΩ 61
4-3. táblázat - SI STeTSiMS paraméreterek A mérések során felfutó állandó feszültségű jelekkel vizsgáltam a cellát. A tranzisztor nyitófeszültsége a mérés kezdete után 5 ns-nál, az MTJ írófeszültség 6 ns-nál vesz fel stabil értéket.
Vdd
*MTJ modell és paraméterek .model nv_perp sttmtj vcp=0 vcap=0 ms=530k hk=1671k rh=23k rl=14k damping=0.005 MTJ
* tranzisztor modell .model nmos nmos level=54 version=4.7.0 * BL feszültség v1 nvdd 0 pwl(0 0 5ns 0 6ns 1.2v) * WL feszültség vcontrol g 0 pwl(0 0 4ns 0 5ns 1.2v) * tranzisztor kapcsolása m1 d g 0 0 nmos l=90n w=2u * MTJ kapcsolása, belső paraméter megadása n1 sttmtj nvdd d nvmmod2 theta0=0.01
4-3. ábra - Netlista és a leírt kapcsolási rajz 60
+
PWM
Mérési eredmények A mérési feltételek miatt, 6 ns-tól kell mérni a diagramon θ-szög kapcsolását és stabilizációját. Diagramot készítettem az MTJ θ-szög állapotáról (4-4. ábra) és az MTJ ellenállásáról (4-5. ábra). A felhintázódó jelek az eszköznél normálisak, mivel egy forgó vektor mozgásának leképezését látjuk (4-1. ábra). A diagramból megállapítom, hogy θ-szög átbillent és stabilizálódott-e, és hogy mekkora idő alatt zajlott le a folyamat.
4-4. ábra - θ-szög változása az NVMSpice mérés során
4-5. ábra - MTJ ellenállás változása az NVMSpice mérés során
61
A mérések során a STeTSiMS mérésektől részben eltérő eredményeket kaptam. A kapcsolás eléréséhez nagymértékben nagyobb író feszültséget kellett használjak. Ezt feltehetően az állandó ellenállás okozta, mivel így a feszültséggel fordítottan arányosan nem esett az ellenállás, ami miatt a szükséges áramerősséget csak jóval nagyobb feszültségek mellett érték el az eszközök.Az in-plane MTJ-nél legalább 2.1V, a perpendicular MTJ-nél egy nagyon magas 8–9V feszültséget kellett alkalmazzak. A kapcsolási feszültség értékek oly nagymértékben tértek el a referencia mérésektől, hogy a három eszköz így már nem összehasonlítható és a használt modell pontossága is kérdésessé vált. Fölvettem a kapcsolatot az NVMSpice egyik fejlesztőjével, Yuhao Wanggal. Ő megerősítette, hogy az NVMSpice ugyan friss eszköz, de a használt diszkrét modell régebbi, így csak az in-plane eszköz szimulációjára alkalmas, ezért mérési eredményeimet csak erről az eszközről közlöm (4-6. ábra). Az átütési feszültség felett (3-4 V) a mérési eredmények már
Kapcsolási idő - τ (ns)
csak elméletiek, hisz a valós tönkremegy.
70 60 50 40 30 20 10 0
63
27 17
2
2,5
3
7,5
5
3,5
1,5
3,5
4
4,5
5
Kapcsoló feszültség (V) 4-6. ábra - In-Plane MTJ kapcsolási ideje az író feszültség függvényében A mért eredmények, még ennél az eszköznél is jelentős mértékben eltértek a STeTSiMS mérési eredményektől. Ennek oka a korábban említett feszültségarányossági tényezők mellett a hőmozgás okozta instabilitás hatásának elhagyása volt. A modellben ez csak θ szög kezdeti értékének növelésével közelíthető és a méréskor még nem találtam olyan összegfüggést, amely kapcsolatot teremtett volna a STeTSiMS Δ eszközjellemző paramétere és a kezdeti θ szög közt.
62
A fenti paraméterek, a kapcsolófeszültség értékét mind lefelé befolyásolják, így figyelembevételükkel várhatóan alacsonyabb feszültségértékek mellett is megtörténik a kapcsolás és az gyorsabban zajlik le.
4.3 Memóriamodul szintű mérések NVSim-el Mivel a cella szintű mérésekkel nem sikerült a STeTSiMS méréseket reprodukálni, ezért szimulált eszköz helyett valós eszközök mérési eredményeit kell majd felhasználni a modul szintű mérésekhez. STT-RAM paraméterek Ehhez a Pittsburghi Egyetem professzora, Yiran Chen „STT-RAM-ok becsült paraméterei 2012-2025” című előadásának adatait használtam [46]. A szerző a jelenleg gyártott kísérleti, teszt és kereskedelmi STT-RAM chipek adatait vetette össze.
4-4. táblázat - Tipikus STT-RAM paraméterek [46] Az NVSim két állományt használ a mérés leírására. Az egyik a memóriacella paramétereit tartalmazó „.cell” fájl, a másik a mért architektúra paramétereit leíró „.cfg” konfigurációs fájl.
63
A mérések során egy kisméretű, 64-bites szószélességű, L1-L2 cache-nek használható gyors és egy nagyobb méretű, 512-bites szószélességű, L3-L3 cache-nek való gyorsítótárat szimuláltam. Cella fájlok Az STT-RAM cella paramétereihez a 2012-es – azaz nem becsült – adatokat vettem alapul. Mivel az adatok síkra merőleges anizotrópiájú eszközről szólnak, a cella arányai (aspectratio) közelítik az 1-et. Az SRAM paramétereihez az NVSim-ben mellékelt cellát használom, amelyek konzervatívnak mondhatók. //CHEN-féle STT-RAM
//NVSimhez mellékelt SRAM
-MemCellType: MRAM
-MemCellType: SRAM
-CellArea (F^2): 15
-CellArea (F^2): 146
-CellAspectRatio: 0.96
-CellAspectRatio: 1.46
-ResistanceOn (ohm): 3000
-ReadMode: voltage
-ResistanceOff (ohm): 6000
-AccessType: CMOS
-ReadMode: current
-AccessCMOSWidth (F): 1.31
-ReadVoltage (V): 1.1
-SRAMCellNMOSWidth (F): 2.08
-MinSenseVoltage (mV): 25
-SRAMCellPMOSWid
-ReadPower (uW): 30 -ResetMode: current -ResetCurrent (uA): 75 -ResetPulse (ns): 20 -ResetEnergy (pJ): 1 -SetMode: current -SetCurrent (uA): 75 -SetPulse (ns): 20 -SetEnergy (pJ): 1 -AccessType: CMOS -VoltageDropAccessDevice (V): 0.15 -AccessCMOSWidth (F): 8
64
Konfigurációs fájlok A vizsgálatokat a 45 nm-es gyártástechnológiával végeztem. Gyors Cache
Nagy kapacitású cache
-DesignTarget: cache
-DesignTarget: cache
-CacheAccessMode: Normal
-CacheAccessMode: Normal
-OptimizationTarget: WriteLatency
-OptimizationTarget: WriteLatency
-EnablePruning: Yes
-EnablePruning: Yes
-ProcessNode: 45
-ProcessNode: 45
//A méréseknél itt
//A méréseknél itt
//álítottam a kapacitást
//álítottam a kapacitást
-Capacity (KB): 32
-Capacity (MB): 1
-WordWidth (bit): 64
-WordWidth (bit): 512
-Associativity (for cache only): 8
-Associativity (for cache only):16
-DeviceRoadmap: HP
-DeviceRoadmap: HP
//-DeviceRoadmap: LSTP
//-DeviceRoadmap: LSTP
//-DeviceRoadmap: LOP
//-DeviceRoadmap: LOP
-LocalWireType: GlobalConservative
-LocalWireType: GlobalConservative
-LocalWireUseLowSwing: No
-LocalWireUseLowSwing: No
-GlobalWireType: GlobalConserva-
-GlobalWireType: GlobalConserva-
tive
tive
-GlobalWireRepeaterType: Repeated-
-GlobalWireRepeaterType: Repeated-
None
None
-GlobalWireUseLowSwing: No
-GlobalWireUseLowSwing: No
-Routing: H-tree
-Routing: H-tree
-InternalSensing: true
-InternalSensing: true
-MemoryCellInputFile: STTRAM.cell
-MemoryCellInputFile: STTRAM.cell
//-MemoryCellInputFile: SRAM.cell
//-MemoryCellInputFile: SRAM.cell
-Temperature (K): 350
-Temperature (K): 350
-BufferDesignOptimization: latency
-BufferDesignOptimization: latency
-UseCactiAssumption: Yes
-UseCactiAssumption: Yes
65
4.4 Összesített mérési eredmények Chip méret A 16 MByte-os SRAM modul kiugró, – feltehetően számítási hibából, vagy extrém optimalizácíóbol fakadó – értékétől eltekintve, a memóriamodulok területe a várakozás szerint alakul. A gyors cache-nél az STT-RAM területe azért tart lépést az SRAM-éval, mert az erősítő fokozatok veszik el a hely nagyját (4-7. ábra). A nagyméretű cache-nél már szétválik a két technológia trendje (4-8. ábra)
Terület (mm2) 4,24
4,5 4 3,5 2,617 2,374
3 2,5
2,08 1,859
2 1,216 1,015
1,5 1
2,889
0,637 0,512
0,5 0 32KB
64KB
128KB STT-RAM
256KB
512KB
SRAM
4-7. ábra - Gyors cache területe
Terület (mm2) 25 20 14,628 15 9,59
9,413
4,795 3,237
3,819
4,115
1MB
2MB
4MB
10 5
10,231 9,549
10,219 5,578
0
STT-RAM
SRAM
8MB
16MB
Expon. (STT-RAM)
4-8. ábra - Nagyméretű cache területe 66
32MB Expon. (SRAM)
Késleltetések A tár méretétől függetlenül jól látszik, hogy az STT-RAM késleltetése elsősorban a cellák kapcsolási idejétől függ (4-9. ábra). Azonban nem szabad figyelmen kívül hagyni, hogy akárcsak az SRAM, az STT-RAM is írási késleltetésre van optimalizálva. A nagyméretű cache diagramján megint látszik, hogy a 16 Mbyte-os SRAM optimalizációja hibás.
Írás / olvasás késleltetés (ns) 32 16 8 4 2 1 0,5 0,25 0,125 0,0625 0,03125
20,168
20,181
20,195
20,21
20,239
1,021
1,042
1,075
1,087
1,135
0,133 0,073
0,167 0,138
0,198 0,138
64KB
128KB
256KB
0,1 0,057
32KB STT-RAM olvasás
SRAM olvasás
STT-RAM írás
0,286 0,207
512KB SRAM írás
4-9. ábra - Gyors cahce késleltetései
Írás / olvasás késleltetés (ns) 32
20,392
20,449
20,449
20,984
20,984
20,449
16 8 2,44
4 2
1,08
1 0,5 0,25
0,343 0,184
1,116
1,102
1,127
1,19
1,281
0,463
0,463
0,473
0,705 0,463
0,237
0,463 0,315
0,214
2MB
4MB
8MB
16MB
32MB
0,125 1MB
STT-RAM olvasás
SRAM olvasás
STT-RAM írás
SRAM írás
4-10. ábra - Nagyméretű cache késleletései
67
Hődisszipáció A hődisszipációnál a 16 Mbyte-os SRAM értékei ismét kiugróak (4-12. ábra), de az egymástól exponenciálisan elváló trendek már a gyors cache-nél is megfigyelhetők (4-11. ábra)
Hődisszipáció (mW) 2500 1964,944 2000 1500
500
903,589
771,685
1000 184,404 45,024
360,312 194,321
219,22
64KB
128KB
403,085
498,381
256KB
512KB
0 32KB STT-RAM
SRAM
Lineáris (STT-RAM)
Expon. (STT-RAM)
Expon. (SRAM)
4-11. ábra - Gyors cache hődisszipációja
Hődisszipáció (mW) 8000 7000
6261,293
6000 5000
3885,41
3890,312
4225,708
4000 3000
1942,705
2000 1000
156,97
315,348
372,672
1MB
2MB
4MB
1054,71
1205,693
8MB
16MB
830,978
0
STT-RAM
SRAM
Expon. (STT-RAM)
32MB Expon. (SRAM)
4-12. ábra - Nagyméretű cache hődisszipációja
68
Hozzáférés energiája Ugyan hődisszipáció tekintetében az STT-RAM sokkal jobb értékekkel rendelkezik, az írási energiára nézve ez a viszony megfordul (4-13. ábra). A nagyméretű cache-re
Írás / olvasás energiája (nJ) 0,35 0,3 0,25 0,2 0,15 0,1 0,05 0 32KB
64KB
STT-RAM olvasás
128KB SRAM olvasás
256KB STT-RAM írás
512KB SRAM írás
4-13. ábra - Gyors cache hozzáférési energiái
Írás / olvasás energiája (nJ) 1,4 1,2 1 0,8 0,6 0,4 0,2 0 1MB
2MB
STT-RAM olvasás
4MB SRAM olvasás
8MB
16MB
STT-RAM írás
32MB SRAM írás
4-14. ábra - Nagyméreű cache hozzáférési energiái
69
4.5 Következtetések A NVSim méréseim nem igazolták a STeTSiMS tanulmány következtetéseit. Ennek oka nagy valószínűséggel épp az volt, hogy kiegyensúlyozott optmializáció helyett az én méréseim során csak és kizárólag az írási késkeltesére nézve optimalizáltam. Az SRAM esetén ez nagyon szélsőséges paraméterekhez vezetett. A nagyméretű cache mérési sorozatban ezt látványosan mutatja a memória hődisszipációjának és a chip méretének robbanásszerű növekedése. E mérési sorozat legérdekesebb része, a 16 MByte-os modulok lokális maximum értékei. Ennek két oka lehet: Ha a kiugró értékeket a memória paraméterek összjátéka okozza akkor az adatok a memória tervezési tér egyenetlenségét mutatják. A másik, sajnos valószínűbb lehetőség, hogy az anomáliát az NVSim számítási algoritmusának instabilitása okozta. A jelenség mindenesetre további vizsgálatra érdemes. Ha eltekintünk a késleltetési időktől és csak a fogyasztást tartjuk szem előtt, akkor érdekes eredményt kapunk: csak a hődisszipációt nézve már gyors cache-nél is érdemes STT-RAMot használni SRAM helyett. Ugyanakkor a hozzáférések energia költsége SRAM-nál szinte végig kisebb. Azaz ha intenzív és tartós memória használatra számítunk, aminek következtében a szivárgási áramok helyett az írás/olvasás energia költsége dominál, akkor mégis az SRAM a jobb választás.
70
5 Összefoglalás 5.1 Célok és elért eredmények Kutatásom célja a modern memória-technológiák áttekintése és összehasonlítása volt a hagyományos memóriákkal, szimulációs eszközök segítségével. Sikerült kialakítani a mérési környezetet mind a cella, mind az modul szintű vizsgálatokhoz. Az áramkör szintű mérések során az általam használt (NVMspice-ba beépített, Mark D. Stiles and Jacques Miltat által kidolgozott) modell [47] és a STeTSiMS bemeneti referencia adatok mérési modellje (Diao és mtsa.) [48] közti rejtett különbségek következtében mérési eredményeim jelentősen eltértek a referencia adatoktól. Ezért valós eszközök mérési eredményeire kellett hagyatkozzak. A memóriamodul szintű mérésekkel szintén más mérési eredményekre vezettek, de ennek oka a teljesen eltérő bemeneti paraméterek voltak. 5.2 Önálló munka összefoglalása Irodalomkutatás segítségével áttekintettem és összehasonlítottam a mai memória technológiákat. Megismerkedtem az NVMSpice és NVSim szimulációs eszközökkel és bennük az STTRAM vizsgálatához szükséges modellek jellegzetességeivel. Az NVMspice programmal áramkör szintű szimulációs méréseket végeztem különböző MTJ paraméterű STT-RAM cellákon. Az NVSim segítségével memóriamodul szintű szimulációs összehasonlító méréseket végeztem az SRAM és STT-RAM gyorsíótárak között. 5.3 Felhasználási lehetőség. A szimulációs környezet segítségével lehetséges az NVMspice és NVSim támogatta új memóriatípusok tervezése, tesztelése, összehasonlítása más memória típusokkal. A mérési eredmények támpontot nyújtanak, hogy adott rendszer gyorsítótárában az SRAM vagy az STT-RAM használata optimálisabb.
71
5.4 Továbbfejlesztési lehetőségek A további kutatás során az architektúrák dinamikus, például trace alapú mérésére érdemes koncentrálni, mert annak során lehetőség van olyan felhasználási területek és követelmények vizsgálatára, amikkel az általános teljesítményre törekvő nagy költségvetésű kutatások nem foglalkoznak. További fontos ok az ez irányú fejlesztés mellett, hogy a rendszerszintű jelenségek csak ilyen környezetben deríthetők fel. Fontos fejlesztés más memória alkatrész modellek vizsgálata és/vagy implementációja. Evvel megbízható, valós eszközökön mért adatokkal a modellt kalibráló és hitelesítő szimulációs mérések végezhetők. A kutatást ki lehet terjeszteni más új memória típusokra. Különösen a ma rohamos fejlődést mutató, a szimulációs eszközök által már támogatott memrisztív fajtákra (RRAM, CBRAM, PRAM). Továbbá cella szinten vizsgálhatók alternatív írási eljárások (például korai írás lezárás). Az azóta megjelent újabb MTJ alapú eszközökre, mint a SOT-RAM [49] [50] vagy az MeRAM [9]. Ezek az eszközök az STT-RAM hiányosságait kívánják orvosolni, sokkal kisebb írási energiával és az ebből következő gyorsabb írással és bitenkénti írhatósággal.
72
6 Irodalomjegyzék
[1]
G. E. Moore, „Cramming More Components onto Integrated Circuits,” Electronics, pp. 114-117, április 1965.
[2]
D. A. Patterson, „The Future of Computer Architecture,” Berkeley EECS Annual Research Symposium (BEARS) 2006, 2006.
[3]
R. H. Dennard, F. Gaensslen, H.-N. Yu, L. Rideout, E. Bassous és A. LeBlanc, „Design of Ion-Implanted MOSFET’s with Very Small Physical Dimensions,” Proceedings of the IEEE, %1. kötet87, %1. szám4, p. 676, április 1999.
[4]
H. Sutter, „The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software,” Dr. Dobb's Journal, %1. kötet30, %1. szám3, p. o.n., március 2005.
[5]
R. Fish, „The future of computers - Part 1: Multicore and the Memory Wall,” EDN Network, 2011.
[6]
D. A. P. John L. Hennessy, „Memory Hierarchy Design,” in Computer Architecture: A Quantative Approach, ötödik szerk., Waltham, MA 02451, USA, Morgan Kaufmann, Elsevie, 2012, p. 73.
[7]
B. Jacob, „The Memory System: You Can't Avoid It, You Can't Ignore It, You Can't Fake It,” Synthesis Lectures on Computer Architecture, %1. kötet4, %1. szám1, pp. 34-39, 2009.
[8]
Z. Xu, K. Sutaria, C. Yang, C. Chakrabarti és Y. Cao, „Compact modeling of STTMTJ for SPICE simulation,” Bucharest, 2013.
[9]
J. Alzate, P. Amiri, P. Upadhyaya, S. Cherepov, J. Zhu, M. Lewis, R. Dorrance, J. Katine, J. Langer, K. Galatsis, D. Markovic, I. Krivorotov és K. Wang, „Voltageinduced switching of nanoscale magnetic tunnel junctions,” in Electron Devices Meeting (IEDM), 2012 IEEE International, San Francisco, CA, 20112.
[10] B. Jacob, „Overview: On Memory Systems and Their Design,” in Memory Systems: Cache, DRAM, Disk, Burlington, MA 01803, USA, Morgan Kaufmann, imprint of Elsevier, 2008, p. 1. [11] S. W. N. D. T. W. Bruce Jacob, „On Memory Systems and Their Design,” in Memory Systems: Cache, DRAM, Disk, 30 Corporate Drive, Suite 400, Burlington, MA 01803, USA, Morgan Kaufmann, imprint of Elsevier, 2008, pp. 1-14. [12] S. Lyle Smith, „Seagate Laptop SSHD 1TB Review,” 9 augusztus 2015. [Online]. Available: http://www.storagereview.com/seagate_laptop_sshd_1tb_review. [Hozzáférés dátuma: 11 augusztus 2015].
73
[13] Y. W. Hao Yu, Design Exploration of Emerging Nano-scale Nonvolatile Memory, New York: Springer Science+Business Media, 2014. [14] X. Wang, Metallic Spintronic Devices, Boca Raton: CRC Press, 2014. [15] H. &. W. Y. Yu, „Chapter 3 - Nonvolatile State Identification and NVM SPICE,” in Design Exploration of Emerging Nano-scale Nonvolatile Memory, New York , Springer Science+Business Media, 2014. [16] S. Wilton és N. Jouppi, „CACTI: an enhanced cache access and cycle time model,” Solid-State Circuits, IEEE Journal of, %1. kötet31, %1. szám5, pp. 677-688, 1996. [17] S. W. N. D. T. W. Bruce Jacob, Memory Systems: Cache, DRAM, Disk, Első szerk., San Francisco, CA, USA: Morgan Kaufmann, 2008. [18] Computer History Museum, „Computer History Museum (CHM) website,” Computer History Museum (CHM), 2015a. [Online]. Available: http://www.computerhistory.org. [Hozzáférés dátuma: 11 08 2015]. [19] G. Moore, Interviewee, The Fairchild Chronicles. [Interjú]. 1995 - 2004. [20] Computer History Museum, „Timeline of Computer History - Memory & Storage,” 2015b. [Online]. Available: http://www.computerhistory.org/timeline2014/memorystorage/. [Hozzáférés dátuma: 10 08 2015]. [21] S. W. N. D. T. W. Bruce Jacob, „(Cache) Implementation Issues,” in Memory Systems: Cache, DRAM, Disk, 30 Corporate Drive, Suite 400, Burlington, MA 01803, USA, Morgan Kaufmann Publishers, imprint of Elsevier, 2008, pp. 257-301. [22] S. N. D. W. Bruce Jacob, „Evolutionary Developments of DRAM Device Architecture,” in Memory systems: cache, DRAM, disk, San Francisco, CA, USA, Morgan-Kaufmann, 2008, pp. 457-479. [23] S. W. N. D. T. W. Bruce Jacob, „Overview of DRAMs,” in Memory Systems: Cache, DRAM, Disk, 30 Corporate Drive, Suite 400, Burlington, MA 01803, USA, Morgan Kaufmann Publishers, imprint of Elsevier, 2008, pp. 311-351. [24] D. T. W. Bruce Jacob, „DRAM: Architectures, Interfaces, and Systems - A Tutorial,” in 29th International Symposium on Computer Architecture (ISCA'02), Anchorage AK, 2002. [25] F. Morishita, H. Noda, T. Gyohten, M. Okamoto, T. Ipposhi, S. Maegawa, K. Dosaka és K. Arimoto, „A capacitorless twin-transistor random access memory (TTRAM) on SOI,” in Custom Integrated Circuits Conference. Proceedings of the IEEE 2005 , 2005. [26] A. S. G. P. I. S. I. David E. Fisch, Szerző, Z-RAM® Ultra-Dense Memory for 90nm and Below. [Performance]. Hot Chips 2006, 2006.
74
[27] S. K. Moore, „Winner: Masters of Memory,” Jan 2007. [Online]. Available: http://spectrum.ieee.org/semiconductors/memory/winner-masters-of-memory. [Hozzáférés dátuma: 11 08 2015]. [28] S.-L. Chen, P. B. Griffin és J. D. Plummer, „Negative Differential Resistance Circuit Design and Memory Applications,” %1. kötet56, %1. szám4, pp. 634,640, April 2009. [29] C. T.-R. S. I. Farid Nemati, „Embedded Volatile Memories,” IEEE International Conference for Computer Aided Design (ICCAD) 2008, 2008. [30] H.-J. Cho, F. Nemati, R. Roy, R. Gupta, K. Yang, M. Ershov, S. Banna, M. Tarabbia, C. Sailing, D. Hayes, A. Mittal és S. Robins, „A novel capacitor-less DRAM cell using Thin Capacitively-Coupled Thyristor (TCCT),” Electron Devices Meeting, 2005. IEDM Technical Digest. IEEE International, 2005. [31] H. Mulaosmanovic, C. Compagnoni, N. Castellani, G. Carnevale, D. Ventrice, P. Fantini, A. Spinelli, A. Lacaita és Benvenuti, „Data regeneration and disturb immunity of T-RAM cells,” in Solid State Device Research Conference (ESSDERC), 2014 44th European, Venice, 2014. [32] T.-R. S. I. Farid Nemati, „Thyristor RAM (T-RAM): A High-Speed High-Density Embedded Memory Technology for Nano-scale CMOS,” in HOT CHIPS 19 (2007), Memorial Auditorium, Stanford University, 2007. [33] K. C. Chun, H. Zhao, J. Harms, T.-H. Kim, J.-P. Wang és C. Kim, „A Scaling Roadmap and Performance Evaluation of In-Plane and Perpendicular MTJ Based STT-MRAMs for High-Density Cache Memory,” %1. kötet48, %1. szám2, pp. 598,610, February 2013. [34] Honeywell, HXNV01600: 16 Megabit Non-Volatile Magneto-Resistive RAM, Honeywell Aerospace, Plymouth, MN 55441: Honeywell International Inc., 2013. [35] D. C. Sekar, Szerző, Resistive RAM: Technology and Market Opportunites. [Performance]. NuPGATM Corporation, 2010. [36] J.-C. L. Pierre Camille Lacaze, „Non-volatile Phase-Change Electronic Memories (PCRAM),” in Non-volatile Memories, London SW19 4EU 27-37 St George’s Road, ISTE Ltd, 2015, pp. 123-163. [37] G. Sun, Exploring Memory Hierarchy Design with Emerging Memory Technologies, Switzerland: Springer International Publishing, 2014, p. 4. [38] S. A. A. G. K. R. K. L. A. A. B. uanxiong Liu, „Graphene-Based Non-Boolean Logic Circuits,” Journal of Applied Physics, %1. kötet114, %1. szám15, pp. 154310-154310-10, 2013. [39] P. András, „IC tervezés 2: Tervezési szabályok, tervező rendszerek,” BME EET, Budapest, 2014.
75
[40] V. Z. Fodor Attila, Beágyazott rendszerek és programozható logikai eszközök, Budapest: Typotex, 2011, pp. 68-69. [41] P. Rosenfeld, E. Cooper-Balis és B. Jacob, „DRAMSim2: A Cycle Accurate Memory System Simulator,” Computer Architecture Letters, %1. kötet10, %1. szám1, pp. 16-19, 2011. [42] X. Dong, C. Xu, Y. Xie és N. Jouppi, „NVSim: A Circuit-Level Performance, Energy, and Area Model for Emerging Nonvolatile Memory,” Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on , %1. kötet31, %1. szám7, pp. 994,1007, July 2012. [43] Intel Corporation, „Performance Analysis Guide for Intel® Core™ i7 Processor and Intel® Xeon™ 5500 processors,” 2008-2009. [44] K. Arimoto, F. Morishita, I. Hayashi, K. Dosaka, H. Shimano és T. Ipposhi, „A High-Density Scalable Twin Transistor RAM (TTRAM) With Verify Control for SOI Platform Memory IPs,” Solid-State Circuits, IEEE Journal of, %1. kötet42, %1. szám11, pp. 2611,2619, Nov. 2007. [45] C. Smullen, A. Nigam, S. Gurumurthi és M. Stan, „The STeTSiMS STT-RAM simulation and modeling system,” Computer-Aided Design (ICCAD), 2011 IEEE/ACM International Conference on, 2001. [46] Y. Chen, „Prediction of STT-RAM Parameters for 2012-2025,” in Cloud·Storage·Big Data Summit és 2nd Asian Nonvolatile Memory Workshop (ANVMW), Shanghai, China, 2013. [47] J. M. Mark D. Stiles, „Spin-Transfer Torque Dynamics,” in Spin Dynamics in Confined Magnetic Structures III, Heidelberg, Heidelberg, DE, Springer Berlin, 2006, pp. 225-308. [48] M. P. A. P. Y. D. D. A. L.-C. W. E. C. Z. Diao, „Spin-transfer switching in MgObased magnetic tunnel junctions,” Journal of Applied Physics, %1. kötet99, %1. szám8, p. 08G510, 2006. [49] S. Fukami, H. Sato, M. Yamanouchi, S. Ikeda, F. Matsukura és H. Ohno, „Advances in spintronics devices for microelectronics — From spin-transfer torque to spinorbit torque,,” in Design Automation Conference (ASP-DAC), Suntec, Singapore, 2014. [50] K. Jabeur, G. Prenat, G. Di Pendina, L. Buda-Prejbeanu, I. Prejbeanu és B. Dieny, „Compact model of a three-terminal MRAM device based on Spin Orbit Torque switching,” in Semiconductor Conference Dresden-Grenoble (ISCDG), 2013 International, Dresden, 2013. [51] W. Thomson, „On the Electro-Dynamic Qualities of Metals:—Effects of Magnetization on the Electric Conductivity of Nickel and of Iron,” Proceedings of the Royal Society of London, %1. kötet8, pp. 546-550, 18 június 1857.
76
[52] C. H. Bajorek, „Magnetoresistive (MR) Heads and the Earliest MR Head - Based Disk Drives: Sawmill and Corsair,” Storage Interest Group, Computer History Museum, Mountain View, CA , november 2014. [Online]. Available: http://www.computerhistory.org/groups/storagesig/media/docs/Magnetoresistive_H eads.pdf. [Hozzáférés dátuma: 13 június 2015]. [53] The Royal Swedish Academy of Sciences, Information Department, „The Discovery of Giant Magnetoresistance,” Nobel Media AB 2014, 9 Octorber 2007. [Online]. Available: http://www.nobelprize.org/nobel_prizes/physics/laureates/2007/advancedphysicsprize2007.pdf. [Hozzáférés dátuma: 10 06 2015]. [54] S. E. P. L. Bakonyi Imre, „Az óriás mágneses ellenállás felfedezése (1988),” Fizikai Szemle, p. 41, február 2008. [55] „The Giant Magnetoresistive Head: A giant leap for IBM Research,” 1996. [Online]. Available: http://www.research.ibm.com/research/gmr.html. [Hozzáférés dátuma: 10 június 2015]. [56] S. László, „Nanomágnesesség,” Magyar Tudomány, p. 286, március 2014.
77
7 Ábrajegyzék 1-1. ábra - Intel Processzor trendek [4] ................................................................................. 5 1-2. ábra - CPU/DRAM átlagos memória kérések/kiszolgálások másodpercenként [6] ...... 6 1-3. ábra - SDRAM generációk órajelei................................................................................ 7 1-4. ábra - Memória szimulációs modellek összehasonlítása [7] .......................................... 8 1-5. ábra - MOSFET trendek és új memória technológiák [8].............................................. 9 1-6. ábra - Northbridge/Southbridge PC architektúra [11] ................................................. 10 1-7. ábra - SSD és hibrid (SSD+HDD) háttértárak átlagos írás késleltetései [12] .............. 12 1-8. ábra - Memóriahierachia .............................................................................................. 13 1-9. ábra – 1 bit tárolását végző SRAM és DRAM elemi cellák. ....................................... 14 2-1. ábra - Az első dedikált félvezető memória…[20] ........................................................ 17 2-2. ábra - SRAM elemi cella inverterekkel ábrázolva ....................................................... 18 2-3. ábra - LL4T és teljes CMOS SRAM cellák [21] ......................................................... 19 2-4. ábra - Szószervezésű SRAM makro- és mikrostruktúrája [21] ................................... 20 2-5. ábra - SRAM elemi cella írás és olvasás idődiagramja [21] ........................................ 20 2-6. ábra - Egyszerű (a) és elődekodólásos dekóder (b) [21] ............................................. 21 2-7. ábra - Módosított bitszervezésű SRAM [21] ............................................................... 22 2-8. ábra - Osztott szóvezetékes dekódolású SRAM [21] ................................................... 23 2-9. ábra - Hierarchikus sordekódolás [21] ......................................................................... 23 2-10. ábra - Aszinkron SRAM blokk és idődiagramaj [21] ................................................ 24 2-11. ábra - Pipelined Burst Mode SRAM blokkdiagramja [21] ........................................ 24 2-12. ábra - Pipelined Burst Mode SRAM idődiagramja [21] ............................................ 25 2-13. ábra - Tokozatlan DRAM chip a régebbi ferritgyűrűs memória rácsán [20] ............. 25 2-14. ábra - A DRAM technológiák családfája [22] ........................................................... 26 2-15. ábra - DRAM makro- és mikrostruktúrája [23] ......................................................... 26 2-16. ábra - Érzékelő erősítő feszültség diagramja [23]...................................................... 27 2-17. ábra - A többfázisú DRAM hozzáférési protokoll [23] ............................................. 28 2-18. ábra - Többites kimenetű DRAM-ok szervezése [23] ............................................... 28 2-19. ábra - FPM DRAM blokkdiagramja [22]................................................................... 29 2-20. ábra - Aszinkron RAM - Olvasás időzitési diagramja [24] ....................................... 30 2-21. ábra - FMP RAM - Olvasás időzitési diagramja [24] ................................................ 30 2-22. ábra - EDO RAM - Olvasás időzitési diagramja [24] ................................................ 31 2-23. ábra - BEDO RAM - Olvasás időzitési diagramja [24] ............................................. 32 2-24. ábra - SDRAM blokkdiagramja [22] ......................................................................... 33 2-25. ábra - SDRAM - Olvasás időzitési diagramja [24] .................................................... 33 2-26. ábra - SDRAM topológia [24] ................................................................................... 34 2-27. ábra - DDR SDRAM - Olvasás időzitési diagramja [23] .......................................... 35 2-28. ábra - DDR SDRAM I/O interfész [22] ..................................................................... 35 2-29. ábra - DDR2 SDRAM I/O interfész [22]].................................................................. 36 2-30. ábra - TTRAM cella [25] ........................................................................................... 37 2-31. ábra - TTRAM írások idődiagramja [25] ................................................................... 37 2-32. ábra - 2. generációs Z-RAM [27] ............................................................................... 38 2-33. ábra - 2. generációs Z-RAM kiolvásási áram idődiagramja [26]............................... 38 2-34. ábra - T-RAM cella [31] ............................................................................................ 39 2-35. ábra - T-RAM idődiagramja [31] ............................................................................... 39 78
2-36. ábra - Thyristor I-V karakterisztikája [29] ................................................................. 39 2-37. ábra – 130 nm-es SOI technológiával készült T-RAM [32] ...................................... 40 2-38. ábra - MTJ szerkezete ................................................................................................ 41 2-39. ábra - MTJ ellenállása [33]] ....................................................................................... 41 2-40. ábra - MRAM cella .................................................................................................... 41 2-41. ábra - Honeywell sugárzés ellenálló MRAM chip [34] ............................................. 42 2-42. ábra - STT kapcsolás egyszerűsített illusztrációja [14, p. 29] .................................... 42 2-43. ábra - Eszközsíkbeli és merőleges anizotrópiájú MTJ-k [14, p. 72] .......................... 43 2-44. ábra - RRAM működése [35] ..................................................................................... 44 2-45. ábra – Unipoláris és bipoláris RRAM műveleteinek I-V karakterisztikája ............... 44 2-46. ábra - RRAM és CBRAM vezetési mechanizmusai [13] ........................................... 44 2-47. ábra - PCRAM cella (a) és műveletek hőmérsékletigénye (b) [36] ........................... 45 2-48. ábra - Grafén tranzisztor [38] ..................................................................................... 46 2-49. ábra - Grafén tranzisztor karakterisztikája [38].......................................................... 46 2-50. ábra - Lehetséges grafén tranzisztoros XOR kapu [38] ............................................. 46 3-1. ábra - Top-down módszer IC tervezésben [39] ............................................................ 47 3-2. ábra - Gajski-Kuhn avagy Y-diagram [40] .................................................................. 48 3-3. ábra - Memória szimulációs eszközök [8].................................................................... 50 3-4. ábra - SPICE működési vázlata .................................................................................... 51 3-5. ábra - SPICE algoritmusai ............................................................................................ 51 3-6. ábra - SPICE tranziens szimuláció ............................................................................... 51 3-7. ábra - Hierarchikus memória eszköz modell [8] .......................................................... 52 4-1. ábra - In-plane MTJ precessziója kapcsolás során [45] ............................................... 58 4-2. ábra - LLG dekompozíció ............................................................................................ 58 4-3. ábra - Netlista és a leírt kapcsolási rajz ........................................................................ 60 4-4. ábra - θ-szög változása az NVMSpice mérés során ..................................................... 61 4-5. ábra - MTJ ellenállás változása az NVMSpice mérés során ........................................ 61 4-6. ábra - In-Plane MTJ kapcsolási ideje az író feszültség függvényében ........................ 62 4-7. ábra - Gyors cache területe ........................................................................................... 66 4-8. ábra - Nagyméretű cache területe ................................................................................. 66 4-9. ábra - Gyors cahce késleltetései ................................................................................... 67 4-10. ábra - Nagyméretű cache késleletései ........................................................................ 67 4-11. ábra - Gyors cache hődisszipációja ............................................................................ 68 4-12. ábra - Nagyméretű cache hődisszipációja .................................................................. 68 4-13. ábra - Gyors cache hozzáférési energiái ..................................................................... 69 4-14. ábra - Nagyméreű cache hozzáférési energiái ............................................................ 69
79
8 Táblázatjegyzék 1-1. táblázat - DRAM és CMOS technológiák ..................................................................... 6 1-2. táblázat - Memóriahierarchia szintek jellemző paraméterei ........................................ 15 4-1. táblázat - Memória technológiák összehasonlítása ...................................................... 55 4-2. táblázat - CGS STeTSiMS paraméreterek [45]. .......................................................... 56 4-3. táblázat - SI STeTSiMS paraméreterek ....................................................................... 60 4-4. táblázat - Tipikus STT-RAM paraméterek [46]........................................................... 63
80
Melléklet Mágnesezettség alapú mágneses ellenállás jelenségek A magnetorezisztancia, avagy mágneses ellenállás, az az anyagjellemző, ami az anyag elektromos ellenállásának változását írja le külső mágneses mező hatására. A jelenséget William Thomson (Lord Kelvin) fedezte fel 1856-ban, de ő az ellenállást még csak nagyon csekély ~5%-os mértékben tudta csökkenteni [51]. Ilyen mágneses ellenállás fölléphet pusztán a külső mágneses tér hatására is, de az itt tárgyalt jelenségek az anyag(ok) mágnesezettsége révén jönnek létre.
1. Anizotrop mágneses ellenállás (AMR = Anisotropic Magnetic Resistance) Már Thomson kísérlete is e jelenségre volt példa: „Ugy talaltam, hogy a magneses eronek kitett vas, a magnesesseg vonalainak iranyaban ellenallasa novekedesere tesz szert az elektromossag vezetesevel szemben, míg a magneses vonalakra harant ellenallasa csokkenesere tesz szert az elektromos aram vezetesevel szemben” – William Thomson [51] Az anizotrop mágneses ellenállás az anyag mágnesezettsége és az átfolyó áram iránya által bezárt szögtől függ. Ma már tudjuk, hogy a jelenség oka a mágnesezettség és a spin-pálya csatolás együttes hatása. Pontos magyarázata anyagonként eltérő lehet. A legtöbb anyagban a hatás eredménye, hogy az anyag elektromos ellenállása maximális, amikor a mágnesezettség párhuzamos az áram irányával, és minimális mikor a kettő merőleges. Az AMR jelenséget a számítástechnikában az IBM használta először föl, a merevlemezek olvasófejében [45]. A korábbi író-olvasó indukciós fejekkel ellentétben, az új AMR szenzoros olvasófejek jel erőssége nem függött a lemez forgási sebességétől és sokkal kisebb mágneses fluxust is képesek voltak érzékelni, lehetővé téve a nagyobb felületi adatsűrűséget.
2. Óriás mágneses ellenállás (GMR = Giant Magneto Resistance) A 80’-as évek végéig a szakmai konszenzus nem tartotta lehetségesnek a mágneses ellenállás elvén működő szenzorok érzékenységének jelentős növelését [46]. Ezért nagy meglepetés volt, amikor 1988-ban egymástól két független kutató csoport is olyan anyagokat fedezett fel, melyek nagyon nagy mágneses ellenállással rendelkeznek.
81
A jelenséget ma óriás mágneses ellenállásnak (GMR) hívjuk. A német Peter Grünberg jülichi és a francia Albert Fert orsayi kutatócsoportja nanoskálájú FM/NM típusú Fe/Cr rétegszerkezeteket vizsgált. Felfedezésükért 2007-ben megosztva fizika Nobel-díjat kaptak. Ahogy arra elnevezése is utal, a GMR hatás jelentősen erősebb az ARM-nél, bizonyos esetekben akár egy egész nagyságrenddel. Félrevezető módon a GMR jelenség alatt nem magát a létrehozott nagyon nagy mágneses ellenállás változást, hanem az azt létrehozó, a mágneses nanoszerkezetben végbemenő spinfüggő elektronszórást értjük [47]. Akárcsak az AMR jelenségnél, a GMR szenzoros olvasófejet is az IBM alkalmazott először 1991-ben. Az IBM kutatócsoportját vezető Stuart Parkin és munkatársai nem csak a GMR gazdaságosabb gyártását lehetővé tevő technológiát dolgozták ki, hanem a spin-szelep szerkezet felfedezésével a GMR hatást is sikerült sokszorosára növelni [48]. A technológiát alkalmazó merevlemez olvasófejek 1997-ben váltak elérhetővé a piacon. A spinszelepet a nanomágnesesség egyik hazai kutatója, Szunyogh László a következőképp jellemezte egy cikkében [49]: „A spinszelep lelke egy rogzített magneses orientaciojű es egy, a kűlso magneses ter altal iranyított, szabad ferromagneses (FM) reteg, amelyeket egy nemmagneses (spacer) reteg valaszt el. A ket FM-reteg egyiranyű vagy ellentetes magneses orientacioja eseten az eszkoz elektromos ellenallasa jelentosen megvaltozik, tobbnyire az egyiranyű esetben kisebb… Itt csűpan azt említjűk meg, hogy a spacer retegnek elegendoen (nehany nm) vekonynak kell lennie ahhoz, hogy az elektronok spinje az athaladas soran ne fordűljon at.”
3. Alagutazó mágneses ellenállás (TMR) Ha a spinszelep spacer rétegében fém helyett szigetelőt alkalmazunk, s az elég vékony, hogy az elektronok alagút effektus segítségével átjussanak rajta, mágneses alagútkontaktushoz (MTJ) jutunk. Ebben egy a GMR-rel analóg jelenség, az alagutazó mágneses ellenállás lép fel. Szunyogh így jellemzi az eszközcsaládot: „A magneses alagűtkontaktűsok (magnetic tunneling junction – MTJ) nagyobb erzekenysegűek es kevesbe homersekletfűggoek, mint a GMR-spinszelepek, ezert kitűnoen alkalmazhatok nem felejto, veletlen hozzaferesű memoriakent”
82
A nagyobb mágneses érzékenységen túl az MTJ másik nagy haszna, hogy megfelelő szigetelő vastagság választása mellett lehetővé teszi a spinnyomaték-átvitelt. Ekkor az egyfajta spinbeállású elektronok árama (spin-polarizált áram) egy FM-rétegen áthaladva a réteg mágnesezettségét átfordíthatja.
83