Динамичка меморија со случаен пристап

Од Википедија — слободната енциклопедија
(Пренасочено од ДРАМ)
Прејди на: содржини, барај

Динамичка меморија со случаен пристап (ДРАМ) (англиски: Digital Random Access Memory (DRAM)) — вид меморија со случаен пристап која го чува секој бит на податоци во посебен кондензатор во рамките на едно интегрирано коло. Кондензаторот може да биде полн или празен. Овие две состојби се земаат да ги претставуваат двете вредности на битот, вообичаено наречени 0 и 1. Бидејќи дури и неспроводливите транзистори секогаш пропуштаат мала количина, кондензаторите полека се празнат и информациите почнуваат да се губат освен ако полнежот на кондензаторите не се освежува периодично. Поради ова барање за освежување, се работи за динамичка меморија што е спротивно на статичка меморија со случаен пристап (СРАМ) и други статички типови на мемории. За разлика од флеш-меморијата, ДРАМ е непостојана меморија бидејќи таа брзо ги губи своите податоци кога ќе се исклучи од напојување.

Фотографија на ДРАМ интегрираното коло Micron Technology MT4C1024. Капацитет од 1 мегабит.

ДРАМ широко се користи во дигиталната електроника каде што се потребни ниска цена и меморија со голем капацитет. Една од најголемите примени на ДРАМ е нејзино користење како главна меморија (наречена РАМ) во современите компјутери и како главна меморија во компонентите што се користат во овие компјутери како што се графичките картички (каде главната меморија се нарекува графичка меморија). Спротивно на тоа СРАМ што е побрза и поскапа отколку ДРАМ, обично се користи каде што брзината е поважна од трошоците, како што е случај со кеш-меморијата во процесорите.

Предноста на ДРАМ е во нејзината структурна едноставност - потребни се само еден транзистор и кондензатор по бит, во споредба со четири или шест транзистори во СРАМ. Ова му овозможува на ДРАМ да постигне многу висока густина. Транзисторите и кондензаторите што се користат, бидејќи се многу мали може да се спакуваат милијарди на еден мемориски чип. Поради динамичкиот карактер на неговите мемориски клетки ДРАМ троши релативно големи количини на енергија, со различни начини за управување со потрошувачката енергија[1].

Историја[уреди | уреди извор]

Во криптографската машина со кодно име „Аквариус“ користена во Блечли Парк (Bletchley Park) за време на Втората светска војна била инкорпорирана ожичена динамичка меморија. Податоците биле читани од хартиена лента и карактерите биле меморирани во динамичката меморија. Меморијата користела голем склад на кондензатори кои биле полни или празни. Полн кондензатор претставувал еден (1), а празен кондензатор нула(0)[2].

Шематски приказ на пресек на оригиналната NMOS ДРАМ ќелија составена од еден транзистор и еден кондензатор. Патент од 1968 година.

Во 1964 година, Арнолд Фарбер (Arnold Farber) и Јуџин Шлиг (Eugene Schlig), работејќи за IBM создале ожичени мемориски ќелии со користење флип-флоп (составен од транзистор и диода со ефект на тунел). Тие го замениле флип-флопот со два транзистори и два отпорници добивајќи конфигурација која станала позната како Фарбер-Шлигова ќелија. Во 1965 година Бенџамин Агуста (Benjamin Agusta) и неговиот тим од IBM, создале 16-битен силиконски мемориски чип на база на Фарбер-Шлиговата ќелија, со 80 транзистори, 64 отпорници и 4 диоди. Во 1966 година, била измислена динамичката меморија со случаен пристап од страна на д-р Роберт Денард (Robert Dennard) во истражувачкиот центар Томас Џ. Вотсон во IBM. Нему, во 1968 година во САД му бил доделен патентот број 3.387.386.

Во 1969 година Ханивел (Honeywell) побарал од Интел да направи ДРАМ со користење на ќелија со три транзистори кои тие ја развиле. Истото било остварено како Интел 1102 во почетокот на 1970 година[3]. Меѓутоа, 1102 имал многу проблеми поради што Интел почнале во тајност, за да избегнат конфликт со Ханивел, да работат на нивен сопствен подобрен дизајн. Овој дизајн станал првиот комерцијално достапен ДРАМ, Интел 1103, во октомври 1970 година. 1103 бил дизајниран од страна на Џоел Карп и реализиран од Пат Ерхарт[4].

Првиот ДРАМ со мултиплексиран ред и колона од адресни редови бил Mostek MK4096 Kbit, дизајниран од страна на Роберт Пробстинг (Robert Proebsting), воведен во 1973 година. Оваа адресна шема ги користела истите адресни пинови за да се добие ниска половина и висока половина на адреса од референцираните мемориски ќелии, префрлени помеѓу двете половини на наизменични циклуси на магистралата. Ова било радикално напредување, ефикасно преполовување на бројот на адресни линии кој се барал, што ќе им овозможи да се вклопат во пакети со помалку пинови, со предност во однос на цената која растела со секој чекор на пораст на меморијата. MK4096 се покажал како многу стабилен дизајн за апликациите на клиентите. 16-килобитниот ДРАМ Mostek MK4116 кој бил воведен во 1976 година, постигнал удел од повеќе од 75% од светскиот пазар на ДРАМ. Но, иако густината се зголемила на 64 килобита во почетокот на 1980 година Mostek бил претекнат од страна на јапонските производители на ДРАМ со повисок квалитет, со користење на исти мултиплексирани шеми по пониски цени на трошоци. Ова создало конфликт меѓу Јапонија и САД.

Принципи на работа[уреди | уреди извор]

Принципите на работа за читање едноставна 4х4 ДРАМ-низа.

ДРАМ обично се наредени во правоаголна низа од ќелии за складирање, составена од еден кондензатор и еден транзистор по бит податоци. Сликата покажува едноставен пример со мобилна матрица со четири на четири ќелии.

Долгите хоризонтални линии кои го поврзуваат секој ред се познати како збор-линии. Секоја колона на ќелиите е составена од две бит-линии, секоја поврзана со секоја друга ќелија за складирање во колоната (сликата не го вклучува овој важен детаљ). Тие се познати како "+" и "-" бит-линии.

= Операции за читање на податоци од ќелија за складирање на ДРАМ[уреди | уреди извор]

1. Детекторските засилувачи се исклучени. (Во модерната меморија на сметачот, детекторскиот засилувач е еден од елементите кои ги формираат колата на полуспроводничкиот чип (интегрирано коло).

2. Бит-линиите се наполнети до точно еднакви напони кои се помеѓу високите и ниските логички нивоа. Бит-линиите се физички симетрични за да се задржи еднаква капацитивност, па со тоа во тоа време и нивните напони еднакви.

3. Колото за претполнење е исклучено. Бидејќи бит-линиите се релативно долги, тие имаат доволно капацитет да го одржат однапред наполнетиот напон за кратко време. Ова е пример за динамичка логика.

4.Потоа посакуваната збор-линија на редот се зголемува за да се поврзе со кондензаторот на ќелијата за складирање. Ова предизвикува транзисторот да спроведува, пренесувајќи го полнежот од складишните ќелии до поврзаните бит-линии (доколку складираната вредност е 1) или од поврзаната бит-линија до складишната ќелија (доколку складираната вредност е 0). Бидејќи капацитетот на бит-линијата е обично многу повисок од капацитетот на складишните ќелии, напонот на бит-линијата се зголемува многу малку ако складишната ќелија е празна или се зголемува многу малку ако ќелијата за складирање е полна (0,54 и 0,45 V во двата случаи).

5. Детекторските засилувачи сега се поврзани со бит-линиите во парови. Позитивна повратна врска настанува меѓу вкрстено поврзаните инвертори, на тој начин се засилува разликата на напоните меѓу парните и непарните редови на бит-линии на одредена колона сè додека една бит-линија е целосно на најнизок напон, а другата е на максимално висок напон. Откако тоа ќе се случи редот е „отворен“ (податокот од таа ќелија е достапен).

6. Сите ќелии за складирање на отворен ред се детектираат истовремено и детекторските засилувачи се флип-флопирани. Адресната колона потоа избира флип-флоп бит да се поврзе со надворешната магистрала на податоци. Читање од различни колони во ист ред може да се изврши без одлагање на отворање на редот затоа што за отворен ред сите податоци веќе биле детектирани и флип-флопирани.

7. За време на читањето на колоните од отворениот ред, активно протекува струја назад на бит-линиите од излезот на детекторските засилувачи и ги полни складишните клетки. Ова го засилува (т.е. „освежува“) полнењето на складишната ќелија со зголемување на напонот во кондензаторот за складирање ако на почетокот бил наполнет, или го држи ненаполнет ако бил празен. Треба да се има на ум дека заради должината на бит-линиите, постои значително доцнење на пропагацијата на полнежот назад во кондензаторот на ќелијата. Ова бара значително време за детекторскиот засилувач и така се преклопува со една или повеќе колони за читање.

8. Кога ќе заврши со читање на сите колони во тековниот отворен ред, збор-линијата се исклучува за да го дисконектира кондензаторите на складишните ќелии. Детекторскиот засилувач е исклучен и бит-линиите повторно се претполнат.

Впишување во меморијата[уреди | уреди извор]

За складирање на податоци, редот е отворен и даден детекторски засилувач на колона времено е принудно доведен во саканата состојба на висок или низок напон, со што се предизвикува бит-линијата да го полни или празни кондензаторот на складишната ќелија на саканата вредност. Заради конфигурацијата на позитивна повратна врска на детекторскиот засилувач, бит-линијата ќе има стабилен напон дури и откако принудувачкиот напон ќе биде отстранет. За време на впишувањето во одредена ќелија, сите колони во еден ред истовремено се детектираат исто како при читањето, па иако се менува состојбата само на еден кондензатор на складишна ќелија, цел ред се освежува (повторно е впишан) како што е прикажано на сликата десно.

Впишување во ДРАМ-ќелија

Брзина на освежување[уреди | уреди извор]

Вообичаено произведувачот прецизира дека секој ред мора да ги освежи своите кондензатори на складишни ќелии на секои 64 ms или помалку. Логиката на освежување е обезбедена во ДРАМ контролерот кој го автоматизира периодичното освежување, т.е. тоа не мора да го извршува софтвер или друг хардвер. Заради ова, логиката на колото на контролерот е комплицирана, но таа маана е оправдана со фактот дека ДРАМ-от е многу поевтини по складишна ќелија и самата складишна ќелија е едноставна. ДРАМ-от има многу поголем капацитет по единица површина отколку СРАМ-от.

Некои системи ги освежуваат редовите во рафални активности кои ги вклучуваат сите редови на секои 64 ms. Други системи освежуваат еден ред во еден момент кој се распоредува во интервалот од 64 ms. На пример, систем со 8192 реда би изискувал распоредено освежување на еден ред на секои 7,5 µs, што 64 ms поделено на 8192 реда. Неколку системи кои работат во реално време освежувањето го вршат во интервали определени од надворешна временска функција која управува со работата на останатиот дел од системот, како што е примерот со вертикалното освежување кај видео сигналите кое се јавува на секои 10-20 ms. Сите методи бараат некој вид бројач да следи кој следен ред треба да се освежи. Поголемиот број ДРАМ-чипови вклучува бројач. Постарите видови барале екстерна логика на освежување.

Под одредени услови, поголемиот дел податоци во ДРАМ-от може да се повратат дури истиот да не бил освежен и неколку минути[5].

ДРАМ-ќелии[уреди | уреди извор]

Секој бит податоци во ДРАМ-от се чува како позитивен или негативен електричен полнеж во капацитивна структура. Структурата која го обезбедува капацитетот, како и транзисторите кои го контролираат пристапот до него се вика ДРАМ-ќелија. Тие се основните градбени блокови на ДРАМ-низите. Постојат повеќе варијанти на ДРАМ мемориски ќелии, но најчесто користена модерна варијанта е ќелијата од еден транзистор и еден кондензатор. Транзистор се користи за да се доведе капацитет во текот на впишувањето и за исполнувањето на кондензаторот за време кога тој се отчитува. Пристапниот транзистор е дизајниран да ја зголеми движечката сила и да се минимизира истекувањето транзистор-транзистор. Кондензаторот има и два терминали, од кои еден е поврзан со пристапен транзистор, а другиот со која било област или VCC/2. Во модерниот ДРАМ последниот случај е почест, бидејќи тоа им овозможува побрзо работење. Во модерниот ДРАМ, напон од +VCC/2 низ кондензатор е потребно да се складира логичко еден. И напон од -VCC/2 низ кондензатор за да се складира логичка нула. Електричниот полнеж кој се чува во кондензаторот се мери во кулони. За логичко еден вредноста е:

Q=Vcc / 2 * C, каде Q е количеството електричество во кулони, а C е капацитетот во фаради. А логичката нула има полнеж: Q = -Vcc / 2 * C

Читање или впишување на логичко еден (1) бара зборот-линија да биде управуван од напон поголем од збирот на Vcc и прагот на пристап на пристапниот транзистор. Овој напон се нарекува Vcc наполнет (pumped). Времето потребно за празнење на кондензаторот зависи од тоа каква логичка вредност се чува во кондензаторот. Ако кондензаторот содржи логичко еден (1) почнува да се ослободува напонот во терминалот на транзисторот е над Vccp. Ако кондензаторот содржи логичка нула(0), тој почнува да се ослободува кога напонот е над Vth.

Наводи[уреди | уреди извор]

  1. S. Mittal, "A Survey of Architectural Techniques For DRAM Power Management", IJHPSA, 4(2), 110-119, 2012.
  2. Copeland B. Jack, and others (2006) Colossus: The Secrets of Bletchley Park's Codebreaking Computers Oxford: Oxford University Press, p301.
  3. http://inventors.about.com/library/weekly/aa100898.htm
  4. http://archive.computerhistory.org/resources/still-image/PENDING/X3665.2007/Semi_SIG/Notes%20from%20interview%20with%20John%20Reed.pdf
  5. Lest We Remember: Cold Boot Attacks on Encryption Keys, Halderman et al, USENIX Security 2008.

Надворешни врски[уреди | уреди извор]