Анатомия на оперативната памет – втора част

Оригиналът е на Nick Evanson, публикувал интересен материал, в който на съвсем достъпен език показва работата на DRAM паметта.

2
2123

В първата част разгледахме основните моменти в конструкцията и работата на оперативната памет. Продължаваме с особеностите на паметите за видеокартите, ще се спрем върху скоростта на тяхната работа, таймингите и някои други особености.

В чиповете памет, предназначени за използване в графичните карти, се използват повече банки – обикновено 16 или 32, понеже за 3D рендирането е необходим едновременен достъп до по-голям обем от данни.

Множеството чипове памет, които „запълват“ докрай шината на контролера на паметта, се наричат ранг и въпреки че към контролера може да бъде включен повече от един ранг, той може наведнъж да получи данните само от единия ранг, понеже ранговете използват една и съща шина на данни. Всъщност това не е проблем, понеже докато единият ранг се занимава с отговора на подадената му преди това команда, на другият ранг може да бъде подаден нов комплект команди и данни.

DIMM плочките могат да имат по няколко ранга и това е особено полезно, когато ви е необходимо голямо количество оперативна памет, но на дънната платка има малко RAM слотове.

Така наречените RAM модули с два (dual) или четири (quad) могат да осигурят по-висока производителност в сравнение с плочките със само един ранг, но увеличаването броя на ранговете бързо покачва натоварването на схемата. Повечето десктоп компютри могат да се справят само с до два ранга на контролер. Ако компютърната система има нужда от повече рангове, то е под-добре да се използват DIMM модули с буфериране. Тези RAM плочки имат допълнителен чип, който намалява натоварването на системата чрез запазване на командите и данните в продължение на няколко цикъла преди да ги предаде по-нататък.

Няколко модули памети Nanya и един буферен чип – това е класическата сървърна RAM

Не всички рангове са с размерност от 64 бита. Използваните в сървърите и работните станции DIMM често са с размерност 72 бита – тоест, те имат допълнителен DRAM модул. Този допълнителен чип не се използва за повишаване капацитета или производителността, а за проверка за наличието и за отстраняването на грешките (error checking and correcting, ECC).

Шината на данните в тази памет си е 64-битова, но надеждността на съхранението на данните значително се повишава. Използването на буфери и ECC оказва незначително влияние на общата производителност, но силно повишава надеждността, а едновременно и цената на тези модули памет.

Стремежът за постигане на възможно най-висока скорост

Всички DRAM имат централен тактов входно-изходен сигнал (I/O, input/output) – напрежение, което непрекъснато се променя между две точно определени нива. Тази тактова честота се използва за задаване на ред за всичко, което става в чиповете памет и в шината на паметта.

Ако бихме могли да се върнем назад в 1993 година, то бихме си купили SDRAM (synchronous, синхронна DRAM), при която абсолютно всички процеси следват периода на превключване на тактовия сигнал от низко към високо ниво (предния фронт). Това става много бързо и този подход осигурява изключително точен начин за определяне времето на събитията. В тези времена SDRAM имаха тактова честота от 66 до 133 MHz, като през всеки такт на сигнала, в DRAM можеше да се подаде само една команда. Съответно, а този промеждутък от време чипът можеше да подаде 8 бита данни.

Бързото развитие на SDRAM, водеща сила в което бе Samsung, доведе през 1998 година до създаването на нов тип SDRAM памет. При нея данните се синхронизират както по фронта, така и по спада на тактовия сигнал – тоест, за всеки такт данните могат да бъдат два пъти подадени към DRAM и обратното.

Как се нарича тази възхитителна нова технология? Double data rate synchronous dynamic random access memory (синхронна динамична памет с произволен достъп и двойна скорост за обмен на данните). Съкратено това е DDR-SDRAM или наложилото се по-кратко DDR.

DDR паметта бързо стана стандарт (заради това първоначалното име SDRAM бе преименувано на single data rate SDRAM, SDR-DRAM) и през следващите 20 години бе неотменима част от всички компютърни системи.

Прогресът в тези технологии даде възможност за усъвършенстването на тази памет, благодарение на което през 2003 година се появи DDR2, през 2007 година – DDR 3 и през 2012 година DDR4 паметта. Всяка нова версия осигурява повишаване на производителността чрез увеличаването на тактовата честота чрез значителни подобрения в схемите за управление на входно-изходните сигнали. Допълнително бе намалена консумацията на електрическа енергия.

DDR2 направи промяна, която се използва и до днес – генераторът на входно-изходните сигнали се превърна в отделна система, работата на която се определя чрез синхронизиращи сигнали. По този начин скоростта на работа се увеличи двойно. Подходът е аналогичен на този в централните процесори, които при тактов сигнал около 100 MHz, вътрешните синхронизиращи сигнали са с 30-40 пъти по-висока честота.

DDR3 и DDR4 направиха крачка напред, като увеличиха честотата на входно-изходните сигнали четири пъти, но във всичките тези типове памет за подаване и получаване на информацията се използват фронта и спада на входно-изходния сигнал – тоест, имаме удвоена честота за обмен на данните.

Самите чипове памет въобще не работят с подобни огромни скорости – всъщност, те се размърдват доста бавно. Честотата на обмен на данни, която достига милиони транзакции в секунда (millions of transfers per second, MT/s)–в съвременните DRAM е толкова висока благодарение използването на няколко банки. Ако всяка RAM плочка имаше само една банка, всичко щеше да бъде твърде бавно.

Важно е да отбележим, че всяка нова версия на DRAM няма обратна съвместимост с предишните. Това означава, че всеки тип RAM плочка има различен брой контакти, конектори и прорез, за да може потребителят да постави DDR4 в например DDR-SDRAM слот.

Отгоре надолу: DDR-SDRAM, DDR2, DDR3, DDR4

DRAM за графичните карти първоначално се наричаха SGRAM (synchronous graphics, синхронна графична RAM). Този тип RAM също бе усъвършенстван и днес за по-разбираемо тя носи името GDDR. Към днешен ден вече е достигната версия 6, а за обмена на данни се използва схема за четворно увеличаване на тактовата честота – тоест за един цикъл стават 4 обмена.

DRAM type Typical chip clock I/O clock Data transfer rate
GDDR 250 MHz 250 MHz 500 MT/s
GDDR2 500 MHz 500 MHz 1000 MT/s
GDDR3 800 MHz 1600 MHz 3200 MT/s
GDDR4 1000 MHz 2000 MHz 4000 MT/s
GDDR5 1500 MHz 3000 MHz 6000 MT/s
GDDR5X 1250 MHz 2500 MHz 10000 MT/s
GDDR6 1750 MHz 3500 MHz 14000 MT/s

 

Освен по-високата скоростта за обмен на данните, графичната DRAM осигурява допълнителни функции за увеличаването на тази скорост – едновременното отваряне на две страници на една и съща банка, използване на много бързи чипове и други.

Какъв е минусът от използването на всичките тези технологии? Високата цена и отделяната топлина.

Един DDR6 модул е около два пъти по-скъп от аналогичен DDR4 и освен това при работата си той става много горещ. Ето защо графичните карти с голям брой бързи RAM памети има нужда от активно охлаждане, за да не се повредят чиповете.

Скоростта на битовете

Производителността на DRAM обикновено се измерва в количеството битове данни, които се обменят в рамките на една секунда. Както вече казахме, използваната като системна памет DDR4 е образувана от чипове с 8-битова шина на данните – тоест за един тактов цикъл всеки един модул може да отдаде до 8 бита.

Тоест, ако честотата за обмен на данните е 3200 MT/s, то пиковият резултат би трябвало да бъде 3200 x 8 = 25 600 Mb в секунда или малко над 3 GB/s. И тъй като повечето DIMM модули имат по 8 чипа, то потенциално би могло да се получи 25 GB/s. А за GDDR6 с 8 чипа този резултат би бил 440 GB/s!

Това значение обикновено се нарича пропускателна способност (bandwidth) на паметта. Това е важен фактор, който оказва голям влияние на производителността на RAM. Но това е теоретична величина, понеже операциите вътре в DRAM чипа не протичат едновременно.

За да схванем по-добре нещата, нека да разгледаме следното изображение, което показано какво се случва, когато се извършва запитване за получаване данните от паметта:

На първия етап се активира DRAM страницата, в която се намират необходимите данни. За това на паметта първоначално се съобщава какъв ранг е необходим, а след това и кой е конкретния чип и накрая коя е банката.

На чипа се подава местоположението на страницата с данните (адреса на реда), който отговаря на това с подаването на цялата страница. За всичко това е необходимо време и което е по-важно, има нужда от време за пълната активация на реда, за да се гарантира пълното блокиране на тези битове преди да бъде извършен достъпа до тях.

След това се определя съответната колона и се извлича единствения бит информация. Всички типове DRAM подават данните във вид на пакети , като информацията се пакетира в в единен блок, а един пакет в съвременната памет почти винаги включва 8 бита. Тоест, дори и за един такт да се извлича един бит, тази информация не може да бъде подадена докато от другите банки не бъдат извлечени още 7 бита.

А ако следващият необходим бит се намира в друга банка, то преди отварянето на следващата трябва да бъде затворена текущата страница (pre-charging), а това разбира се, изисква повече време.

Всички тези времеви периоди между времето за изпращане на командата и изпълнението на необходимото действие се наричат тайминги на паметта. Колкото са по-ниски таймингите, токова е по-висока общата производителност, понеже се губи по-малко време за чакане операцията да бъде извършена.

Някои от тези тайминги са добре познати на специалистите и на компютърните фенове.

Тайминги Описание Стандартно значение в DDR4
tRCD Row-to-Column Delay: брой цикли между активирането на ред и получаването на възможност за избор на колона 17 цикъла
CL CAS Latency: брой цикли между адресирането на колоната и началото на подаване на пакета данни 15 цикъла
tRAS Row Cycle Time: най-малкият брой цикли в продължение на които редът трябва да остане активен преди да може да се изпълни неговия pre-charging 35 цикъла
tRP Row Precharge time: минималният брой цикли, необходими между активациите на различните редове 17 цикъла

 

Има още много други тайминги и е добре всичките те да бъдат настроени за по-бърза и стабилна работа на DRAM при оптимална производителност.

Таймингите могат да бъдат настройвани – те не са зададени твърдо в самата DRAM, тъй като всички команди постъпват от процесора, който използва тази памет. Производителите тестват всеки чип памет и тези с приблизително еднакви тайминги се групират заедно и се поставят в една DIMM плочка. И накрая тези тайминги се записват в един съвсем малък чип на платката на F+DRAM модула.

Дири и паметта има нужда от памет. С червено е обозначена ROM със SPD информацията

Процесът за достъп до тази информация и нейното използване се нарича serial presence detect (SPD) и това е стандарт за BIOS-са на дънната платка, която по този начин разбира на какви тайминги трябва да бъдат настроени всички процеси.

Много дъна дават възможност на потребителите да променят таймингите, а много от DRAM модулите поддържат Extreme Memory Profile (XMP) стандарта на Intel. Това е просто допълнителна информация в SPD, която съобщава на BIOS-а „Аз мога да работя и с ето тези нестандартни тайминги„. Това е удобно, понеже потребителят може с един клик да зададе всички настройки наведнъж, без да си губи времето с настройката на всеки един параметър.

Благодарим ти RAM

За разлика от другите уроци по анатомия, този не е така неприятен. DIMM може да се разгледа най-подробно и да се видят потресаващи подробности.

5 4 гласа
Оценете статията
Абонирай се
Извести ме за
guest
2 Коментара
стари
нови оценка
Отзиви
Всички коментари