| RAM За компютърната памет важи едно просто правило - “колкото и да имаш, винаги ти се иска още”. Не толкова отдавна паметта струваше стотици долара за мегабайт, а компютър с 4МВ RAM се броеше за работна станция. Ако цитираме Бил Гейтс “640KB би трябвало да са достатъчни за всеки” (1981г.). Днес цената на паметта е най-ниската в историята на компютрите (под 20$ за 128MB), а 64MB са минимума за нормална работа. Когато говорим за “памет”, обикновено се има предвид RAM (Random Access Memory - памет с произволен достъп. Идеята на това название е, че всеки байт от паметта може да бъде достигнат директно, без да се налага работа с тези преди него - имаме директен достъп до произволно място в паметта). RAM-a има много общи черти с твърдия диск, който също е памет. Разликата е, че с RAM се работи много хиляди пъти по бързо и че със спирането на тока всичката информация изчезва. Затова работата е организирана така: процесора подава команда към твърдия диск да зареди програмата в паметта и след като това стане забравя за диска. Проблем е обаче, когато програмата е много голяма и не може да се побере изцяло в RAM-а. Тогава процесорът се принуждава да работи и с диска (с така наречения swap файл), където се намира остатъка на програмата и общата работа на системата се забавя чувствително. Едно от деленията на RAM паметта е на D (Dynamic) RAM и S (Static) RAM. DRAM е по-евтината и разпространена и се използва като основна компютърна памет. SRAM e по-скъпа и се използва главно за кеш памети. Основната разлика между тях е, че информацията в DRAM трябва да бъде опреснявана периодично (няколко хиляди пъти в секунда) - поради елементите, от които е изградена, тя има свойството да “забравя” информацията, съдържаща се в нея. Също така, прочитането на нещо от паметта води до неговото “забравяне” , което налага допълнително презареждане. Тази операция (презареждане) нормално се извършва от един чип, наречен контролер на паметта. Има обаче и специални памети, които не се нуждаят от външно въздействие на процесора или гореспоменатия контролер, за да се опресняват; те често се използват в преносимите компютри, защото консумацията на енергия при тях е по-ниска. При SRAM няма опресняване на информацията, поради различните елементи от които е изградена. Освен това, докато за DRAM нормални времена на достъп са от порядъка на 50-60ns (ns - наносекунди, една наносекунда е една милиардна част от секундата) за SRAM тези времена са около 10ns - значи пет пъти по добри. Нормално е в този момент човек да си помисли - ами този динозавър, DRAM, използва ли се още? Да, и то много. Причината - SRAM са много по-скъпи за производство. И DRAM, и SRAM присъстват във вашия компютър - първата в лицето на така наречената “оперативна памет”, втората - в ролята на “кеш памет”. На процесора често му се налага да контактува с паметта (изградена от DRAM). Осъществяването на тази връзка влиза в задачите на контролера на паметта. Въпреки високата скорост с която се извършва преносът на данни, процесорът е принуден да чака, защото работи няколко пъти по-бързо. За преодоляване на това забавяне в работата се използва кеш паметта, изградена на базата на SRAM. Кеш паметта е разположена много близо до процесора и е с неголям размер - обикновено по-малко от мегабайт. Идеята е най-често използваните команди и данни да не бъдат извличани от системната (оперативна) памет, а от по-бързата и по-близо разположена кеш памет. Затова процесорът първо проверява дали в кеша се намира това което му трябва и едва след това (ако го няма) търси в RAM. В аналогична ситуация попадате когато ви се допие бира - първо проверявате дали има в хладилника и чак когато с неудоволствие се убедите, че няма, отскачате до магазина за да купите. Ефективността на идеята се подкрепя от едно емпирично (получено с експерименти, а не по формула) правило: от всичките данни, програми и информация на вашия компютър, около 20% се използва през 80% от времето. Кеш паметта се опитва да прихване и задържи тези 20% по следния начин: контролера на паметта записва в кеша всичко, което процесорът взима от паметта под формата на списък; всеки път, когато CPU намери нужната му информация в кеша се получава “попадение” и тази информация се премества на върха на списъка. Когато кеш паметта е пълна и се налага да се запише още нещо, последния запис (този който е на дъното и следователно е най-рядко използван) се изтрива и на негово място се поставя новата информация. В съвременните компютърни системи има повече от един вид кеш. Има такъв, който се намира в корпуса на самия процесор и се нарича L1 cache (L1 - level 1, първо ниво), следва L2, може да има и L3. Всичките тези видове са памет. Само че, има и друга ситуация, в която може да се употреби термина кеш и кеширане. Първата е, когато говорим за swap файла (тук употребата е неправилна), който както споменах представлява разширение на паметта върху твърдия диск и втората - когато част от паметта се заделя, за да се подобри работата на вашия харддиск. Тук вече употребата е съвсем на място, защото се заделя част от оперативната памет, която да служи за кеш на много по-бавния от нея твърд диск. Програмата с която може да указвате каква част от паметта да се използва за кеширане на диска под DOS се нарича Smartdrv. Windows се грижи сам за тези настройки затова не е необходимо да настройвате нищо. Ако обаче ви се иска да пипнете и да видите ефекта при различни стойности (ефект има, защото тази част която заделите за дисков кеш не се използва от програмите). Във файла system.ini, раздел [vcache], добавяте един ред "MinFileCache=хххх" за минималния размер (вместо хххх слагате число примерно 4096, което е 4MB RAM) и един "MaxFileCache=хххх" за максималния. Ако зададете двете числа еднакви, ще имате постоянен размер. Освен кеша, съществуват други похвати за подобряване ефективността на оперативната памет:
След това запознаване с паметта като цяло, нека да погледнем конкретно чиповете с памет (RAM). Едно от възможните деления е според вида на модула памет (модул памет звучи малко изкуствено, но искам до направя разделение между чип памет и платката на която има няколко чипа, които са свързани заедно и образуват това, което получаваме като отидем да си купим памет и което наричам модул):
Освен разделянето по вида на модула, класификация може да се направи и според технологията и организацията, използвани при чипа памет - въпреки, че всички чипове са DRAM, те са доста различни. Така върху един модул DIMM може да има EDO, SDRAM или друг вид чипове (съвременните памети са само SDRAM, така че не е нужно да се тревожите за това). Единствения сигурен начин да познаете каква е паметта, е да прочетете маркировката на чиповете, обаче всеки производител използва собствена система за означение. Но, да се върнем на класификацията:
И накрая, да кажем няколко думи за това как се означава скоростта на паметите. В по-старите чипове (FPM, EDO) скоростта на паметта се измерваше с времето за достъп “access time” на паметта - времето, необходимо на модула памет да достави исканите данни. Времената варираха около 80 до 60ns, като границата беше скоростта с която работи чипа DRAM (50ns). Много често индикациите на чипа показваха неговата скорост: -7 за 70ns, -6 за 60ns. С идването на SDRAM паметите и различните начини за увеличаване ефективността на работа на паметта, този начин за измерване отпадна и започна да се цитира скоростта в Mhz (трептения или цикли в секунда; 1 Hz=1 цикъл в секунда, 1Mhz е 1 000 000 цикъла в секунда). Обаче, маркировката върху чиповете продължи да бъде в наносекунди, но не измерващи времето за достъп а времето между два цикъла. От Mhz лесно се преминава в наносекунди, като разделим 1000 на тактовата честота: ако имаме 100Mhz, това се трансформира като 1000/100=10 наносекунди; аналогично ако разделим 1000/10ns=100Mhz. При паметите SDRAM 133Mhz чиповете могат да бъдат означени като -8, -7.5, -7 - и трите съответстват на 133Mhz, като този с -7 е най-добър (при условие, че и трите са на една фирма). Последния начин за определяне на скоростта е колко байта в секунда се прехвърлят Получава се по следния начин - ако имаме 100Mhz памет, и тя прехвърля по 64 бита (или 8 байта) на цикъл, умножаваме 100 000 000х8, преобразуваме го в мегабайти и получаваме 800MB за секунда. За сравнение, RAMBUS паметта работи на 400Mhz, но по подобие на DDR пренася два пъти повече информация за цикъл, което прави реална скорост от 800Mhz. Тя пренася по 2 байта, значи 800х2=1600MB/s. При 100Mhz DDR памет (ефективно 200) сметката е 200х8=1600, точно колкото и RAMBUS, но на много по ниска цена. | |
|