Оперативна памет

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

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

Видове[редактиране | edit source]

RAM[редактиране | edit source]

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

Кеш памет[редактиране | edit source]

На процесора често му се налага да контактува с паметта (обикновено DRAM). Осъществяването на тази връзка влиза в задачите на контролера на паметта. Въпреки високата скорост, с която се извършва преносът на данни, процесорът е принуден да чака, защото е няколко пъти по-бърз. За преодоляване на това забавяне в работата и по-рационално използване на процесора, служи кеш паметта, изградена на базата на SRAM. Кеш паметта е разположена много близо до процесора и е с неголям капацитет - обикновено по-малко от мегабайт. Идеята е най-често използваните команди и данни да не бъдат извличани от системната (оперативна) памет, а от по-бързата и по-близо разположена кеш памет. Затова процесорът първо проверява дали в кеша се намира това, което му трябва и едва ако го няма търси в RAM.

Идеята за кеш идва от едно емпирично наблюдение: около 20% от всички данни, програми и информация на персоналния компютър се използват през 80% от времето. Кеш паметта се опитва да прихване и задържи тези 20% за да ускори достъпа: контролерът на паметта записва в кеша всичко, което процесорът взима от паметта под формата на списък; всеки път, когато процесорът намери нужната му информация в кеша се получава “попадение” и тя се премества в началото на списъка. Когато кеш паметта е пълна и се налага да се запише още нещо, последният запис (този който е на дъното и е най-рядко използван) се изтрива и на негово място се записва новата информация.

В съвременните компютри има повече от една кеш памет. Има такава, която се намира в корпуса на самия процесор и се нарича L1 cache (L1 - level 1, първо ниво), следва L2, може да има и L3.

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

Методи за подобряване ефективността на оперативната памет[редактиране | edit source]

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

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

Pipelining - това е процес, при който някаква по-сложна задача се разбива на поредица от елементарни инструкции, които “потичат” като по “тръба” към процесора и той ги изпълнява една след друга в бърза последователност - без да отправя искане за нови данни и да чака да му се доставят. Така ако има няколко задачи, те се разделят на малки части и се пускат към процесора за обработка, в резултат на което е нужно по-малко време, отколкото ако се подават една по една големите задачи (процесорът ще трябва да ги извиква една по една и да чака идването им).