ПредишенСледващото

Малко история

В зората на изчислителната динамична памет е в момента работи в честотата на процесора. Първият ми опит с компютъра е свързан с компютър клонинг «ZX Spectrum». Z80 процесор да изпълнява инструкции за обработка на средно 4 цикъла в експлоатация, двете мерки се използват за изпълнение на регенерацията на куп, което ни дава честота от 3,5 MHz, максимум 875 000 операции в секунда.

Въпреки това, след известно време, честота на процесорите са достигнали ниво, когато динамичната памет вече не може да се справи с товара. За да се компенсира това междинно съединение в паметта на кеша е въведена, което позволява да се извършват операции на малко количество данни за изглаждане на разликата в скоростта на процесора и основната памет.

Нека да разгледаме какво е RAM на компютъра си сега, и какво може да направи, за да се увеличи скоростта на компютърната система.

Накратко за статична и динамична памет

Статично памет клетка на базата на спусъка, която обикновено се намира в един от стабилни състояния на "А" или "В" (A! = В). Минималният брой на транзистори за една клетка е 6 парчета, със сложността на проследяване в клетки очевидно не позволява статична памет 1 концерт, на цената на конвенционален модул в 8 концерт.

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

Останалата част от принципа на работа е идентичен и е както следва:

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

Ако в началото на компютри, всеки чете или пише операция завършва един пълен цикъл на паметта:

- избор линия;
- операция четене / запис на клетката;
- Подвижна / избор на ред.

Модерна работа с чипове "синхронна памет а ла DDRX» е както следва:

- избор линия;
- четене / запис операции на 4-8 бита / Думата групи от клетъчни линии (оставя множествена движение в една линия);
- затваряне на тръбопровода с информацията за записа на място;
- Подвижна / избор на ред.

Това решение позволи да се спести време за достъп, когато след четенето на стойността на "1" на клетките изисква използване на клетки "2, 3, 4 или 7", намиращи се в една и съща линия, или веднага след операция за четене, трябва да бъде написана обратно променената стойност ,

Необходимо е да се помни, че RAM DDR има две честоти:

- основната тактова честота определя команди скорост на предаване, както и времената;
- ефективната скорост на данни (два пъти тактова честота, които са белязани и модули памет).

Интеграция на контролера на паметта на подсистемата на паметта се увеличава производителността чрез премахване на междинното изпращащата държава. Увеличаването на каналите на паметта trebudet да вземат това предвид при прилагането, като например режим на четири-канален в определено местоположение на файловете, не дава по-добро бързодействие (12 и 14 конфигурация).


Обработка един свързан списък елемент с различна стъпка (1 стъпка = 16 байта)

Сега малко математика

Процесор: оперативните честотите на процесора е вече достигат 5 GHz. Според производителя, прекъсвачи решения (транспортьори, прогнози и други трикове) ви позволяват да изпълнява една инструкция за такт. За да се закръгли изчисленията вземат стойността на тактовата честота от 4 GHz, което ще ни даде една операция за 0.25 NS.

RAM: вземем за пример RAM DDR4-2133 новия формат с времето 15-15-15.

процесор
Ftakt = 4GHz
Ttakt = 0.25 НЧ (едновременно "условно" време за изпълнение на работа на един)

DDR4-2133 RAM
Ftakt = 1066
Fdata = 2133 MHz
ttakt = 0.94 НЧ
tDate = 0.47 НЧ
SPDmaks MHz = 2133 * 64 = 17064 MB / сек (скорост на предаване на данни)
tRCmin = 50 НЧ (минимално време между две задействания редове)

събиране на данни време

Тъй като могат да бъдат предоставени на регистри и кешираните данни по време на работния ход (регистри, ниво кеш 1), или със закъснение от няколко цикъла часовник за кеш на 2 и 3 ниво.

За памет влоши ситуацията:

- избор на времето линия е 15 CLK * 0,94 NS = 14 NS
- време за получаване на данни от избор на колона: 15 CLK * 0,94 NS = 14 NS
- Време за затваряне линия: 15 CLK * 0,94 = 14 НЧ НЧ (Кой би си помислил)

От което следва, че времето между команда искане на данни от паметта (ако кеша не се удари) може да варира:

14 НЧ - данните вече е в избрания ред;
28 НЧ - данни са в премахна избора подред, при условие, че в предишния ред вече е затворен (единица в държавата «празен ход»);
42-50 НЧ - е в различен ред, с трябва да се затвори текущия ред.

Броят на операции, които могат да изпълняват (vysheoboznachennyh) за това време процесор е от 56 (14 NS) до 200 (50 НЧ линия смяна). Отделно заслужава да се отбележи, че времето между командата за избор на колона и получаване на целия пакет от данни се добавя малко пакета кеш линия забавяне натоварване 8 * 0,47 = 3,76 НЧ НЧ. За ситуация, в която данните ще бъдат достъпни за "програма" само след зареждане на кеш линия (който знае, че каквото и разработчиците тактова честота процесори, спецификация памет ви позволява да даде необходимите данни по-рано), получаваме още до 15 и пропуснати цикли.

В едно произведение, което проведох изследване на скоростта на паметта, резултатите показват, че напълно "изхвърлят" диапазон на паметта е възможно само в алгоритъма на достъпа памет в случай на случаен достъп увеличава времето за обработка (например, свързан списък с 32-битови указатели и три двоични думи единият от които се обновяват) с 4-10 (последователен достъп) до 60-120 НЧ (линии смяна), което дава разликата в скоростта на обработка на 12-15 пъти.

предаване на данни

За избрания модул има пикова пропускателна способност от 17064 MB / сек. Това за честота от 4 GHz дава възможност за обработка на часовника 32-битови думи (17064 MB / 4266 MHz = 4000 байта в такт). Тук се прилагат следните ограничения:

- без планиране изричното кеш капацитет, процесорът ще бъдат принудени да стоят празни (колкото по-висока честотата, толкова по-голям ядрото само чакат за данните);
- в цикъла "модификация запис четене" скорост на обработка се намалява наполовина;
- многоядрени процесори споделят автобус трафик ядра памет, както и за ситуацията, когато има конкуриращи се заявки (изроден случай), функция на паметта може да се влоши в "200 пъти (редове се променят) * X ядра".

17064 MB / и / 8 = 2,133 Mbytes ядра / и в ядрото в оптималния случай.
17064 MB / и / (8 х 200 ядра пропуснати сделки) = 10 Mb / и на ядро ​​за случая на дегенеративен.

Преведено в експлоатация, за да се получи 8-ядрен процесор от 15 до 400 операции за обработка на байт данни, или от 60 до 1 600 операции / цикъла за обработка на 32-битова дума.

По мое мнение бавно по някакъв начин. В сравнение с памет DDR3-1333 9-9-9, където общото време на цикъла е приблизително равна на 50 НЧ, но различни времена време:

- време за достъп на данни се намалява до 13.5 НЧ (1.5 NS * 9 цикъла);
- предаване на пакета от осем думи 6 НЧ (0.75 * 8 вместо 3.75 NS) и памет с произволен достъп, разликата в нивата на трансфер на данни почти изчезва;
- скоростта на връх ще бъде 10 664 мегабайт / сек.

Не всички стигнал твърде далеч. Ситуацията е малко по-спестява присъствието на модули памет "Банки". Всеки "банка" е отделна таблица памет, към които могат да се разглеждат отделно, което го прави възможно да се замени един ред в една банка, докато има данни на четене / писане от низ от друга, чрез намаляване на времето на празен ход позволява "вкара" за обмен на данни с автобус очите при оптимизирани условия.

Всъщност ние отидохме тук абсурдни идеи

маса памет съдържа предварително определен брой колони, равни на 512, 1024, 2048 бита. Като се има предвид продължителността на цикъла на линиите за активиране 50 НЧ, получаваме потенциалните скорости на данните: "1 / 0.00000005 * с 512 колони * 64 битова дума = 81 920 MB / сек", вместо сегашните 17 064 MB / S (163 840, и 327 680 мегабайт / и за 1024 редове и колони, 2048). Кажи: "само веднъж в 5 (4.8) бързо", за което аз отговарям: "Това е обменният курс, когато всички конкуриращи се искания са насочени към една и съща банка памет, както и възможността за тяхната пропускателна способност се увеличава пропорционално на броя на банките и увеличаване на продължителността на всеки ред на таблицата (изисква увеличаване на дължината на операционната линия), което от своя страна се основава преди всичко на скоростта на обмен на данни с автобус. "

Промяна на начина на обмен на данни ще изисква прехвърлянето на всички съдържанието на кеш линия на по-ниското ниво, което е необходимо, за да се разделят на нивата на кеш, а не само в скоростта, но също така и върху размера на кеша на линия. Например реализира "дължина" кеша линията N-то ниво (колона 512 * 64 размер дума) 32768 бита, ние можем чрез намаляване на броя на операциите за сравнение да се увеличи общият брой на кеш линии и съответно увеличаване на максималната обхвата му. Но ако се направи паралел с автобус в кеш паметта на този размер, ние може да получи намаление на честотата на работа, от която е възможно да се приложи различен организации подход кеш, ако нарушите каза «Джъмбо» -разходка кеш блокове по дължината на горния кеш линия и да обменят малки части от нея, Тя ще продължи функционирането на честота се раздели забавяне достъпа до стъпалата на: търсят кеш линия, както и извадка от желаните "думите" в съответстващата низ.

Що се отнася до комуникацията между кеша и основната памет: това е необходимо да прехвърляте данни от референтния лихвен процент за редовете на една банка, или има известна свобода за разпространение на заявките към различни банки. В допълнение, има затруднения с времето за достъп до данни линии, поставени в различни области, за последователно предаване в допълнение към първоначалното забавяне, свързано с линията на пробата, забавяне на предаването на данни зависи от броя на "пакет" на данни, както и скоростта на предаване. Дори подход «Rambus» не може да се справи с увеличеното натоварване. Ситуацията може да спести на прехода към серийна шина (за диференциал), което се дължи на по-нататъшното намаляване на бита на данни, можем да увеличим пропускателната скорост мога да се намали времето между предаване на първата и последната част от данни, се прилага предаването на разделителна линия през няколко канала. Разрешаването на използването на по-ниска тактова честота от един канал.

По наша оценка на скоростта в канала:

1 / 0.00000005 = 20 NS (линии честота смяна в един блок) MHz
20 MHz * 32 = 768 бита 655 360 Mbit / S
За диференциално предаване с един и същ размер на шината за данни се получи
655 360 Mbit / и / 32 = 20 Канал 480 Mb / и на канал.

Тази скорост е приемлив за електрически сигнал (10 Gb / и сигнал с вградена синхронизация на разположение 15 метра, защо и 20 Gbit / и с външен часовник от 1м не овладеят), но изисква по-нататъшно увеличаване на скоростта на предаване за намаляване на времето за предаване между първата и последната част от информацията, може да поиска увеличаване на капацитета, с възможност за интегриране на оптичен пренос на канала, но това е въпрос за схема, не съм много опит с такива честоти.

и тук Остап страдал

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

Ако отидете по-нататък, можете допълнително да се промени концепцията за ориентация процесор архитектура с "превключване на контекста задвижка" на "Програма работна среда." Подобна промяна може значително да подобри кода за безопасност чрез определяне на програмата като набор от функции с даден индивид входна точка процедура, достъпен район разположение данни за обработка и хардуер възможности за мониторинг на способността да се обадя на конкретна функция от другите процеси. Подобна промяна ще даде възможност и по-ефективно използване на многоядрени процесори, като елиминира превключването на контекст за частични потока и за обработка на събитие използвате отделна нишка в рамките на наличното среда "процес", който ще позволи по-ефективно използване на 100 + ядрени системи.

Послепис случайно използване на търговски марки или регистрирани патенти е случаен. Всички оригинални идеи са достъпни за използване в рамките на споразумение за лиценз "мравка".

Подкрепете проекта - споделете линка, благодаря!